Mercurial > hg > xemacs-beta
comparison etc/NEWS @ 430:a5df635868b2 r21-2-23
Import from CVS: tag r21-2-23
author | cvs |
---|---|
date | Mon, 13 Aug 2007 11:29:08 +0200 |
parents | 3ecd8885ac67 |
children | 3a7e78e1142d |
comparison
equal
deleted
inserted
replaced
429:8305706cbb93 | 430:a5df635868b2 |
---|---|
113 maintained internally. | 113 maintained internally. |
114 | 114 |
115 The new primitives available for this purpose are functions named | 115 The new primitives available for this purpose are functions named |
116 `user-name-completion' and `user-name-all-completions'. | 116 `user-name-completion' and `user-name-all-completions'. |
117 | 117 |
118 ** Native widgets can be displayed in buffers. | |
119 | |
120 The glyph system has been extended to allow the display of glyphs that | |
121 are implemented as native window-system widgets. Thus you can embed | |
122 buttons, scrollbars, combo boxes, edit fields and progress gauges in a | |
123 buffer. As a side effect subwindow support now works once again. | |
124 | |
125 This support is currently only available under MS-Windows. | |
126 | |
127 ** XEmacs can now play sound using Enlightenment Sound Daemon (ESD). | 118 ** XEmacs can now play sound using Enlightenment Sound Daemon (ESD). |
128 It will try NAS first, then ESD, then playing native sound directly. | 119 It will try NAS first, then ESD, then playing native sound directly. |
129 | 120 |
130 ** X-Face support is now available under MS-Windows. | 121 ** X-Face support is now available under MS-Windows. |
131 If an X-Face libary built under MS-Windows is available then XEmacs | 122 If an X-Face libary built under MS-Windows is available then XEmacs |
189 | 180 |
190 | 181 |
191 * Lisp and internal changes in XEmacs 21.2 | 182 * Lisp and internal changes in XEmacs 21.2 |
192 ========================================== | 183 ========================================== |
193 | 184 |
185 ** A new portable dumper is available. | |
186 | |
187 Olivier Galibert has written a portable dumper for XEmacs, based on | |
188 initial work by Kyle Jones. Normally, XEmacs C sources link into an | |
189 executable called `temacs', which loads the Lisp code and "unexecs" | |
190 into a proper `xemacs' executable. The unexec() process is unreliable | |
191 and makes XEmacs hard to port to new operating systems, or even to new | |
192 releases of old systems. | |
193 | |
194 A portable dumper is a different approach to dumping: instead of | |
195 dumping full-fledged executable, it only dumps out the initialized | |
196 data structures (both Lisp and C) into an external file. A normally | |
197 running XEmacs only needs to mmap() that file and relocate a bit to | |
198 get to the initialized data. In that scheme, there is no difference | |
199 between `temacs' and `xemacs'. | |
200 | |
201 This is all very experimental, though. Configure with `--pdump' to | |
202 try testing it. NOTE: it is expected that `make' will fail after | |
203 dumping `xemacs.dmp'. This is because Makefiles have not yet been | |
204 modified to not expect `temacs' producing an `xemacs' executable. You | |
205 can try it out by simply running `src/temacs'. If it starts without | |
206 failure, the portable dumping worked. | |
207 | |
194 ** Much effort has been invested to make XEmacs Lisp faster: | 208 ** Much effort has been invested to make XEmacs Lisp faster: |
195 | 209 |
196 *** Many basic lisp operations are now faster. | 210 *** Many basic lisp operations are now faster. |
197 This is especially the case when running a Mule-enabled XEmacs. | 211 This is especially the case when running a Mule-enabled XEmacs. |
198 | 212 |
224 | 238 |
225 Many operations do not see any improvement. Surprisingly, running | 239 Many operations do not see any improvement. Surprisingly, running |
226 (font-lock-fontify-buffer) does not use the Lisp engine much at all. | 240 (font-lock-fontify-buffer) does not use the Lisp engine much at all. |
227 Speeding up your favorite slow operation is an excellent project to | 241 Speeding up your favorite slow operation is an excellent project to |
228 improve XEmacs. Don't forget to profile! | 242 improve XEmacs. Don't forget to profile! |
243 | |
244 ** Native widgets can be displayed in buffers. | |
245 | |
246 The glyph system has been extended to allow the display of glyphs that | |
247 are implemented as native window-system widgets. Thus you can embed | |
248 buttons, scrollbars, combo boxes, edit fields and progress gauges in a | |
249 buffer. As a side effect subwindow support now works once again. | |
250 | |
251 All of this is still very experimental. This support is currently | |
252 only available under MS-Windows. (#### Is this true?) | |
253 | |
254 ** user-init-directory is now an absolute, unexpanded path. | |
255 Previously, `user-init-directory' used to be relative to | |
256 (concat "~" init-file-user). This turned out to be too complicated | |
257 for most packages (and some core Lisp files) to use correctly. | |
258 | |
259 Also, `init-file-user' has been obsoleted in the process. | |
229 | 260 |
230 ** XEmacs finally has an automated test suite! | 261 ** XEmacs finally has an automated test suite! |
231 Although this is not yet very sophisticated, it is already responsible | 262 Although this is not yet very sophisticated, it is already responsible |
232 for several important bug fixes in XEmacs. To try it out, simply use | 263 for several important bug fixes in XEmacs. To try it out, simply use |
233 the makefile target `make check' after building XEmacs. | 264 the makefile target `make check' after building XEmacs. |
256 => (foo ... <circular list>) | 287 => (foo ... <circular list>) |
257 | 288 |
258 An extra bonus is that checking for circularities is not just | 289 An extra bonus is that checking for circularities is not just |
259 friendlier, but actually faster than checking for C-g. | 290 friendlier, but actually faster than checking for C-g. |
260 | 291 |
261 ** The new form `ignore-file-errors', similar to `ignore-errors' may | 292 ** Functions for decoding base64 encoding are now available; see |
262 be used as a short-hand for condition-case when you wish to ignore | 293 `base64-encode-region', `base64-encode-string', `base64-decode-region' |
263 file-related error. For example: | 294 and `base64-decode-string'. |
264 | 295 |
265 (ignore-file-errors (delete-file "foo")) | 296 ** The arguments to `locate-file' are now more Lisp-like. As before, |
266 | 297 the usage is: |
267 ** The arguments to `locate-file' are now much more "lispy". As | |
268 before, the usage is: | |
269 | 298 |
270 (locate-file FILENAME PATH-LIST &optional SUFFIXES MODE) | 299 (locate-file FILENAME PATH-LIST &optional SUFFIXES MODE) |
271 | 300 |
272 Except that SUFFIXES are now a list of strings instead of a single, | 301 Except that SUFFIXES are now a list of strings instead of a single, |
273 colon-separated string. MODE is now a symbol or a list of symbols | 302 colon-separated string. MODE is now a symbol or a list of symbols |
293 (put-char-table ?a "the letter a" table) | 322 (put-char-table ?a "the letter a" table) |
294 (put-char-table ?b "" table) | 323 (put-char-table ?b "" table) |
295 (put-char-table ?c ?\n table) | 324 (put-char-table ?c ?\n table) |
296 (translate-region (point-min) (point-max) table)) | 325 (translate-region (point-min) (point-max) table)) |
297 | 326 |
298 ** The `keywordp' function now returns non-nil only on symbols | 327 ** The new form `ignore-file-errors', similar to `ignore-errors' may |
299 interned in the global obarray. For example: | 328 be used as a short-hand for condition-case when you wish to ignore |
300 | 329 file-related error. For example: |
301 (keywordp (intern ":foo" [0])) | 330 |
302 => nil | 331 (ignore-file-errors (delete-file "foo")) |
303 (keywordp (intern ":foo")) ; The same as (keywordp :foo) | |
304 => t | |
305 | |
306 This behaviour is compatible with other code which treats symbols | |
307 beginning with colon as keywords only if they are interned in the | |
308 global obarray. `keywordp' used to wrongly return t in both cases | |
309 above. | |
310 | 332 |
311 ** The first argument to `intern-soft' may now also be a symbol, like | 333 ** The first argument to `intern-soft' may now also be a symbol, like |
312 with `unintern'. If given a symbol, `intern-soft' will look for that | 334 with `unintern'. If given a symbol, `intern-soft' will look for that |
313 exact symbol rather than for any string. This is useful when you want | 335 exact symbol rather than for any string. This is useful when you want |
314 to check whether a specific symbol is interned in an obarray, e.g.: | 336 to check whether a specific symbol is interned in an obarray, e.g.: |
317 (intern-soft "foo") | 339 (intern-soft "foo") |
318 => foo | 340 => foo |
319 (intern-soft (make-symbol "foo")) | 341 (intern-soft (make-symbol "foo")) |
320 => nil | 342 => nil |
321 | 343 |
322 ** Functions for decoding base64 encoding are now available; see | 344 ** The `keywordp' function now returns non-nil only on symbols |
323 `base64-encode-region', `base64-encode-string', `base64-decode-region' | 345 interned in the global obarray. For example: |
324 and `base64-decode-string'. | 346 |
325 | 347 (keywordp (intern ":foo" [0])) |
326 ** user-init-directory is now an absolute, unexpanded path. | 348 => nil |
327 Previously, `user-init-directory' used to be relative to | 349 (keywordp (intern ":foo")) ; The same as (keywordp :foo) |
328 (concat "~" init-file-user). This turned out to be too complicated | 350 => t |
329 for most packages (and some core Lisp files) to use correctly. | 351 |
330 | 352 This behaviour is compatible with other code which treats symbols |
331 Also, `init-file-user' has been obsoleted in the process. | 353 beginning with colon as keywords only if they are interned in the |
354 global obarray. `keywordp' used to wrongly return t in both cases | |
355 above. | |
332 | 356 |
333 | 357 |
334 * Changes in XEmacs 21.0 | 358 * Changes in XEmacs 21.0 |
335 ======================== | 359 ======================== |
336 | 360 |