Mercurial > hg > xemacs-beta
diff etc/NEWS @ 464:5aa1854ad537 r21-2-47
Import from CVS: tag r21-2-47
author | cvs |
---|---|
date | Mon, 13 Aug 2007 11:45:51 +0200 |
parents | 0784d089fdc9 |
children | 52626a2f02ef |
line wrap: on
line diff
--- a/etc/NEWS Mon Aug 13 11:44:39 2007 +0200 +++ b/etc/NEWS Mon Aug 13 11:45:51 2007 +0200 @@ -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 @@ 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 @@ 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. +** 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 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. +** 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 @@ 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 @@ 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 @@ 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 @@ 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,16 +242,39 @@ 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. + +** Init file changes. + +*** 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'. + +If present, the `~/.xemacs/' directory may contain startup files for +XEmacs packages that support it. + +*** Init file in your home directory may be called `.emacs.el'. -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'. +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. -Future versions of XEmacs will stop supporting `~/.emacs' as an init -file. XEmacs offers automatic migration upon startup. +*** 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. -** Custom file will move to ~/.xemacs/custom.el. +Moreover, the `-user <user>' command-line option (which used to only +work in unpredictable ways) is now equivalent to `-user-init-file +~<user>/.xemacs/init.el -user-init-directory ~<user>/.xemacs', or +`-user-init-file ~<user>/.emacs -user-init-directory ~<user>/.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 @@ -225,26 +282,6 @@ change goes with the migration of the init file, and XEmacs offers automatic migration upon startup. -** 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. - -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. -These can be used to specify alternate locations for what is normally -~/.emacs and ~/.xemacs. - -Moreover, -user <user> (which used to only work in unpredictable ways) -is now equivalent to -user-init-file ~<user>/.xemacs/init.el --user-init-directory ~<user>/.xemacs. or -user-init-file -~<user>/.emacs -user-init-directory ~<user>/.xemacs, whichever init -file comes first. - ** New variable `mswindows-alt-by-itself-activates-menu'. If you set this variable to nil then pressing and releasing the Alt key under MS-Windows will no longer activate the menubar. The default @@ -268,6 +305,26 @@ 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 @@ *** 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 @@ 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 @@ 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 @@ *** 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 @@ 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 @@ 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 @@ ** `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 @@ 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 @@ 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 @@ *** `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.