* XEmacs 21.5.26 "endive" is released.
"endive" is the twenty-seventh in the VEGETABLE series.
The successor to XEmacs 21.5.25 "eggplant", "endive" adds support
for the Advanced Linux Sound Architecture by Jerry James, and a large
number of fixes and improvements to the new garbage collector by
Marcus Crestani. The most important of these was to make finalization
of Lisp objects asynchronous, which doesn't have direct relevance to
users, but will make writing correct code for Lisp primitives easier.
Vin Shelton contributed several improvements to the path-finding code
(primarily MS Windows-oriented), aided and abetted by Mike Sperber and
several testers. Of course, there was the usual array of small
improvements and bug fixes.
*Important Notice*
There were a number of important bugs (including crashes) in the new
gc code fixed, and unfortunately some of them affected the supposedly
stable --enable-newgc=no code, it seems. Also, Malcolm Purvis
committed a workaround for an assert in the regex code that was being
provoked by Gnus and by the error parser for M-x compile. It is
*highly recommended* that you upgrade if you are currently using the
previous beta, 21.5.25.
However, there are a number of undiagnosed crashes lurking, especially
on the x86_64 platform. It's possible they've been fixed en passant,
but since they're undiagnosed, please be prudent, save often, and back
up your essential data.
This is the development line. The current series started with XEmacs 21.5.0
(an alias for XEmacs 21.4.0 "Solid Vapor", the first release in the current
stable line). 21.5 is the code base for introduction of major new subsystems
and fixes to design bugs that experience shows will introduce instability.
So far the main effort has been on improved support for Unicode, updates to
the build infrastructure, and development of new features in memory allocation.
For general information about XEmacs, the developers, and the user community,
see our home page,
http://www.xemacs.org/
* XEmacs 21.5.26 is "beta" software.
The usual "no warranty" disclaimer (see etc/WARRANTY, sections 10 and 11)
applies. At this point in time, it is the version that most developers
are using for their daily work. However, it is certain that many bugs
remain and new ones will be introduced as development proceeds. Be sure
to take care to save your work often and follow a regular backup regime.
Note that part of the release process involves a full build and test cycle,
with no regressions. However, one build on the release engineer's host is
all the quality assurance that is done for most beta releases. Be sure to
checkpoint a known good version of XEmacs (eg, a CVS tag or tarball) before
overwriting your XEmacs source tree.
* Availability
Anonymous ftp:
ftp://ftp.xemacs.org/pub/xemacs/xemacs-21.5
See
http://www.xemacs.org/Install/ for more information about building
from source.
If you already have a 21.5.25 source tree, a patchkit is available in
xemacs-21.5.25-21.5.26.patch.gz. This does not update .elcs or .infos,
they will be rebuilt when you make XEmacs. If you have an earlier
version, you can repeatedly apply patchkits.
We thank our hosts at
Tux.org, and numerous mirrors around the world,
for providing space and bandwidth for distributing XEmacs.
Also, if you don't have the packages yet, see
http://www.xemacs.org/Documentation/packageGuide.html.
Anonymous (pserver) CVS:
Anonymous CVS is available. We are very grateful to the staff at our
host,
dotsrc.org (formerly SunSITE.dk), for a lot of help and quick
response to all our requests.
Take care that your Root is set correctly to
CVSROOT=:pserver:cvs@cvs.xemacs.org:/pack/xemacscvs
On platforms with a Bourne shell and find available, something like
for r in `find . -name Root`; do echo $CVSROOT > $r; done
will convert your entire tree.
To make it straightforward to access certain versions of the code, we have
a standard tagging policy. To update to release 21.5.26, use the update
flag "-r r21-5-26". To update to the current release without referring to
it specifically, use the flag "-r r21-5-current-beta". To update to the
latest commits in CVS, use the flag "-A". Then rebuild XEmacs.
For more details, see
http://www.xemacs.org/Develop/cvsaccess.html
or the ViewCVS interface at
http://cvs/xemacs.org .
* Brief summary of Changes to XEmacs 21.5.26 "endive"
Major Features and Backward Incompatible Changes
-- Improve: search for package roots on Windows. -- Vin Shelton
-- Improve: support asynchronous finalization, remove explicit finalizers, and support for
statistics for explicitly finalized objects. -- Marcus Crestani, Adrian Aichner
-- New: support ALSA sound on Linux. -- Jerry James
User-Visible Bug Fixes and Minor Improvements
-- Fix: GC cursor display in mc-alloc. -- Marcus Crestani
-- Fix: next-error.el vs. compile.el name clashes. -- Malcolm Purvis
-- Fix: restore memory usage stats (fix regexp). -- Marcus Crestani
-- Fix: synch widget-move-and-invoke, used by Gnus. -- Jerry James
-- Fix: uncomment-region in C files. -- Jerry James
-- Fix: use set-text-properties, not remove-list-of-text-properties. -- Jerry James
-- Improve: convert decode-coding-region, encode-coding-region to interactive commands. --
Stephen Turnbull
-- Improve: synch regex failure limits with GNU Emacs, avoiding asserts. -- Malcolm
Purvis
Build Infrastructure
-- Fix: eliminate configure idioms obsolete in Autoconf 2.59. -- Jerry James, Ilya
Golubev
-- Improve: merge mc-alloc features into --with-newgc. -- Marcus Crestani
Documentation
-- Fix: document dependence of `run-lisp' on os-utils package. -- Mike Sperber
-- Improve: move historical READMEs, etc, to internals.texi. -- Stephen Turnbull
Lisp API
-- Improve: remove dead API (lisp-send-defun). -- Mike Sperber
Internal API and Implementation
-- Fix: add missing do to RETURN_UNGCPRO_EXIT_PROFILING. -- Jerry James
-- Fix: avoid malloc in vdb signal handler. -- Marcus Crestani
-- Fix: broken use of memset in vdb_install_signal_handler. -- Mike Fabian
-- Fix: eliminate bogus pointer to nowhere. -- Stephen Turnbull, Jerry James
-- Fix: malloc size in Dynarr_realloc. -- Marcus Crestani
-- Improve: add internal API to zero uninitialized string. -- Marcus Crestani
-- Improve: dynamic array cleanup, remove duplicate code. -- Marcus Crestani
-- Improve: handle memory shortage in mc-alloc properly. -- Marcus Crestani
-- Improve: mc-alloc APIs now return number of pages processed. -- Marcus Crestani
-------- ChangeLog Entries from ChangeLog --------
2006-03-31 Stephen J. Turnbull <stephen(a)xemacs.org>
* XEmacs 21.5.26 "endive" is released.
2006-03-31 Stephen J. Turnbull <stephen(a)xemacs.org>
Miscellaneous doc cleanup, parts 2-4: move CHANGES-msw,
TODO.ben-mule-21-5, README.ben-mule-21-5, and
README.ben-separate-stderr to Internals Manual.
* CHANGES-msw: Removed.
* TODO.ben-mule-21-5: Removed.
* README.ben-mule-21-5: Removed.
* README.ben-separate-stderr: Removed.
2006-03-29 Stephen J. Turnbull <stephen(a)xemacs.org>
Miscellaneous doc cleanup, part 1: move CHANGES-ben-mule to
Internals Manual.
* CHANGES-ben-mule: Removed.
* ChangeLog:
* lib-src/ChangeLog:
* lisp/ChangeLog:
* lwlib/ChangeLog:
* man/ChangeLog:
* man/internals/internals.texi:
* modules/ChangeLog:
* netinstall/ChangeLog:
* nt/ChangeLog:
* nt/installer/Wise/ChangeLog:
* src/ChangeLog:
* tests/ChangeLog:
Update the Great Mule Merge placeholders to point to Internals
Manual node "The Great Mule Merge of March 2002".
N.B. Self-referencing log entries were *not* added to other logs.
2006-03-30 Jerry James <james(a)xemacs.org>
* configure.ac: Fix for -Kalloca detection, also broken by the
recent autoconf updates. Thanks to Ilya Golubev.
2006-03-30 Jerry James <james(a)xemacs.org>
* configure.ac: Fix FOR_MSW XPM test, broken by previous update.
2006-03-27 Jerry James <james(a)xemacs.org>
* aclocal.m4: Updates for autoconf 2.59.
* configure.ac: Ditto. Also, don't bother checking for inttypes.h
and unistd.h explicitly, since AC_HEADER_STDC does that.
2006-03-27 Jerry James <james(a)xemacs.org>
* configure.ac: Repair ALSA detection.
2006-03-24 Jerry James <james(a)xemacs.org>
* configure.ac: Autodetect ALSA support and report it if detected.
2006-02-22 Marcus Crestani <crestani(a)xemacs.org>
* configure.ac: Remove mc-alloc, replace it with newgc, adjust
output and comments.
-------- ChangeLog Entries from etc/ChangeLog --------
2006-03-31 Stephen J. Turnbull <stephen(a)xemacs.org>
* XEmacs 21.5.26 "endive" is released.
-------- ChangeLog Entries from lib-src/ChangeLog --------
2006-03-31 Stephen J. Turnbull <stephen(a)xemacs.org>
* XEmacs 21.5.26 "endive" is released.
-------- ChangeLog Entries from lisp/ChangeLog --------
2006-03-31 Stephen J. Turnbull <stephen(a)xemacs.org>
* XEmacs 21.5.26 "endive" is released.
2006-03-31 Marcus Crestani <marcus.crestani(a)ub.uni-tuebingen.de>
* diagnose.el (show-mc-alloc-memory-usage): Rename buffer to
"mc-alloc memory usage" to avoid name clash with
show-memory-usage.
2006-03-26 Marcus Crestani <crestani(a)xemacs.org>
* diagnose.el (show-gc-stats): Adjust format string, remove
explicitly-freed statistics (the need to explicitly free went away
with the asynchronous finalization patch).
2006-03-20 Malcolm Purvis <malcolmp(a)xemacs.org>
* next-error.el: Rename functions that clash with the next-error
family in compile.el
* occur.el (occur-next-error): Use new names
* occur.el (multi-occur): Fix compiler warnings.
2006-03-15 Jerry James <james(a)xemacs.org>
* newcomment.el (uncomment-region): Remove old code that breaks
uncomment-region on C files. Thanks to Christian Podlasly for the
report.
2006-03-15 Jerry James <james(a)xemacs.org>
* register.el (describe-register-1): Use set-text-properties
instead of the nonexistent remove-list-of-text-properties.
2006-03-14 Jerry James <james(a)xemacs.org>
* wid-edit.el (widget-move-and-invoke): New function, used by Gnus.
2006-02-26 Vin Shelton <acs(a)xemacs.org>
* setup-paths.el (paths-emacs-data-root-p): Add search for package
root.
(paths-find-invocation-roots): Add root-p parameter to test
plausibility of the roots.
2006-03-12 Marcus Crestani <crestani(a)xemacs.org>
* diagnose.el (show-memory-usage): Fix regexp.
2006-02-26 Mike Sperber <mike(a)xemacs.org>
* lisp-mode.el (lisp-send-defun): Remove this function; the
definition here didn't do anything---once upon a time, it may have
gotten overwritten by some code that has evaporated since then.
-------- ChangeLog Entries from lwlib/ChangeLog --------
2006-03-31 Stephen J. Turnbull <stephen(a)xemacs.org>
* XEmacs 21.5.26 "endive" is released.
-------- ChangeLog Entries from man/ChangeLog --------
2006-03-31 Stephen J. Turnbull <stephen(a)xemacs.org>
* XEmacs 21.5.26 "endive" is released.
2006-03-31 Stephen J. Turnbull <stephen(a)xemacs.org>
Miscellaneous doc cleanup, parts 2-4: move CHANGES-msw,
TODO.ben-mule-21-5, README.ben-mule-21-5, and
README.ben-separate-stderr to Internals Manual.
* internals/internals.texi (Ben's TODO list):
(CHANGES from 21.4-windows branch):
(Ben's README):
(Ben's separate stderr notes):
New nodes.
(Subprocesses): Add "Ben's separate stderr notes" to menu.
(The Great Mule Merge of March 2002): Add "Ben's TODO list" and
"Ben's README" to menu.
(Interface to MS Windows): Add "CHANGES from 21.4-windows branch"
to menu.
(Top): Update detailmenu.
2006-03-30 Stephen J. Turnbull <stephen(a)xemacs.org>
Miscellaneous doc cleanup, part 1: move CHANGES-ben-mule to
Internals Manual.
* internals/internals.texi (The Great Mule Merge of March 2002):
Insert CHANGES-ben-mule here, and reformat for Texinfo.
2006-02-26 Mike Sperber <mike(a)xemacs.org>
* xemacs/building.texi (External Lisp): Document that `run-lisp'
needs the os-utils package.
-------- ChangeLog Entries from modules/ChangeLog --------
2006-03-31 Stephen J. Turnbull <stephen(a)xemacs.org>
* XEmacs 21.5.26 "endive" is released.
-------- ChangeLog Entries from netinstall/ChangeLog --------
2006-03-31 Stephen J. Turnbull <stephen(a)xemacs.org>
* XEmacs 21.5.26 "endive" is released.
-------- ChangeLog Entries from nt/ChangeLog --------
2006-03-31 Stephen J. Turnbull <stephen(a)xemacs.org>
* XEmacs 21.5.26 "endive" is released.
2006-02-27 Vin Shelton <acs(a)xemacs.org>
* config.inc.samp: Comment out PACKAGE_PREFIX.
* xemacs.mak: Convert PACKAGE_PREFIX input from config.inc to
PATH_LATE_PACKAGE_DIRECTORIES. Do not use PACKAGE_PATH.
2006-02-22 Marcus Crestani <crestani(a)xemacs.org>
* xemacs.mak: Remove mc-alloc, replace with newgc, adjust output.
* config.inc.samp: Remove MC_ALLOC option.
-------- ChangeLog Entries from nt/installer/Wise/ChangeLog --------
2006-03-31 Stephen J. Turnbull <stephen(a)xemacs.org>
* XEmacs 21.5.26 "endive" is released.
-------- ChangeLog Entries from src/ChangeLog --------
2006-03-31 Stephen J. Turnbull <stephen(a)xemacs.org>
* XEmacs 21.5.26 "endive" is released.
2006-03-30 Adrian Aichner <adrian(a)xemacs.org>
* lisp.h (Dynarr_add): Add local variable imp to avoid VC6
internal compiler error.
2006-03-26 Marcus Crestani <crestani(a)xemacs.org>
* gc.c: Remove functions for explicitly-freed statistics
(the need to explicitly free went away with the asynchronous
finalization patch).
* gc.c (struct gc_state): EMACS_INT -> double, remove
explicitly-freed statistics.
* gc.c (Fgc_stats): Remove explicitly-freed statistics.
* gc.c (PL): Use make_float.
* gc.h: Remove prototypes and macros for explicitly-freed
statistics.
2006-03-24 Jerry James <james(a)xemacs.org>
* alsaplay.c: New file providing support for sound with ALSA.
* config.h.in: New symbol HAVE_ALSA_SOUND
* sound.c: Add ALSA support.
2006-03-27 Mike Fabian <mfabian(a)suse.de>
* vdb-posix.c (vdb_install_signal_handler): Correct memset.
2006-03-26 Marcus Crestani <crestani(a)xemacs.org>
* alloc.c (malloc_warning): Move function into scope of
MALLOC_END, add MALLOC_END.
* alloc.c (memory_full): Add memory shortage indication, adjust
error messages.
* mc-alloc.c: Add memory_shortage.
* mc-alloc.c (expand_heap): If memory is short, allocate only the
needed pages, not more.
* mc-alloc.h: Add memory_shortage.
2006-03-26 Marcus Crestani <crestani(a)xemacs.org>
* alloc.c (make_uninit_string): Use set_lispstringp_direct.
* lisp.h (set_lispstringp_direct): New.
2006-03-21 Marcus Crestani <crestani(a)xemacs.org>
* mc-alloc.c (visit_all_used_page_headers):
* mc-alloc.c (finalize_page_for_disksave):
* mc-alloc.c (mc_finalize_for_disksave):
* mc-alloc.c (sweep_page):
* mc-alloc.c (mc_sweep):
* mc-alloc.c (protect_heap_page):
* mc-alloc.c (protect_heap_pages):
* mc-alloc.c (unprotect_heap_page):
* mc-alloc.c (unprotect_heap_pages):
* mc-alloc.h: Return number of pages processed.
* vdb.c (vdb_start_dirty_bits_recording): Adjust size of
page_fault_table to its upper bound (= number of pages that
contain BLACK objects) in advance, to avoid malloc in the signal
handler.
2006-03-24 Stephen J. Turnbull <stephen(a)xemacs.org>
* file-coding.c (decode-coding-region, encode-coding-region):
Convert to interactive commands, and adjust docstrings.
2006-03-21 Malcolm Purvis <malcolmp(a)xemacs.org>
* regex.c: Bump INIT_FAILURE_ALLOC and re_max_failures to the
current values found in GNU Emacs.
2006-03-20 Marcus Crestani <crestani(a)xemacs.org>
* dynarr.c (Dynarr_realloc): Malloc correct size.
* lisp.h: Dynamic array cleanup, remove duplicate code.
2006-03-17 Stephen J. Turnbull <stephen(a)xemacs.org>
* objects-x.c (x_font_instance_truename):
Eliminate bogus pointer to nowhere.
2006-03-09 Jerry James <james(a)xemacs.org>
* profile.h (RETURN_UNGCPRO_EXIT_PROFILING): Add missing do.
2006-03-02 Marcus Crestani <crestani(a)xemacs.org>
* gc.c (show_gc_cursor_and_message): New.
* gc.c (remove_gc_cursor_and_message): New.
* gc.c (gc_prepare): Move mouse pointer code to
show_gc_cursor_and_message.
* gc.c (gc_finish): Move mouse pointer code to
remove_gc_cursor_and_message.
* gc.c (gc): Call show/remove_gc_cursor_and_message.
* gc.c (garbage_collect_1): Call
show/remove_gc_cursor_and_message.
2006-02-22 Marcus Crestani <crestani(a)xemacs.org>
Asynchronous finalization:
* Makefile.in.in: Remove mc-alloc, replace with newgc.
* alloc.c (alloc_lrecord): Add object that has a finalizer
to Vall_finalizable_objs.
* alloc.c (noseeum_alloc_lrecord): Add object that has a finalizer
to Vall_finalizable_objs.
* alloc.c (alloc_lrecord_array): Add object that has a finalizer
to Vall_finalizable_objs.
* alloc.c (free_lrecord): Disable manual free.
* dumper.c (pdump_register_object): Objects with finalizers cannot
be dumped.
* eval.c (Ffuncall): Add call to run_finalizers.
* gc.c (finalize_elem): New.
* gc.c (add_finalizable_object): New.
* gc.c (register_for_finalization): New.
* gc.c (gc_finalize): Call register_for_finalization.
* gc.c (gc_1): Move kkcc_gc_stack_free after finalization.
* gc.c (common_init_gc_early): Add asynchronous finalization
variables.
* gc.c (init_gc_early): Add asynchronous finalization variables.
* gc.c (vars_of_gc): Add asynchronous finalization variables.
* gc.h: Add asynchronous finalization prototypes.
* mc-alloc.c (finalize_heap): Remove.
* mc-alloc.c (mc_free): Disable manual free.
* elhash.c (finalize_hash_table): Remove unneeded finalizer for
NEW_GC
* extents.c (finalize_extent_info): Remove unneeded finalizer for
NEW_GC.
* file-coding.c (finalize_coding_system): Remove unneeded
finalizer for NEW_GC.
* gui.c (finalize_gui_item): Remove unneeded finalizer.
* specifier.c (finalize_specifier): Remove unneeded finalizer for
NEW_GC.
Merge #ifdef MC_ALLOC into #ifdef NEW_GC, remove no longer needed
MC_ALLOC specific code in all files:
* alloc.c:
* buffer.c:
* bytecode.c:
* bytecode.h:
* config.h.in:
* console-stream.c:
* console.c:
* dumper.c:
* dumper.h:
* elhash.c:
* emacs.c:
* event-msw.c:
* event-stream.c:
* extents.c:
* extents.c:
* faces.h:
* file-coding.c:
* gc.c:
* glyphs.h:
* lisp.h:
* lrecord.h:
* lstream.c:
* marker.c:
* mc-alloc.c:
* mc-alloc.h:
* opaque.c:
* print.c:
* ralloc.c:
* specifier.c:
* symbols.c:
* symeval.h:
* symsinit.h:
* tests.c:
* xemacs.def.in.in:
-------- ChangeLog Entries from tests/ChangeLog --------
2006-03-31 Stephen J. Turnbull <stephen(a)xemacs.org>
* XEmacs 21.5.26 "endive" is released.
--
University of Tsukuba Graduate School of Systems and Information Engineering
http://turnbull.sk.tsukuba.ac.jp Tennodai 1-1-1 Tsukuba 305-8573 JAPAN
Ask not how you can "do" free software business;
ask what your business can "do for" free software.