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