Various "just before release" updates and housekeeping
[sxemacs] / etc / NEWS
1 -*- mode:outline -*-
2 \f
3 * Introduction
4 ==============
5
6 This file presents the changes in recent SXEmacs versions.  It
7 primarily documents user-visible (interface) changes, but also
8 includes internal changes of possible interest to the users.  When
9 describing new features, we try to also document ways of reverting to
10 the old behavior, where applicable.  If you dislike a recent change in
11 how SXEmacs behaves, this file might contain a remedy.
12
13 Use `C-c C-f' to move to the next equal level of outline, and
14 `C-c C-b' to move to previous equal level.  `C-h m' will give more
15 info about the Outline mode.  Many commands are also available through
16 the menubar.
17
18 Users who would like to know which capabilities have been introduced
19 in each release should look at the appropriate section of this file.
20
21
22 \f
23 * Changes in SXEmacs 22.1.15 (Goggomobil)
24 =========================================
25
26 ** Developer Stats
27
28            Nelson Ferreira -- 434 commits
29
30          Sebastian Freundt --  87 commits
31               Steve Youngs --  63 commits
32                 Rudi Meier --  12 commits
33              Evgeny Zajcev --   7 commits
34     Horst G. Burkhardt III --   4 commits
35                Aidan Kehoe --   2 commits
36                JD Horelick --   1 commit
37
38 ** Bugs closed in this release:
39
40 76, 78, 88, 106, 108, 112, 121, 122, 125, 126, 127, 128, 131, 134,
41 135, 136, 137, 139
42
43 ** Coverity integrity scan fixes -- Ferreira.
44
45 Coverity (http://www.coverity.com/) offers source code integrity
46 analysis scans.  These scans often uncover bugs and security issues
47 that would otherwise go unnoticed.  When we first scanned the SXEmacs
48 code base with the Coverity scanner we had ourselves roughly 500
49 "defects".  Nelson Ferreira has pretty much single-handedly fixed them
50 ALL!!  Well done, Nelson and thanks a million!!!
51
52 ** Build related fixes/updates -- Ferreira, Freundt, Horelick, Meier, 
53                                   Youngs.
54
55 Amongst the many, many, build chain updates I can also report that
56 SXEmacs will now build and run on OpenIndiana.  Go us!
57
58 There were also fixes for: SuSe, PowerPC, MacOS, FreeBSD, NetBSD.
59
60 There were also many compiler warning fixes from Nelson and
61 Sebastian. 
62
63 ** FFI tweaks/fixes -- Keheo, Youngs, Zajcev.
64
65 ** Bitrot removal -- Burkhardt, Youngs.
66
67 Over the years things get old, obsolete, and forgotten.  We've gone
68 through and cleaned house.  Say goodbye to aRts, GTK1, tooltalk, and a
69 heap of rubbish in lib-src.
70
71 *** aRts -- Burkhardt.
72 *** GTK 1 -- Youngs.
73 *** tooltalk / CDE -- Youngs.
74 *** lib-src -- Youngs.
75
76 ** Whitespace cleanup -- Youngs.
77
78 Every file in the repository has had all trailing and otherwise
79 spurious whitespace removed/fixed.  Obviously not an entirely critical
80 thing, but tidy is tidy. :-)
81
82
83 ** Support libpng 1.5.x -- Youngs.
84
85
86 * Changes in SXEmacs 22.1.14 (Geo)
87 ==================================
88
89 We switched to git!  And this release cycle was all about updating the
90 build chain, version strings, and docs and whatnot from tla-isms to
91 git-isms. 
92
93 You can now grab the SXEmacs sources via git with...
94
95    git clone http://git.sxemacs.org/sxemacs
96
97
98 * Changes in SXEmacs 22.1.12 (Fiat)
99 ===================================
100
101 ** Bugs closed in this release:
102
103 69, 86, 107, 109, 110, 111, 113, 114, 115, 117, 118, 120
104
105 ** Build chain fixes and updates -- Ferreira, Freundt, Youngs.
106
107 *** Fix building without eye-candy (*bars, widgets, etc)
108 *** Begin work on getting SXEmacs built on Arm Linux
109 *** Fix NetBSD 5 build
110 *** Mac OS build fixes
111
112 ** Source tree reorganisation -- Ferreira.
113
114 Nelson put a lot of working into reorganising the SXEmacs source tree
115 hierarchy.  There are now several subdirectories under `src'...
116
117         src/database -- has the database code
118         src/ent      -- has the "Enhance Number Types" code
119         src/events   -- has the "events" code
120         src/media    -- has all the multimedia code
121         src/mem      -- has memory related code
122         src/mule     -- has the MULE stuff
123         src/ui       -- has the UI code common to all toolkits
124         src/ui/Gtk   -- has the old (non-working) GTK 1 code
125         src/ui/TTY   -- has the TTY UI code
126         src/ui/X11   -- has the X11 UI code
127         src/ui/lwlib -- has the Lucid stuff
128
129 This was done with the view to making maintenance and debugging
130 easier, and also to simplify adding new features.
131
132 ** FFI improvements, updates, and enhancements -- Zajcev
133
134
135 * SXEmacs 22.1.11 was never released.
136
137 See ChangeLog.d/ChangeLog-22.1.11 for all the changes in the
138 22.1.11 dev cycle, and for why it was not released.
139
140 * Changes in SXEmacs 22.1.10 (Excalibur)
141 ========================================
142
143 ** Bugs closed in this release:
144
145 41, 65, 74, 75, 79, 80, 81, 82, 83, 84, 85, 87, 89, 90, 91, 92, 93,
146 94, 95, 96, 97, 99, 100, 101, 102, 104
147
148 ** Cool New Sexy Stuff -- Zajcev, Ferreira, Freundt, Youngs.
149
150 Of course every release must have some cool new stuff.  Here's what's
151 new in this release...
152
153 *** User defined readers
154 *** It's possible to display video in a glyph object in a buffer.
155 *** SXEmacs is now a fairly decent image viewing/manipulation app.
156
157 There's an undo/redo stack, zoom in/out, rotate, chop/crop, red-eye
158 reduction.  There is a whole swag of transformations supported:
159 charcoal, contrast, despeckle, edge, enhance, equalise, gausian blur,
160 negate, normalise, oil painting, radial blur, 3D button effect,
161 sharpen, solarise, and swirl.
162
163 Who needs The Gimp when you have SXEmacs!
164
165 *** Added some MacOS icons.
166 *** Support for sqlite3 via FFI
167 *** New way for SXEmacs to handle different file types.
168
169 It allows you to have #'find-file take different actions based on a
170 predicate.  See the new variable `find-file-magic-files-alist'.
171
172 *** Enable PNG transparent backgrounds
173
174 Unfortunately this doesn't work if you use a background pixmap.
175
176 *** FFI callbacks implemented.
177 *** Dbus support via FFI (not completed)
178
179 This should be considered very much incomplete and experimental.  Only
180 rudimentary support is there so far.
181
182 ** Build chain fixes/improvements -- Burkhardt, Ferreira, Freundt, Youngs.
183
184 Quite a few build chain related changes were made in this release,
185 including...
186
187 *** Work around a bug in GCC 4.5.0
188 *** Powerpc/BSD cpu detection
189 *** A Freedesktop.org compliant sxemacs.desktop file is now installed.
190 *** Updated FFmpeg detection.
191 *** OpenSSL 1.0.0 detection.  OpenSSL is no on by default.
192 *** Fix a link error when building with no MPQ
193 *** Fix a minor bison related issue (YYSTYPE)
194 *** Fix building with latest SoX
195 *** Fix --without-x builds
196 *** Fix many C compiler warnings and elisp byte-compiler warnings.
197 *** Fix install for non-FFI and non-Mule builds
198 *** Fix etags build for systems without getopt_long
199 *** Fix (hopefully) parallel builds
200 *** Fix BDWGC-enabled builds
201
202 ** Minor updates to BDWGC code -- Freundt.
203
204 ** Catch up with latest ffmpeg API changes -- Freundt.
205
206 ** Fix for latest ediff -- Ferreira.
207
208 Changes emacs-internal to escape-quoted.
209
210 ** Fix for subwindow resizing -- Zajcev.
211
212 ** Various additions/updates to the contrib directory -- Ferreira
213
214 ** FFI improvements -- Zajcev
215
216 ** ENT fixes -- Freundt.
217
218 ** TTY fixes -- Ferreira.
219
220 ** Cleaner dump file (less pollution from the build/src dir) -- Freundt, Youngs.
221
222 ** Improve #'file-basename -- Ferreira
223
224 It can now take a 2nd arg for extension stripping.
225
226 ** Misc doc fixes/updates -- Burkhardt, Ferreira, Freundt, Zajcev, Youngs.
227
228 * Changes in SXEmacs 22.1.9 (Edsel)
229 ===================================
230
231 ** Bugs closed in this release:
232
233 32, 33, 34, 35, 36, 37, 38, 39, 40, 42, 45, 46, 47, 48, 49, 50, 51,
234 53, 54, 55, 56, 57, 58, 59, 60, 61, 62
235
236 See http://issues.sxemacs.org/ for the details.
237
238 ** Build chain fixes and improvements -- Freundt, Ferreira.
239
240 Better detection of ALSA, ffmpeg, libffi, libbind, and many other
241 various bits and pieces.
242
243 General build related fixes were made for MacOS, Solaris, HPUX, and of
244 course, Linux.
245
246 ** New function, #'mapfam -- Freundt.
247
248 This new function is an extrememly powerful replacement for _all_ of
249 the current map functions.  It not only can do the job of the
250 existing map functions, but can also convert any sequence to any
251 other sequence.  Lots of other cool features as well, see its doc
252 string for full details.
253
254 ** Init file migration code removed -- Youngs.
255
256 We feel that it is better to NOT mess with other emacsen's set ups.
257
258 ** Compiler warning fixes -- Freundt.
259
260 ** PNG images optimised for size -- Burkhardt.
261
262 All of the PNG images that we ship have been optimised for size.
263
264 ** Re-work auto-autoloads loading a little -- Ferreira.
265
266 Priority is given to packages installed under ~/.sxemacs/ and care is
267 taken to eliminate those "foo-autoloads already loaded" warnings.
268
269 ** Support 256 colour terminals -- Ferreira.
270
271 Support for 256 colour terminals and colour resolution through
272 approximation for tty devices.
273
274 ** New FFI util, ffi-magic.el -- Youngs.
275
276 Uses libmagic to guess file type.
277
278 ** Cool new stuff in the contrib directory -- Youngs, Ferreira.
279
280 There are tla hook scripts, build scripts, and build-report scripts.
281
282 ** New garbage collector BDWGC -- Freundt.
283
284 SXEmacs can now use the Boehm-Demers-Weiser garbage collector.  It is
285 still experimental at this stage and there are known bugs (memory
286 leak).  If you have plenty of RAM it is quite usable, and noticably
287 faster than non-BDWGC SXEmacsen.  This new feature is not on by
288 default.  To get it, configure with --with-experimental-features=all.
289
290 ** Support for BSD's MP removed -- Freundt.
291
292 ** Emodule search path/loading fixes -- Youngs.
293
294 Emodule load path has been made sane.  #'load-module and
295 #'locate-module have both been vastly improved and both have
296 completion. 
297
298 ** FFI improvements -- Youngs.
299
300 The FFI code has been improved so that it can be compatible with
301 XEmacs 21.5 for when they merge our FFI into their code base.  Also
302 #'ffi-load and #'ffi-load-library no longer need to be given a file
303 extension as part of the arg to allow for different platforms having
304 different shlib extensions.
305
306 Also, some UI enhancements were added to ffi-curl.el and
307 ffi-taglib.el.
308
309 ** Etags improvements -- Youngs.
310
311 A bit of "UI" has been added to etags.el, as well as some code
312 optimising.
313
314 ** Various minor tweaks, fixes, and documentation -- Burkhardt, Ferreira,
315       Freundt, Wallington, Youngs.
316
317
318 * Changes in SXEmacs 22.1.8 (Daimler)
319 =====================================
320
321 ** Bugs closed in this release: 22, 24, 26, 27, 29, 31
322
323 You might notice a double up of bug numbers here from the previous
324 release.  The index got reset and so some bug ID numbers were
325 re-issued.
326
327 ** Build chain fixes, improvements -- Freundt, Ferreira, Youngs.
328
329 We now have a libtool-based build chain.
330
331 ** Minor improvements to packages bootstrapping -- Youngs.
332
333 ** User's custom file renamed to custom-${USER}.el -- Youngs.
334
335 The old variant, custom.el is still used if that file exists.
336
337 ** Sync XEmacs 21.5's cus-*.el, autoload.el, subr.el -- Youngs.
338
339 Amongst other things, this sync brings custom-defines, many new custom
340 widgets, and an implementation of the `:inherit' face keyword.
341
342 ** Skiplist fixes -- Freundt.
343
344 ** Introduce custom printers -- Zajcev.
345
346 ** Update GPL licenced stuff to GPL version 3 -- Youngs.
347
348 ** Add a rc.d inspired init mechanism -- Ferreira.
349
350 ** Font lock improvements -- Ferreira.
351
352 ** Byte compile defcustom init values, saving lisp values for correct editing -- Kehoe.
353
354 Sync from XEmacs 21.5.
355
356 ** Improve interactivity of custom prompting -- Verna.
357
358 Sync from XEmacs 21.5.
359
360 ** Resize echo area when needed -- Aichner, Turnbull, Youngs.
361
362 Sync from XEmacs 21.5.  Don't confuse this with rsz-minibuffer.el in
363 the packages,  This is different, the minibuffer and echo area are 2
364 different things.
365
366 ** #'describe-function (C-h f) prints global keybindings for commands -- Kehoe, Youngs.
367
368 Sync from XEmacs 21.5.
369
370 ** New `%b' spec for #'format -- Freundt, Kehoe.
371
372 This is for converting between ints and bit vectors.
373
374 ** Sample init file updated -- Youngs.
375
376 ** Fix the bug exposed by our weak-tests.el -- Youngs.
377
378 ** Update the man page -- Youngs.
379
380 ** Support character classes in regexps -- Freundt.
381
382 ** Misc trivial changes such as doc fixes, typos, etc -- Burkhardt,
383      Freundt, Ferreira, Youngs.
384
385
386 * Changes in SXEmacs 22.1.7 (De Lorean)
387 =======================================
388
389 ** Bugs closed in this release: 13, 20, 21, 24, 25, 27, 28, 31
390
391 ** Much reworking of the build chain -- Freundt, Ferreira, Youngs.
392
393 Quite a bit has changed here, a few options have been changed, added,
394 or removed.  So if you haven't been following the development it might
395 pay you to have a look at our configure's --help output.
396
397 ** Fix emodule loading on 64bit machines -- Freundt.
398
399 ** Security fix in movemail.c (mktemp()->mkstemp()) -- Youngs.
400
401 ** Etags synched up to upstream 17.32 -- Burkhardt, Youngs.
402
403 ** Updates/fixes to dllists/skiplists -- Freundt, Ferreira.
404
405 ** Lots of updates in the ENT area (Enhanced Number Types) -- Freundt.
406
407 Some stuff has been moved to an external emodule, "ASE" (Algebraic
408 Structures for ENT or "ASE Supersedes ENT").  Also directed graphs
409 have been introduced (sparse representation only so far).  And
410 introduce heaps (dense, dynamic, and week).
411
412 ** cl.el meets C -- Freundt.
413
414 We've begun work on implementing the common lisp macros as an external
415 emodule.  The main focus here is speed, and initial benchmarks are
416 _very_ exciting... The emod version of #'dotimes (#'cl:dotimes) can be
417 nearly 200 times faster than its elisp counterpart!
418
419 This isn't finished yet, but watch future releases.
420
421 ** package-suppress mechanism ported from XEmacs 21.5 -- Freundt, Youngs.
422
423 ** Asynchronous version of #'curl:download added called #'curl:download& -- Freundt.
424
425 ** Font-lock improvements, especially on TTYs -- Ferreira.
426
427 ** Fix info search path -- Ferreira.
428
429 ** Change default setting for progress guages to be off -- Youngs.
430
431 ** Multimedia updates/fixes -- Freundt, Youngs.
432
433 Lots of reworking has been done here, especially with PulseAudio,
434 ffmpeg, and threading of the audio jobs etc.  Support for gstreamer
435 and xine has been dropped, and libmagic added.
436
437 ** New macro to define "toggle" variables #'define-toggle-variable -- Zajcev
438
439 I wouldn't normally list a single new macro in this file, but this one
440 deserves a mention.  It sets up toggle variables, including
441 #'turn-on-VAR, #'turn-off-VAR, and #'toggle-VAR.  Very nifty.
442
443 ** Many many compiler warnings have been fixed -- Freundt, Youngs.
444
445 Almost all byte-compiler warnings have been fixed in our build.  And a
446 good deal of the warnings in the C code of a standard build has been
447 fixed as well.
448
449 ** GC fixes/updates -- Freundt.
450
451 ** A contrib directory has been added to the tree -- Freundt.
452
453 So far there are patches in there to pop3.el, smtpmail.el, and
454 starttls.el which takes advantage of some of SXEmacs' cool native
455 features like OpenSSL.
456
457 Watch this space for more nifty things.
458
459 ** Minor misc fixes (typos etc) -- Zajcev, Burkhardt, Freundt, Ferreira, Youngs.
460
461 ** Documentation updates:
462         o sppm.texi -- Burkhardt, Youngs.
463         o lispref.texi -- Freundt, Youngs.
464         o tips.texi -- Freundt.
465         o building.texi -- Youngs.
466         o processes.texi -- Ferreira.
467         o internals.texi -- Freundt.
468
469 * Changes in SXEmacs 22.1.6 (Cadillac)
470 ======================================
471
472 ** ENT (Enhanced Number Types) updates and fixes -- Freundt, Ferreira.
473
474 ** MM (MultiMedia) updates and fixes -- Freundt, Ferreira, Youngs.
475
476 ** FFi (Foreign Function Interface) updates -- Freundt, Zajcev.
477
478 ** New ffi-gcrypt.el -- Freundt.
479
480 ffi-gcrypt.el brings GnuPG's libgcrypt bindings to SXEmacs.
481
482 ** Line/column numbers in modeline are now padded -- Ferreira.
483
484 ** New skiplists -- Freundt.
485
486 This is a basic implementation of Pugh's skip lists.  Their efficiency
487 is overwhelming when compared to alists or plists.  They also perform
488 better on insertion and removal than large hash-tables (due to the
489 resizing/rehashing which takes place).  They can be created almost as
490 fast as lisp lists and thus beat hash-tables there, too.
491
492 ** Fix module (DSO) load paths -- Youngs.
493
494 ** SXEmacs maintainer turned 40 -- Mr and Mrs Youngs.
495
496 This is a recurring bug that was first discovered on June 19th, 1966.
497
498 ** Test suite updates/improvements -- Turnbull, Youngs.
499
500 ** Etags updates/fixes -- Ferreira, Youngs.
501
502 Sync to Francesco's version 17.20 etags.  And major surgery on
503 etags.el to make it usable, fixing completion and support for the
504 "include" directive.
505
506 ** Fix raw string parsing -- Kehoe.
507
508 A problem that arose in lisp-interaction-mode, where raw strings
509 were parsed as normal strings if you did a C-j after them, becase
510 forward-sexp couldn~t handle them.
511
512 ** Sync bytecomp-runtime.el with XEmacs 21.5 -- Youngs.
513
514 The significance of this is that SXEmacs now has all those cool
515 with,if,when,and-boundp macros for clean byte-compiler warning
516 suppression.
517
518 ** OpenSSL updates/fixes/improvements -- Freundt.
519
520 A rewrite of the old handshake functions.  SSL connections can be
521 established as before: open a network-stream, call ossl-ssl-handshake
522 on it and store the result.  The new implementation provides also
523 support for certificate authorities (CA), for peer certificates and,
524 using the network-server-streams, secure listening sockets.  This will
525 allow to connect/accept to/from servers/clients which require valid
526 peer certificates.
527
528 ** New PulseAudio support -- Freundt.
529
530 PulseAudio is the successor to PolypAudio.  Because there were so few
531 users using Polyp (think we counted 2 and they're both SXEmacs
532 developers) SXEmacs support for PolypAudio was replaced by PulseAudio
533 support. 
534
535 ** New Caching compiled regular expressions -- Freundt.
536
537 All you really need to do to use them is assign them (the regexp) to a
538 variable.  Here's an example...
539
540   (let ((reg1 "^;+\\s-")
541         (reg2 "\\s-+;+"))
542     (while (and (re-search-forward reg1 nil t)
543                 (re-search-forward reg2 nil t))
544       ...))
545
546 instead of:
547
548   (while (and (re-search-forward "^;+\\s-" nil t)
549               (re-search-forward "\\s-+;+" nil t))
550     ...)
551
552 The former construct will store the compiled regular expressions in the
553 object property list of `reg1' and `reg2' on the first iteration of
554 `while', all following iterations will then use the already compiled
555 regexps.  The latter construct will behave as before, the regular
556 expression is compiled and stored, but since the string is hard-coded in
557 the buffer, it will be newly generated (with empty object-plist of
558 course) during every cycle of the while loop.
559
560 ** Cleaner dump file -- Freundt, Youngs.
561
562 The portable dump file was getting polluted with things in the
563 packages load-path causing all sorts of undefined and unexpected
564 impossible to track down bugs.  No longer!
565
566 ** Fix many many byte-compiler warnings in building core lisp -- Youngs.
567
568 ** Fix building without emodules -- Ferreira.
569
570 ** New Support emodules on MacOS -- Ferreira.
571
572 ** Fix BerkeleyDB detection on NetBSD -- Ferreira.
573
574 ** New SXEmacs icons added to dist -- Ferreira.
575
576 ** Major restructuring of the build chain and install layout -- Freundt.
577
578 SXEmacs is now pretty much a completely autotool'd project... automake,
579 autoheader, the whole 9 yards.  And if that wasn't enough, we are now
580 also, to the best of our knowledge, reasonably FHS-compliant with our
581 install.
582
583 The changes to the install directory hierarchies are:
584
585            now go to...                before went to...
586   lisp     share/sxemacs-22.1.6/lisp/  lib/sxemacs-22.1.6/lisp/
587   etc      share/sxemacs-22.1.6/etc/   lib/sxemacs-22.1.6/etc/
588   info     share/info/                 lib/sxemacs-22.1.6/info/
589   headers  include/sxemacs/22.1.6/     lib/sxemacs-22.1.6/<arch>/include/
590
591 Packages are now searched for in
592
593   $prefix/share/sxemacs/{{s,}xemacs,mule,site}-packages/
594
595 instead of $prefix/lib/sxemacs/.../
596
597 ** DnD dragged out and dropped on /dev/null -- Freundt.
598
599 ** Misc build fixes -- Freundt, Ferreira, Youngs.
600
601 ** Fix `tags' Makefile target -- Youngs.
602
603 ** Fix bug in `lib-complete' -- Freundt.
604
605 The bug was causing `find-library' to visit the .elc instead of the
606 .el if you were running SXEmacs in-place from the build tree.
607
608 ** Fix stack overflow crash in mapconcat -- Ferreira.
609
610 ** Large update of about.el -- Freundt, Ferreira, Youngs.
611
612 See: M-x about-sxemacs
613
614 ** Various documentation updates/fixes/improvements -- Freundt, Ferreira, Youngs.
615
616
617 * Changes in SXEmacs 22.1.5 (Bugatti)
618 =====================================
619 First up, this release has turned into a purely maintenance/bugfix
620 release.  SXEmacs 22.1.4 had several build-related issues that this
621 release addresses.
622
623 ** version.sh fix -- Youngs.
624
625 Fix a problem with the wrong version being generated.
626
627 ** Autoconf fixes -- Youngs, Ferreira, Freundt.
628
629 Lots of changes to the autoconf configure script
630
631         - Recognise $CFLAGS environment variables
632         - X toolkit autodetection redone
633         - TTY autodetection fixed
634         - PostgreSQL detection properly reported
635         - Change allowed values for menubars, dialogs, widgets
636                 menubars -- no athena or motif
637                 dialogs  -- no lucid
638                 widgets  -- no lucid
639         - Set configure's "bugreport address" to
640           http://issues.sxemacs.org. 
641         - Fix gdbm/berkdb detection
642         - Improve libc version detection
643
644 ** New Makefile target (build-report) -- Kuehl.
645
646 `make build-report' is a convenience target.  It automatically
647 captures make output to files that `M-x build-rpt' knows about.  It
648 also runs `make check'.  The SXEmacs developers recommend that you use
649 this target to build SXEmacs.
650
651 ** PROBLEMS updated -- Kuehl, Freundt.
652
653 Document SELinux/libffi issues and GMP/mpfr Fedora issues.
654
655 ** pdump/ENT fix for *BSD -- Freundt.
656
657 ** Documentation updates/fixes -- Youngs, Ferreira, Freundt.
658
659
660 * Changes in SXEmacs 22.1.4 (Bentley Turbo)
661 ===========================================
662
663 ** Many more image formats via FFI/libWand -- Freundt.
664
665 FFI-enabled SXEmacs can load up libWand and thus display any image
666 format that libWand (ImageMagick) supports.
667
668 ** Lots of updates to the ENT (Enhanced Number Types) code -- Freundt.
669
670 ** Mule is on by default -- Youngs.
671
672 ** Embeddable keyboard macros -- Kuehl.
673
674 This means that the following sort of thing is possible:
675
676       C-x ( bar C-x )
677       C-x ( foo C-x e C-x )
678     
679       C-x e
680       => foo bar
681
682 ** Default widgets/dialogs to Athena instead of Motif -- Youngs.
683
684 ** OpenSSL updates -- Freundt.
685
686 Digest, encryption, and decryption routines that operate on files has
687 been added.  Previously this was only available for buffers.
688
689 ** Build reports have been revamped -- Youngs, Freundt.
690
691 The SXEmacs build report no longer conflicts with the XEmacs
692 build-report.el.  Plus ours also reports on shared lib dependencies
693 and config.h stuff.  Sending from Gnus is also supported.
694
695 ** FFI updates/fixes -- Youngs, Zajcev, Freundt.
696
697 ** Ability to build postscript, pdf, and html docs -- Ferreira.
698
699 ** Double linked lists and bloom filters implemented -- Freundt.
700
701 Bloom filters are a space and time-efficient way to decide about the
702 membership of an element to a given set. Using lisp-lists or vectors,
703 one usually has to traverse the entire list or vector, before
704 membership can be decided.  Using hash tables, membership decision is
705 in O(1) (bloom filters also decide in O(1)), but the hash-table's size
706 grows proportionally with the number n of elements, thus its space
707 complexity is O(n), whereas Bloom filters take a constant amount of
708 space regardless how many elements are in it.
709
710 ** Lightning fast recursive version of directory-files -- Freundt.
711
712 It's called `directory-files-recur' and in some situations it is even
713 faster than GNU's find(1).
714
715 ** Portuguese added to etc/HELLO -- Ferreira.
716
717 ** Massive improvements, enhancements for multimedia (audio) -- Freundt.
718
719 SXEmacs supports several "sound servers" like: OSS, NAS, ESD, Polypaudio,
720 ALSA, aRts, and Jack.  And media streams can be handled by sndfile, ffmpeg,
721 sox, mad, xine, gstreamer.  The SXEmacs developers recommend Polyp/ffmpeg
722 whenever possible.
723
724 And yes, SXEmacs _can_ play mp3 files. :-)
725
726 ** Autoconf fixes/updates -- Youngs, Freundt.
727
728 All of the enable/disable options have been converted to with/without
729 options.  This allows us to sort them into groups.
730
731 Also fixes were made to allow building on FreeBSD and NetBSD.
732
733 ** Big update for the FAQ -- Youngs, Freundt.
734
735 ** Server Sockets! -- Ferreira.
736
737 SXEmacs now has server sockets (Yay!).  See
738 `open-network-server-stream'.
739
740 ** Compiler fixes (gcc 2.95) -- Freundt.
741
742 ** bug-reporter update -- Youngs.
743
744 `report-sxemacs-bug' now directs people to our BugZilla installation
745 at http://issues.sxemacs.org/
746
747 ** Documentation updates/fixes/improvements -- Youngs, Ferreira, Freundt.
748
749
750 * Changes in SXEmacs 22.1.3 (BMW)
751 =================================
752
753 ** OpenSSL updates, improvements, and fixes -- Freundt.
754
755 ** FFI updates, and fixes -- Zajcev.
756
757 FFI now defaults to "on" if libffi can be found at configure time.  It
758 you don't want this, use: `--disable-ffi'.
759
760 FTP downloads with `curl:download' is working properly now.  And with
761 HTTP transfers you can transfer just the HTTP header for a file if you
762 wish.
763
764 ** Extent/glyph fixes -- Sidwell, Kuehl.
765
766 ** 32 mouse buttons supported -- Youngs.
767
768 (global-set-key [(button32)] 'some-function) is valid in SXEmacs.
769
770 ** Modeline tweaks -- Ferreira.
771
772 Move line/column number indicators to left side (aka XE 21.5)
773
774 ** M-x uptime -- Youngs.
775
776 Every good OS has an uptime util, SXEmacs is no exception.  Reports
777 uptime in various formats.
778
779 ** ia64 build fixes -- Lesjak.
780
781 ** `C-h n' will no longer find NEWS files from packages -- Youngs.
782
783 ** List of package mirrors updated -- Aichner, Skyttä.
784
785 ** Bootstrappable PUI -- Youngs.
786
787 SXEmacs no longer needs to have _any_ packages pre-installed before
788 PUI can be used.  See (Info-goto-node "(sxemacs)Bootstrapping PUI").
789
790 ** Bignums, and a whole swag of sexy new number goodness -- Freundt.
791
792 Bignums, bigfloats, and ratios that you may know from XEmacs 21.5 are
793 now in SXEmacs.  That and a whole lot more...
794
795 Features provided when all of the library demands are met:
796     
797   (featurep 'bigz) and 
798   (featurep 'bignum)       <=> if MPZ from GMP or BSD MP is present
799   
800   (featurep 'bigq) and
801   (featurep 'ratio)        <=> if MPQ from GMP is present
802   
803   (featurep 'bigf) and
804   (featurep 'bigfloat)     <=> if MPF from GMP is present
805   
806   (featurep 'bigfr)        <=> if MPFR is present
807   
808   (featurep 'bigc)         <=> if MPC is present
809   
810   (featurep 'number-types) <=> if one of the above features is
811   provided
812
813 For complete details see: (Info-goto-node "(lispref)Enhanced Number Types")
814
815 ** Raw strings -- Kuehl.
816
817 SXEmacs tries to relieve backslashitis by implementing raw strings.
818 You'll imediately notice the benefit of raw strings when use them for
819 those hairy regexps.  Consider the regular expression (from
820 font-latex.el)... 
821
822   "\\(?:^\\|[^\\]\\)\\(?:\\\\\\\\\\)*\\(\\\\[@A-Za-z]+\\)"
823
824 As a raw string it could be written as...
825
826   #r"\(?:^\|[^\]\)\(?:\)*\(\\[@A-Za-z]+\)"
827
828 Most of the SXEmacs core lisp code has been converted over to using
829 raw strings whereever appropriate.
830
831 ** Improved font-locking in a TTY -- Ferreira.
832
833 To illustrate this...
834
835   $ sxemacs -nw -vanilla
836
837 ...and look at the modeline.  Now open a .c file and turn on
838 font-lock... 
839
840   C-x C-f /path/to/file.c RET
841   M-x font-lock-mode RET
842
843 ** Compiler fixes -- Zajcev.
844
845 ** SXEmacs can no longer be built with a C++ compiler -- Youngs.
846
847 To build SXEmacs you will need a C compiler at least the equivalent of
848 GCC 2.95.3.  Building with a C++ compiler is no longer supported.
849
850 ** Autoconf fixes, updates -- Freundt, Kuehl, Youngs.
851
852 All autoconf options now have a help string (for ./configure --help)
853 and the default setting for each option is noted.
854
855 ** PostgreSQL auto-detection improved -- Youngs.
856
857 If pg_config is in your $PATH, SXEmacs will add PostgreSQL support at
858 configure/build time.
859
860 ** Documentation (Texinfo) updates -- Freundt, Youngs.
861
862 The SXEmacs manual is now called "sxemacs" instead of "xemacs".  C-h
863 C-i sxemacs RET to read it.
864
865 Most of the Texinfo docs now have been updated to say "SXEmacs"
866 whereever appropriate instead of "XEmacs".
867
868 ** GTK (version 1.2) build fixes -- Youngs.
869
870
871 * Changes in SXEmacs 22.1.2 (Audi)
872 ==================================
873
874 ** autoconf 2.59 compatible configure scripts -- Youngs, Purvis.
875
876 Many configure options have changed.  Please run `./configure --help'
877 to see what the new options are.
878
879 ** Most win32 code is now gone -- Youngs, Freundt.
880
881 ** `describe-installation' report libc version on Slackware -- Youngs.
882
883 ** etags.c updated to Francesco's version 17.11 -- Youngs.
884
885 ** Support `ls --dired' properly -- Sperber.
886
887 ** FFI (Foreign Function Interface) updates -- Zajcev.
888
889 One of the most exciting things is that this version of SXEmacs can
890 download files from the internet _without_ the need of any XEmacs
891 packages being installed.  If you have libcurl and enable FFI in
892 SXEmacs at build time, you can:
893
894         (require 'ffi-curl)
895         (curl:download "http://www.somedomain.com/path/file"
896                        "/tmp/file")
897
898 To put your mind at ease, libcurl is _NOT_ needed to build SXEmacs.
899 The above will work even if you install libcurl after
900 building/installing SXEmacs.
901
902 ** Don't echo GC messages for non-string GC'ing -- Zajcev.
903
904 This drastically reduces the number of "Garbage Collecting" messages
905 that you see in the echo area.  Garbage collection is still happening,
906 it is just not in your face as much.
907
908 ** movemail.c security fixes -- Oskarsson.
909
910 ** PUI's *packages* buffer enhancements -- Koch.
911
912 ** Saner fallbacks for `backup-buffer' -- Youngs.
913
914 Based on an idea from JWZ, if the backup can't be written, try in
915 `auto-save-directory', and if that fails, fall back to $HOME.
916
917 ** OpenSSL support -- Freundt.
918
919 Of course. The OpenSSL library itself is actually separated into two
920 libraries: libcrypto and libssl.  libcrypto is the part which comes to
921 elisp with the current API.  libssl is planned for the near future.
922
923 With this interface/gateway we now have access to the wonderful world
924 of static cryptography (static here means no handshake/protocols/etc.).
925
926 The API contains:
927
928 - the OpenSSL PRNG = (pseudo) random number generator to provide
929   generating cryptographically secure randomness
930
931 - the OpenSSL MDs (message digests) to provide all sorts of hashing
932   (we had an md5 implementation already)
933
934 - the HMAC aka keyed hashing aka message authentication code to provide
935   hashes secured by a password
936
937 - the CIPHER engine (i.e. symmetric crypto systems) to provide
938   encryption/decryption routines secured by a password
939
940 - the PKEY engine (i.e. asymmetric crypto systems) to provide generation
941   and distribution of private/public key pairs (as probably known by
942   gpg)
943
944 - the HYBRIDe engine aka PKCS aka public key crypto systems to provide
945   encryption based on (foreign) public keys and decryption with own
946   private keys to provide also digital signatures and verification (as
947   probably known by gpg)
948
949 ** Remove most of the generated files from the repo -- Youngs, Freundt.
950
951 ** Allow suppression of WM decorations -- Turnbull.
952
953 This makes balloon-help windows infinitely better behaved.  Thank you
954 very much, Steve T.
955
956 ** Fontify *scratch* buffer according to user's settings -- Kehoe.
957
958 ** Fix bug hanging SXEmacs when yanking > 260kb -- Kehoe.
959
960 ** lispref manual updated for SXEmacs -- Freundt.
961
962 ** PostgreSQL updates (mainly doc updates) -- Frenudt.
963
964
965 * Changes in SXEmacs 22.1.1 (Aston Martin)
966 ==========================================
967
968 ** user-init-directory set to ~/.sxemacs -- Youngs.
969
970 Symlinking this to your old ~/.xemacs directory is enough to get up
971 and running with SXEmacs.
972
973 ** Packages hierarchy default set to $prefix/lib/sxemacs -- Youngs.
974
975 Symlinking this to your old $prefix/lib/xemacs directory is enough to
976 get up and running with SXEmacs.  SXEmacs will do this for you when
977 you do `make install'.
978
979 ** Rename items in the menubar -- Slusar, Youngs.
980
981 ** Beginnings of FFI -- Zajcev.
982
983 FFI is "Foreign Function Interface" and will allow access to functions
984 and libraries outside of SXEmacs from within lisp.  Not completed yet,
985 but the basic infrastructure is in place.
986
987 ** FreeBSD build fixes -- Slusar.
988
989 ** M-x report-sxemacs-bug -- Youngs.
990
991 For now, this is just a wrapper around report-xemacs-bug with the
992 appropriate variables set to SXEmacs values.
993
994 ** Fix etags.c -- Slusar.
995
996 Avoid a segv.
997
998 ** M-x build-report -- Youngs.
999
1000 Make it work for SXEmacs.
1001
1002 ** Fix major bug in regex.c
1003
1004 This fixed a whole swag of crashes involving regexps and
1005 syntax-tables. 
1006
1007 ** Sync up with XEmacs 21.4 -- Various Developers.
1008
1009
1010 * Changes in SXEmacs 22.1.0 (Alfa Romeo)
1011 ========================================
1012
1013 This is the first release of SXEmacs.  It is a fork of XEmacs
1014 21.4.16.  The vast majority of the changes between SXEmacs 22.1.0 and
1015 the code it descended from, XEmacs 21.4.16, are purely renaming
1016 "XEmacs" to "SXEmacs".