X-Git-Url: http://git.chise.org/gitweb/?p=chise%2Fxemacs-chise.git.1;a=blobdiff_plain;f=etc%2FNEWS;h=c6bba49a2bf6196ee442d6eae8263fd961dd9e5b;hp=268e0484af4de78b1ea43f339726b22d7816c3f0;hb=efdb31fd4c8db81d2414c32d491f1bf994263c74;hpb=75d621fb12f4d3bc3e2eecefac39fe62eecbd431 diff --git a/etc/NEWS b/etc/NEWS index 268e048..c6bba49 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -3,9 +3,12 @@ * Introduction ============== -This file presents some general information about XEmacs. It is -primarily about the changes in recent XEmacs versions and its release -history. +This file presents the changes in recent XEmacs versions. It +primarily documents user-visible (interface) changes, but also +includes internal changes of possible interest to the users. When +describing new features, we try to also document ways of reverting to +the old behavior, where applicable. If you dislike a recent change in +how XEmacs behaves, this file might contain a remedy. Use `C-c C-f' to move to the next equal level of outline, and `C-c C-b' to move to previous equal level. `C-h m' will give more @@ -17,25 +20,18 @@ in each release should look at the appropriate section of this file. Starting with version 20.0, XEmacs includes ChangeLogs, which can be consulted for a more detailed list of changes. -Users interested in some of the details of how XEmacs differs from GNU -Emacs should read the section "What's Different?" near the end of this -file. - N.B. The term "GNU Emacs" refers to any release of Emacs Version 19 from the Free Software Foundation's GNU Project. (We do not say just "Emacs" as Richard M. Stallman ["RMS"] prefers, because it is clearly a more generic term.) The term "XEmacs" refers to - this program or to its predecessors "Era" and "Lucid Emacs". The - predecessor of all these program is called "Emacs 18". When no - particular version is implied, "Emacs" will be used. + this program or sometimes to its predecessors "Era" and "Lucid + Emacs". The predecessor of all these program is called "Emacs + 18". When no particular version is implied, "Emacs" will be used. -* Changes in XEmacs 21.2 +* Changes in XEmacs 21.4 ======================== -** The modeline's text is now scrollable. Please refer to the variable -`modeline-scrolling-method' for more information. - ** The delete key now deletes forward by default. This is regulated by the variable `delete-key-deletes-forward', which @@ -50,23 +46,38 @@ to set `delete-key-deletes-forward' to nil is if you want to use the Delete key to delete backwards, despite the presence (according to Xlib) of a BackSpace key on the keyboard. +** You can now build XEmacs with support for GTK+ widget set. + +XEmacs built that way uses GTK+ to draw menubars, scrollbars, and +other GUI components, as well GDK for drawing text, choosing fonts, +allocating colors, etc. Additionally, GTK-XEmacs supports Lisp +functions for writing your own GTK programs in Emacs Lisp! + +To use this, build XEmacs with the `--with-gtk' configure flag. (Of +course, you'll need to have the GTK+ libraries and header files on the +system.) Gnome widgets and functionality are supported where +available, and can be turned off. + ** Shifted motion keys now select text by default. You can turn this off by setting `shifted-motion-keys-select-region' to nil. -** You can now set the variable `kill-whole-line' to `always', which -makes `kill-line' (C-k) delete the entire line always, not just when -the cursor is at the beginning of the line. This behavior, as well as -the existing kill-whole-line behavior, now only take effect when -kill-line is called interactively, although this is a departure from a -previous behavior in the case of setting this variable kill-whole-line -to t. It is almost certainly what has always been intended, and most -likely the old way of doing things introduced bugs. - -The new function `historical-kill-line' ignores the `kill-whole-line' -setting and always gives the historical behavior of only killing to -the end of the line. This function is bound to Sh-C-k, so that the -kill to end of line behavior is available, even when `kill-whole-line' -has been customized. +** There is a new command `kill-entire-line' that always kills the +entire line at point, regardless of whether the point is at the +beginning of line, and regardless of the setting of `kill-whole-line'. + +** The variable `kill-whole-line' now only takes effect when kill-line +is called interactively. Although this is a departure from a previous +behavior in the case of setting this variable kill-whole-line to t, +it is almost certainly what has always been intended, and most likely +the old way of doing things introduced bugs. + +** The help buffers created by the plethora of C-h commands now +contain hyperlinks. + +** The modeline's text is now scrollable. This is controlled by the +variable `modeline-scrolling-method', which you need to set to a +non-nil value. You can also choose scrolling types; see the docstring +of `modeline-scrolling-method' for more information. ** XEmacs menus now have accelerators by default. If a menu item does not have an accelerator specified, one is created dynamically, using @@ -90,6 +101,11 @@ it easier to anticipate where consecutive C-s or C-r will place the point. If you want to disable the feature, set `isearch-highlight-all-matches' to nil. +** The "coding systems" feature now works even in an XEmacs compiled +without international (Mule) support. This means that for example +XEmacs can recognize newline convention used by the file you are +editing. + ** You can now use the buffer tabs to switch between buffers. The tabs are located between the toolbar and the uppermost window, in a location called "gutter". If you dislike the buffer tabs, you can @@ -114,6 +130,16 @@ you can now edit the default value by pressing the down arrow, accessing the logical "future" value. Not all minibuffer prompts have yet been converted to support this feature. +** International keysyms are now supported under X. This means that +XEmacs running under Mule will automatically recognize the keysym +`scaron' to be the lower-case `s' with caron in the Latin 2 character +set. (Specifically, it will bind the keysym to `self-insert' and +augment its `ascii-character' property.) This is very useful with +XFree under European locales as shipped by recent Linux distributions. +If XEmacs is compiled without Mule support, the feature still works, +but it is unaware of different character sets -- it unconditionally +sets the `ascii-character' property to values in the [160, 256) range. + ** The rectangle functions have been almost completely rewritten in order to avoid inserting undesirable spaces, notably at the end of lines. Two typical examples of the old behavior were @@ -176,7 +202,7 @@ The new primitives available for this purpose are functions named It will try NAS first, then ESD, then playing native sound directly. ** X-Face support is now available under MS-Windows. -If an X-Face libary built under MS-Windows is available then XEmacs +If an X-Face library built under MS-Windows is available then XEmacs will use this at build time. ** The font-menu is now available under MS-Windows. @@ -193,6 +219,14 @@ The only thing selection doesn't do is set the clipboard automatically as this would break the MS-Windows model. If you want this behavior then set `selection-sets-clipboard' to t. +** Motif selection support is now more correct (but slower) in its behaviour. + +Changes have been made to allow correct operation of cut/copy/paste +operations between native widgets and XEmacs buffers. However, this +can lead to a lot of X traffic which slows down the performance of +`C-k'. If you want the old behaviour then set +`x-selection-strict-motif-ownership' to nil. + ** Mail spool locking now works correctly. XEmacs has always come with a little auxiliary program, movemail, which moves mail out of the system's spool area into user storage. To @@ -208,42 +242,45 @@ environment's mail spool locking conventions. When you're using a binary kit, set the `mail-lock-method' variable at startup, or the EMACSLOCKMETHOD environment variable. -** Init file will move to ~/.xemacs/init.el. +** Indentation no longer indents comments that begin at column zero. +This makes it easy to deal with commented out regions of code. -If `~/.xemacs/init.el' exists, XEmacs will prefer it over `~/.emacs' -as an init file. The file may be byte-compiled as -`~/.xemacs/init.elc'. +** Init file changes. -Future versions of XEmacs will stop supporting `~/.emacs' as an init -file. XEmacs offers automatic migration upon startup. +*** XEmacs now supports a `~/.xemacs/init.el' startup file. If +it exists, XEmacs will prefer it over `.emacs' and `.emacs.el'. The +file may be byte-compiled as `~/.xemacs/init.elc'. -** Custom file will move to ~/.xemacs/custom.el. +If present, the `~/.xemacs/' directory may contain startup files for +XEmacs packages that support it. -Whereas customize settings were formerly stored in the regular init -file, XEmacs now prefers them to be in a separate file -`~/.xemacs/custom.el', completely under automatic control. This -change goes with the migration of the init file, and XEmacs offers -automatic migration upon startup. +*** Init file in your home directory may be called `.emacs.el'. -** Init file may be called .emacs.el. - -For the time being, like in GNU Emacs 20.4 and on, you can now name -the XEmacs init file `.emacs.el'. Formerly the name had to be -`.emacs'. If you use the name `.emacs.el', you can byte-compile the -file in the usual way. +Like in GNU Emacs 20.4 and on, you can now name the XEmacs init file +located in your home directory `.emacs.el'. Formerly the name had to +be `.emacs'. If you use the name `.emacs.el', you can byte-compile +the file in the usual way. If both `.emacs' and `.emacs.el' exist, the latter file is the one that is used. -** New command-line switches -user-init-file and -user-init-directory. +*** New command-line switches -user-init-file and -user-init-directory. These can be used to specify alternate locations for what is normally ~/.emacs and ~/.xemacs. -Moreover, -user (which used to only work in unpredictable ways) -is now equivalent to -user-init-file ~/.xemacs/init.el --user-init-directory ~/.xemacs. or -user-init-file -~/.emacs -user-init-directory ~/.xemacs, whichever init -file comes first. +Moreover, the `-user ' command-line option (which used to only +work in unpredictable ways) is now equivalent to `-user-init-file +~/.xemacs/init.el -user-init-directory ~/.xemacs', or +`-user-init-file ~/.emacs -user-init-directory ~/.xemacs', +whichever init file comes first. + +*** Custom file will move to ~/.xemacs/custom.el. + +Whereas customize settings were formerly stored in the regular init +file, XEmacs now prefers them to be in a separate file +`~/.xemacs/custom.el', completely under automatic control. This +change goes with the migration of the init file, and XEmacs offers +automatic migration upon startup. ** New variable `mswindows-alt-by-itself-activates-menu'. If you set this variable to nil then pressing and releasing the Alt @@ -268,6 +305,26 @@ to the PostgreSQL RDBMS (libpq) is available in XEmacs Lisp. Supported versions of PostgreSQL are 6.5.3 (earlier versions may work, but have not been tested) and 7.0-beta1. +** Help functions (e.g. `C-h f') now know how to print macro argument +lists. If your macro definition included an argument list for the +sake of help output, you no longer need to do that. + +** Mule changes. + +*** Windows 1251 code page is now supported as coding system +`windows-1251'. + +*** Czech, Thai, Cyrillic-KOI8, Vietnamese, Ethiopic support now +available. + +*** The appropriate characters in Latin 3 and Latin 4 character sets +are correctly defined as words. + +*** The default coding-priority-list is now safer. This means that if +you have no language environment set, Mule no longer automatically +recognizes ISO 2022 escapes in your files. This makes editing binary +files safe. + ** Etags changes. *** In DOS, etags looks for file.cgz if it cannot find file.c. @@ -287,7 +344,7 @@ declarations when given the --declarations option. *** New language Ada: tags are functions, procedures, packages, tasks, and types. -*** In Fortran, procedure is no more tagged. +*** In Fortran, procedure is no longer tagged. *** In Java, tags are created for "interface". @@ -303,27 +360,34 @@ variables are tagged. for PSWrap. -* Lisp and internal changes in XEmacs 21.2 +* Lisp and internal changes in XEmacs 21.4 ========================================== ** A new portable dumper is available for beta testing. Olivier Galibert has written a portable dumper for XEmacs, based on -initial work by Kyle Jones. Normally, XEmacs C sources link into an -executable called `temacs', which loads the Lisp code and "unexecs" -into a proper `xemacs' executable. The unexec() process is hard to +initial work by Kyle Jones. To perform even the most basic editor, +XEmacs requires some amount of Lisp code to be loaded. To avoid +repeating the expensive loading process at every startup, XEmacs is +built in a special way. Its C sources link into an executable called +`temacs', which loads the bootstrap Lisp code and uses a special +"unexec" call to dump the resulting memory image into a proper +`xemacs' executable on disk. The unexec() process is hard to implement correctly and makes XEmacs very hard to port to new operating systems, or even to new releases of old systems. -A portable dumper is a different approach to dumping: instead of -dumping full-fledged executable, it only dumps out the initialized +The new portable dumper uses a different approach to dumping: instead +of dumping full-fledged executable, it only dumps out the initialized data structures (both Lisp and C) into an external file. A normally -running XEmacs only needs to mmap() that file and relocate a bit to -get to the initialized data. In that scheme, there is no difference +running XEmacs only needs to mmap that file and relocate a bit to get +to the initialized data. In that scheme, there is no difference between `temacs' and `xemacs'. -This is all very experimental, though. Configure with `--pdump' to -try testing it. +Unfortunately, the portable dumper has not been completely finished +for this release, and will not be used by default. However, if you +wish to experiment with it, or if you need to compile XEmacs on a new +and unsupported platform, you can test it by configuring XEmacs with +`--pdump' flag. ** Much effort has been invested to make XEmacs Lisp faster: @@ -331,7 +395,7 @@ try testing it. This is especially the case when running a Mule-enabled XEmacs. A general overhaul of the lisp engine should produce a speedup of 1.4 -in a Latin-1 XEmacs, and 2.1 in a Mule XEmacs. These numbers were +in a non-Mule XEmacs, and 2.1 in a Mule XEmacs. These numbers were obtained running `(byte-compile "simple.el")', which should be a pretty typical test of "pure" Lisp. @@ -344,6 +408,9 @@ makes intensive use of hash tables. *** The garbage collector has been tuned, leading to a speedup of 1.16. +*** The byte-compiler and the byte-optimizer have been tuned to +produce better code in many small ways. + *** The family of functions that iterate over lists, like `memq', and `rassq', have been made a little faster (typically 1.3). @@ -377,11 +444,42 @@ usage. The buffers-tab functionality and progress gauge have been implemented using this feature. -** `user-init-file' and `user-init-directory' are now absolute -file/directory names. Previously, both variables used to be relative -to (concat "~" init-file-user). This turned out to be too complicated -for most packages (and some core Lisp files) to use correctly. Also, -the `init-file-user' variable has been obsoleted in the process. +** A new Windows installer, netinstall ported from Cygwin. + +Nearly complete automation of the XEmacs install process from +ftp.xemacs.org. Includes selection of Lisp packages to install, etc. + +** Syntax tables may now be specified for a part of a buffer by +attaching the `syntax-table' property to an extent. For compatibility +with GNU Emacs, you may use the text-property interface to achieve the +same result. + +** Case translation now supports international characters. + +*** Instead of being lists of 256-character strings, case tables are +now opaque objects. The interface to access them is almost the same, +except it now works for international characters, and you can set the +case pairs using `put-case-table-pair'. `set-case-table' and friends +still support the old list/string based interface for backward +compatibility. + +*** As a consequence of this change, functions `downcase' and `upcase' +as well as all the case-transformation commands now work with +non-ASCII characters. Built-in tables cover all the Latin character +sets that we support. If your language has a distinction between +upper and lower case that is not handled by XEmacs/Mule, please let us +know. + +*** The code that implements case-insensitive search has been modified +to respect the case table settings. This also applies to regexp +search. + +** Values of variables `user-init-file' and `user-init-directory' are +now absolute file/directory names. Previously, both variables used to +be relative to `(concat "~" init-file-user)'. This turned out to be +too complicated for most packages (and some core Lisp files) to use +correctly. Also, the `init-file-user' variable has been obsoleted in +the process. The user-visible options like `-u' have not changed their behavior. @@ -427,8 +525,9 @@ now take an additional argument which specifies the default value. If this argument is non-nil, it should be a string; that string is used in two ways: - It is returned if the user enters empty input. - It is available through the history command M-n. + * It is returned if the user enters empty input. + * It is available as the logical "future" entry, by pressing the down + arrow. ** LDAP changes. @@ -477,7 +576,7 @@ operation. ** `translate-region' has been improved in several ways. Its TABLE argument used to be a 256-character string. In addition to this, it can now also be a vector or a char-table, which makes the function -useful for Mule, which it wasn't. If TABLE a vector or a generic +useful for Mule, which it wasn't. If TABLE is a vector or a generic char-table, you can map characters to strings instead of to other characters. For instance: @@ -514,8 +613,12 @@ interned in the global obarray. For example: This behavior is compatible with other code which treats symbols beginning with colon as keywords only if they are interned in the -global obarray. `keywordp' used to wrongly return t in both cases -above. +global obarray. `keywordp' used to wrongly return t in both above +cases. + +** The function `replace-in-string' has been rewritten to use +`replace-match'. This not only makes it much faster, but adds all the +features of `replace-match'. ** New variables `this-command-properties' and `last-command-properties' are now available for communication between @@ -529,8 +632,8 @@ only once, and automatically removes itself after the first time it has run. ** The descriptor that specifies the text of a menu item can now be an -evaluated expression. This makes this descriptor parallel with -others, which can also be expressions. +evaluated expression. This makes it parallel with other descriptors, +which can also be expressions. * Changes in XEmacs 21.0 @@ -1021,3 +1124,6 @@ configure command line to get it back. *** `Info-default-directory-list' is now obsolete. If you want to change the path which XEmacs uses to search for info files, set `Info-directory-list' instead. + + +* For older news, see the file ONEWS.