The History of XEmacs
An alternative to GNU Emacs, XEmacs qwanturank was originally based on an early alpha version of FSF's version 19, and has diverged quite a bit since then. XEmacs was known as Lucid Emacs through version 19.10. Almost all features of GNU Emacs are supported in XEmacs. The maintainers of XEmacs actively track changes to GNU Emacs while also working to add new features.
More information about the current and past developers of XEmacs, as well as some information about the history of XEmacs development is available within XEmacs by selecting 'About XEmacs...' from the Help menu. Detailed information is available in the NEWS files from each release.
Who wrote XEmacs?
XEmacs is the result of the time and effort of many people, and the active developers have changed over time. There are two major components of the XEmacs effort -- writing the code itself and providing all the support work (testing the code, releasing beta and final versions, handling patches, reading bug reports, maintaining the web site, managing the mailing lists, etc. etc.). Neither component would work without the other.
For a list of all XEmacs contributors, see XEmacs Contributors.
The primary code contributor over the years has been Ben Wing (active since late 1992). Between 1991 and 1995, large amounts of coding was contributed by Jamie Zawinski and Chuck Thompson. Many other people have authored major subsystems or otherwise contributed large amounts of code, including Andy Piper, Hrvoje Niksic, Jerry James, Jonathan Harris, Kyle Jones, Martin Buchholz, Michael Sperber, Olivier Galibert, Richard Mlynarik, Stig, William M. Perry and plenty of others.
Primary XEmacs-specific subsystems and their authors:
- Conversion from 26-bit to 28-bit pointers and integers, lrecords, lcrecords: Richard Mlynarik, 1994
- Conversion to 32-bit pointers and 31-bit integers: Kyle Jones, Martin Buchholz
- Portable dumper, object descriptions: Olivier Galibert
- KKCC (new garbage collector), ephemerons, weak boxes: Michael Sperber and students
- Random object work (object equal and hash methods, weak lists, lcrecord lists, bit vectors, dynarr, blocktype, opaque, string resizing): Ben Wing
- Profiling: Ben Wing
- Some byte-compilation and hash-table improvements: Martin Buchholz
- Bignum: Jerry James
- mostly Ben Wing; many ideas for future work, Stephen Turnbull
- Basic event/event-stream implementation: Jamie Zawinski
- Most event work since 1994: Ben Wing
- Asynchronous stuff (async timeouts, signals, quit-checking): Ben Wing
- Process method abstraction, Windows process work: Kirill 'Big K' Katsnelson
- Misc-user events, async timeouts, most quit-checking and signal code, most other work since 1994: Ben Wing
- Lstreams: Ben Wing
- Redisplay mechanism: implementation, Chuck Thompson; additional work, lots of people
- Glyphs: mostly Ben Wing
- Specifiers: Ben Wing
- Extents: initial implementation, someone at Lucid; rewrite, 1994, Ben Wing
- Widgets: Andy Piper
- JPEG/PNG/TIFF image converters: Ben Wing, William M. Perry, Jan Vroonhof, others (see comment in `glyphs-eimage.c')
- Menus: Jamie Zawinski, someone at Lucid (Lucid menus)
- Scrollbars: Chuck Thompson, ??? (Lucid scrollbar)
- Multi-device/device-independence work (console/device/etc methods): Ben Wing, prototype by chuck thompson
- Faces: first implementation, Jamie Zawinski; second, chuck; third, Ben Wing
- Fonts/colors: first implementation, Jamie Zawinski; further work, Ben Wing
- Toolbars: implementation, chuck, much interface work, Ben Wing
- Gutters, tabs: andy piper
- X Windows: Jamie Zawinski, Ben Wing, others
- GTK: William M. Perry, Malcolm Purvis
- MS Windows: initial implementation, Jonathan Harris; some more work, Andy Piper, Ben Wing
- TTY: Chuck Thompson, Ben Wing
- Cygwin: Andy Piper
- Configure: initial porting from fsf, Chuck Thompson; conversion to autoconf 2, much rewriting, Martin Buchholz
- Most initialization-related code: Ben Wing
- Internals manual, much of Lisp manual: Ben Wing
- FSF synching: initial sync with FSF 19, Richard Mlynarik, further work, Ben Wing
Currently, support duties are handled by many different people.
Release managers have been
- Stephen Turnbull (April 2001 - January 2003, March 2004 - present, 21.2.47 - 21.4.12, 21.5.2 - 21.5.7, 21.5.17 - present)
- Vin Shelton (May 2003 - present, 21.4.13 - present)
- Steve Youngs (July 2002 - September 2003, 21.5.8 - 21.5.16)
- Martin Buchholz (December 1998, November 1999 - May 2001, 21.2.7 - 21.2.8, 21.2.21 - 21.2.46, 21.5.0 - 21.5.1)
- Steve Baur (early 1997 - December 1998, February 1999 - November 1999, 19.15 - 21.2.5, 21.2.9 - 21.2.20)
- Andy Piper (December 1998, 21.2.6)
- Chuck Thompson (June 1994 - September 1996, 19.11 - 19.14)
- Jamie Zawinski (April 1991 - June 1994, 19.0 - 19.10)
- The recent overlapping dates are intentional, since two or three trees are maintained simultaneously at any point.
Other major support work:
- Adrian Aichner wrote and maintains the web site.
- Stephen Turnbull currently produces the beta releases and has attempted to be the "face" of XEmacs on the newsgroups and mailing lists.
- Steve Youngs, Ville Skytt�, and now Norbert Koch have taken turns maintaining the packages.
- Vin Shelton maintains the stable releases.