X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=etc%2FNEWS;h=2e222f0fcbaf742eda983f76e97d859adf2931b0;hb=7e7e32d8c43ebad1d3e115269d251075abbfdf91;hp=7190dbd7e369c9ee892f524a7e8122f39973ef62;hpb=49798660c638e91e7bcb4432d0aa7440bab49568;p=chise%2Fxemacs-chise.git- diff --git a/etc/NEWS b/etc/NEWS index 7190dbd..2e222f0 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -9,7 +9,7 @@ history. 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 -info about the Outline mode. Many commands are also available through +info about the Outline mode. Many commands are also available through the menubar. Users who would like to know which capabilities have been introduced @@ -54,13 +54,73 @@ indirect). `buffer-indirect-children' returns a list of the indirect children of a base buffer. -* Lisp and internal changes in XEmacs 21.0 +* Lisp and internal changes in XEmacs 21.2 ========================================== ** Functions for decoding base64 encoding are now available; see `base64-encode-region', `base64-encode-string', `base64-decode-region' and `base64-decode-string'. +** Many basic lisp operations are now faster. +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 +obtained running (byte-compile "simple.el"), which should be a pretty +typical test of `pure' lisp. + +Lisp hash tables have been re-implemented. The Common Lisp style hash +table interface has been made standard, and moved from cl.el into fast +C code (See the section on hash tables in the XEmacs Lisp Reference). +A speedup factor of 3 can be expected with code that makes intensive +use of hash tables. + +The garbage collector has been tuned, leading to a speedup of 1.16. + +The family of functions that iterate over lists, like `memq', and +`rassq', have been made a little faster (typically 1.3). + +Lisp function calls are faster, by approximately a factor of two. +However, defining inline functions (via defsubst) still make sense. + +And finally, a few functions have had dramatic performance +improvements. For example, (last long-list) is now 30 times faster. + +Of course, your mileage will vary. + +Many operations do not see any improvement. Surprisingly, running +(font-lock-refontify-buffer) does not use the Lisp engine much at all. +Speeding up your favorite slow operation is an excellent project to +improve XEmacs. Don't forget to profile! + +** XEmacs finally has an automated test suite! +Although this is not yet very sophisticated, it is already responsible +for several important bug fixes in XEmacs. To try it out, simply use +the makefile target `make check' after building XEmacs. + +** New hash table implementation +As was pointed out above, the standard interface to hash tables is now +the Common Lisp interface, as described in Common Lisp, the Language +(CLtL2, by Steele). The older interface (functions with names +containing the phrase `hashtable') will continue to work, but the +preferred interface now has names containing the phrase `hash-table'. + +Here's the executive overview: create hash tables using +make-hash-table, and use gethash, puthash, remhash, maphash and +clrhash to manipulate entries in the hash table. See the (updated) +Lisp Reference Manual for details. + +** Lisp code handles circular lists much more robustly. +Many basic lisp functions used to loop forever when given a circular +list. Now this is more likely to trigger a `circular-list' error. +Printing a circular list now results in something like this: + + (progn (setq x (cons 'foo 'foo)) (setcdr x x) x) +==> (foo ... ) + +An extra bonus is that checking for circularities is not just +friendlier, but actually faster than checking for quit. + * Changes in XEmacs 21.0 ======================== @@ -111,15 +171,15 @@ and then through inexact matches, as one would expect. ** The new variable `user-full-name' can be used to customize one's name when using the Emacs mail and news reading facilities. -Normally, `user-full-name' is a function that returns the full name of +Normally, `user-full-name' is a function that returns the full name of a user or UID, as specified by the system -- for instance, -(user-full-name "root") returns something like "Super-User". However, +(user-full-name "root") returns something like "Super-User". However, when the function is called without arguments, it will return the -value of the `user-full-name' variable. The `user-full-name' variable +value of the `user-full-name' variable. The `user-full-name' variable is initialized using the environment variable NAME and (failing that) the user's system name. -The behaviour of the `user-full-name' function with an argument +The behavior of the `user-full-name' function with an argument specified is unchanged. ** The new command `M-x customize-changed-options' lets you customize @@ -278,7 +338,7 @@ limit. *** \\1-expressions are now valid in `nnmail-split-methods'. -*** The `custom-face-lookup' function has been removed. +*** The `custom-face-lookup' function has been removed. If you used this function in your initialization files, you must rewrite them to use `face-spec-set' instead. @@ -328,7 +388,7 @@ updated by the `gnus-start-date-timer' command. subsystem. If the `dir' file does not exist in an Info directory, the relevant information will be generated on-the-fly. -This behaviour can be customized, look for `Info-auto-generate-directory' +This behavior can be customized, look for `Info-auto-generate-directory' and `Info-save-auto-generated-dir' in the `info' customization group. @@ -368,7 +428,7 @@ this is set to nil, the vertical dividers between windows are shown only when needed, and they are not draggable. Other properties of the vertical dividers may be controlled using -`vertical-divider-shadow-thickness', `vertical-divider-line-width' and +`vertical-divider-shadow-thickness', `vertical-divider-line-width' and `vertical-divider-spacing' specifiers, which see. ** Frame focus management changes. @@ -440,8 +500,10 @@ instance: ** It is now possible to build XEmacs with LDAP support. You will need to install a LDAP library first. The following have been tested: - - LDAP 3.3 from the University of Michigan + - LDAP 3.3 from the University of Michigan (get it from ) + - OpenLDAP 1.0.3 from the OpenLDAP Foundation + (get it from ) - LDAP SDK 1.0 from Netscape Corp. (get it from )