Mercurial > hg > xemacs-beta
comparison etc/NEWS @ 380:8626e4521993 r21-2-5
Import from CVS: tag r21-2-5
author | cvs |
---|---|
date | Mon, 13 Aug 2007 11:07:10 +0200 |
parents | d883f39b8495 |
children | bbff43aa5eb7 |
comparison
equal
deleted
inserted
replaced
379:76b7d63099ad | 380:8626e4521993 |
---|---|
7 primarily about the changes in recent XEmacs versions and its release | 7 primarily about the changes in recent XEmacs versions and its release |
8 history. | 8 history. |
9 | 9 |
10 Use `C-c C-f' to move to the next equal level of outline, and | 10 Use `C-c C-f' to move to the next equal level of outline, and |
11 `C-c C-b' to move to previous equal level. `C-h m' will give more | 11 `C-c C-b' to move to previous equal level. `C-h m' will give more |
12 info about the Outline mode. Many commands are also available through | 12 info about the Outline mode. Many commands are also available through |
13 the menubar. | 13 the menubar. |
14 | 14 |
15 Users who would like to know which capabilities have been introduced | 15 Users who would like to know which capabilities have been introduced |
16 in each release should look at the appropriate section of this file. | 16 in each release should look at the appropriate section of this file. |
17 Starting with version 20.0, XEmacs includes ChangeLogs, which can be | 17 Starting with version 20.0, XEmacs includes ChangeLogs, which can be |
52 its base buffer. It returns nil when given an ordinary buffer (not | 52 its base buffer. It returns nil when given an ordinary buffer (not |
53 indirect). `buffer-indirect-children' returns a list of the indirect | 53 indirect). `buffer-indirect-children' returns a list of the indirect |
54 children of a base buffer. | 54 children of a base buffer. |
55 | 55 |
56 | 56 |
57 * Lisp and internal changes in XEmacs 21.0 | 57 * Lisp and internal changes in XEmacs 21.2 |
58 ========================================== | 58 ========================================== |
59 | 59 |
60 ** Functions for decoding base64 encoding are now available; see | 60 ** Functions for decoding base64 encoding are now available; see |
61 `base64-encode-region', `base64-encode-string', `base64-decode-region' | 61 `base64-encode-region', `base64-encode-string', `base64-decode-region' |
62 and `base64-decode-string'. | 62 and `base64-decode-string'. |
63 | |
64 ** Many basic lisp operations are now faster. | |
65 This is especially the case when running a Mule-enabled XEmacs. | |
66 | |
67 A general overhaul of the lisp engine should produce a speedup of 1.4 | |
68 in a Latin-1 XEmacs, and 2.1 in a Mule XEmacs. These numbers were | |
69 obtained running (byte-compile "simple.el"), which should be a pretty | |
70 typical test of `pure' lisp. | |
71 | |
72 Lisp hash tables have been re-implemented. The Common Lisp style hash | |
73 table interface has been made standard, and moved from cl.el into fast | |
74 C code (See the section on hash tables in the XEmacs Lisp Reference). | |
75 A speedup factor of 3 can be expected with code that makes intensive | |
76 use of hash tables. | |
77 | |
78 The garbage collector has been tuned, leading to a speedup of 1.16. | |
79 | |
80 The family of functions that iterate over lists, like `memq', and | |
81 `rassq', have been made a little faster (typically 1.3). | |
82 | |
83 Lisp function calls are faster, by approximately a factor of two. | |
84 However, defining inline functions (via defsubst) still make sense. | |
85 | |
86 And finally, a few functions have had dramatic performance | |
87 improvements. For example, (last long-list) is now 30 times faster. | |
88 | |
89 Of course, your mileage will vary. | |
90 | |
91 Many operations do not see any improvement. Surprisingly, running | |
92 (font-lock-refontify-buffer) does not use the Lisp engine much at all. | |
93 Speeding up your favorite slow operation is an excellent project to | |
94 improve XEmacs. Don't forget to profile! | |
95 | |
96 ** XEmacs finally has an automated test suite! | |
97 Although this is not yet very sophisticated, it is already responsible | |
98 for several important bug fixes in XEmacs. To try it out, simply use | |
99 the makefile target `make check' after building XEmacs. | |
100 | |
101 ** New hash table implementation | |
102 As was pointed out above, the standard interface to hash tables is now | |
103 the Common Lisp interface, as described in Common Lisp, the Language | |
104 (CLtL2, by Steele). The older interface (functions with names | |
105 containing the phrase `hashtable') will continue to work, but the | |
106 preferred interface now has names containing the phrase `hash-table'. | |
107 | |
108 Here's the executive overview: create hash tables using | |
109 make-hash-table, and use gethash, puthash, remhash, maphash and | |
110 clrhash to manipulate entries in the hash table. See the (updated) | |
111 Lisp Reference Manual for details. | |
112 | |
113 ** Lisp code handles circular lists much more robustly. | |
114 Many basic lisp functions used to loop forever when given a circular | |
115 list. Now this is more likely to trigger a `circular-list' error. | |
116 Printing a circular list now results in something like this: | |
117 | |
118 (progn (setq x (cons 'foo 'foo)) (setcdr x x) x) | |
119 ==> (foo ... <circular list>) | |
120 | |
121 An extra bonus is that checking for circularities is not just | |
122 friendlier, but actually faster than checking for quit. | |
63 | 123 |
64 | 124 |
65 * Changes in XEmacs 21.0 | 125 * Changes in XEmacs 21.0 |
66 ======================== | 126 ======================== |
67 | 127 |
109 and then through inexact matches, as one would expect. | 169 and then through inexact matches, as one would expect. |
110 | 170 |
111 ** The new variable `user-full-name' can be used to customize one's | 171 ** The new variable `user-full-name' can be used to customize one's |
112 name when using the Emacs mail and news reading facilities. | 172 name when using the Emacs mail and news reading facilities. |
113 | 173 |
114 Normally, `user-full-name' is a function that returns the full name of | 174 Normally, `user-full-name' is a function that returns the full name of |
115 a user or UID, as specified by the system -- for instance, | 175 a user or UID, as specified by the system -- for instance, |
116 (user-full-name "root") returns something like "Super-User". However, | 176 (user-full-name "root") returns something like "Super-User". However, |
117 when the function is called without arguments, it will return the | 177 when the function is called without arguments, it will return the |
118 value of the `user-full-name' variable. The `user-full-name' variable | 178 value of the `user-full-name' variable. The `user-full-name' variable |
119 is initialized using the environment variable NAME and (failing that) | 179 is initialized using the environment variable NAME and (failing that) |
120 the user's system name. | 180 the user's system name. |
121 | 181 |
122 The behaviour of the `user-full-name' function with an argument | 182 The behavior of the `user-full-name' function with an argument |
123 specified is unchanged. | 183 specified is unchanged. |
124 | 184 |
125 ** The new command `M-x customize-changed-options' lets you customize | 185 ** The new command `M-x customize-changed-options' lets you customize |
126 all the options whose default values have changed in recent Emacs | 186 all the options whose default values have changed in recent Emacs |
127 versions. You specify a previous Emacs version number as argument, | 187 versions. You specify a previous Emacs version number as argument, |
276 | 336 |
277 *** `M-RET' is a new Message command for breaking cited text. | 337 *** `M-RET' is a new Message command for breaking cited text. |
278 | 338 |
279 *** \\1-expressions are now valid in `nnmail-split-methods'. | 339 *** \\1-expressions are now valid in `nnmail-split-methods'. |
280 | 340 |
281 *** The `custom-face-lookup' function has been removed. | 341 *** The `custom-face-lookup' function has been removed. |
282 If you used this function in your initialization files, you must | 342 If you used this function in your initialization files, you must |
283 rewrite them to use `face-spec-set' instead. | 343 rewrite them to use `face-spec-set' instead. |
284 | 344 |
285 *** Cancelling now uses the current select method. Symbolic prefix | 345 *** Cancelling now uses the current select method. Symbolic prefix |
286 `a' forces normal posting method. | 346 `a' forces normal posting method. |
326 | 386 |
327 ** The `dir' files are no longer essential for functioning of the Info | 387 ** The `dir' files are no longer essential for functioning of the Info |
328 subsystem. If the `dir' file does not exist in an Info directory, the | 388 subsystem. If the `dir' file does not exist in an Info directory, the |
329 relevant information will be generated on-the-fly. | 389 relevant information will be generated on-the-fly. |
330 | 390 |
331 This behaviour can be customized, look for `Info-auto-generate-directory' | 391 This behavior can be customized, look for `Info-auto-generate-directory' |
332 and `Info-save-auto-generated-dir' in the `info' customization group. | 392 and `Info-save-auto-generated-dir' in the `info' customization group. |
333 | 393 |
334 | 394 |
335 * Lisp and internal changes in XEmacs 21.0 | 395 * Lisp and internal changes in XEmacs 21.0 |
336 ========================================== | 396 ========================================== |
366 off using the `vertical-divider-always-visible-p' specifier. When | 426 off using the `vertical-divider-always-visible-p' specifier. When |
367 this is set to nil, the vertical dividers between windows are shown | 427 this is set to nil, the vertical dividers between windows are shown |
368 only when needed, and they are not draggable. | 428 only when needed, and they are not draggable. |
369 | 429 |
370 Other properties of the vertical dividers may be controlled using | 430 Other properties of the vertical dividers may be controlled using |
371 `vertical-divider-shadow-thickness', `vertical-divider-line-width' and | 431 `vertical-divider-shadow-thickness', `vertical-divider-line-width' and |
372 `vertical-divider-spacing' specifiers, which see. | 432 `vertical-divider-spacing' specifiers, which see. |
373 | 433 |
374 ** Frame focus management changes. | 434 ** Frame focus management changes. |
375 | 435 |
376 *** When the variable focus-follows-mouse is non-nil, `select-frame' | 436 *** When the variable focus-follows-mouse is non-nil, `select-frame' |
438 #<hashtable size 2/13 data (key1 value1 key2 value2) 0x874d> | 498 #<hashtable size 2/13 data (key1 value1 key2 value2) 0x874d> |
439 | 499 |
440 ** It is now possible to build XEmacs with LDAP support. | 500 ** It is now possible to build XEmacs with LDAP support. |
441 You will need to install a LDAP library first. The following have | 501 You will need to install a LDAP library first. The following have |
442 been tested: | 502 been tested: |
443 - LDAP 3.3 from the University of Michigan | 503 - LDAP 3.3 from the University of Michigan |
444 (get it from <URL:http://www.umich.edu/~dirsvcs/ldap/>) | 504 (get it from <URL:http://www.umich.edu/~dirsvcs/ldap/>) |
445 - LDAP SDK 1.0 from Netscape Corp. | 505 - LDAP SDK 1.0 from Netscape Corp. |
446 (get it from <URL:http://developer.netscape.com/>) | 506 (get it from <URL:http://developer.netscape.com/>) |
447 | 507 |
448 ** When profiling is in effect, a call-count of all recorded functions | 508 ** When profiling is in effect, a call-count of all recorded functions |