XEmacs

From Wikipedia, the free encyclopedia

XEmacs

XEmacs
Developer: XEmacs community
Latest release: 21.4.20 / December 10, 2006
OS: Cross-platform
Use: Text editor
License: GNU General Public License
Website: XEmacs Website
Emacs
edit

XEmacs is a text editor which is forked from the GNU Emacs text editor. Its signature feature is good GUI support. XEmacs runs on almost any Unix-like operating system (inside X or in a text terminal), as well as on Microsoft Windows. It also runs on Mac OS X with X11.app; a native Carbon version is in alpha testing.

Like GNU Emacs, XEmacs is free software and available under the GNU General Public License. GNU Emacs, XEmacs and a number of other similar editors are generally referred to collectively or individually as emacsen and emacs, since they are all inspired by the original TECO Emacs.

Contents

XEmacs was created in 1991 as Lucid Emacs by Richard P. Gabriel's Lucid Inc. to support their proprietary Energize C++ IDE. Lucid forked the code, developing and maintaining their own version of Emacs, because they were dissatisfied with the maintenance of the original Emacs, and delays in the release of the next GNU Emacs, version 19. Being released earlier, and having more features, meant that Lucid's version of Emacs was initially very popular. It also supported Microsoft Windows natively before GNU Emacs, helping its popularity.

When Lucid went out of business in 1994, the code was picked up by other developers. Companies such as SUN wanted to carry on shipping Lucid Emacs; however, using the trademark was legally ambiguous because no one knew who would eventually control the trademark 'Lucid'. The "X" in XEmacs is either derived from an early focus on support for the X Window system as the graphical user interface or a "less than favorable" name resulting from compromise among the parties developing XEmacs.[1]

XEmacs has always supported text terminals and windowing systems other than X11. Versions of Lucid Emacs did not support text terminals.[2] XEmacs and GNU Emacs can be compiled with and without X support. For a period of time XEmacs even had some terminal features, such as coloring, that GNU Emacs lacked.

From the beginning, XEmacs aimed to have a frequent release cycle, currently 2-3 releases per year[3], and it also aimed to be more open to experimentation, and is often the first Emacs to offer new features, such as inline images, variable fonts and terminal coloring. Over the years, the code has been extensively rewritten to improve consistency and follow modern programming conventions stressing data abstraction. XEmacs has a unique packaging system for independently maintained Lisp packages. The latest version has GTK+ support[4] and a native Carbon port for Mac OS X [5].

XEmacs has always had a very open development environment, including anonymous CVS access and publicly accessible development mailing lists and XEmacs comes with a 140-page internals manual (Wing and Buchholz, 1997).

XEmacs' project policy is to maintain compatibility with the GNU Emacs API. For example, it provides a compatibility layer implementing overlays via the native extent functionality. "the XEmacs developers strive to keep their code compatible with GNU Emacs, especially on the Lisp level." [6]

One problem with XEmacs has been Unicode support. As of 2005, the released version depends on the unmaintained package called Mule-UCS to support Unicode, while the development branch of XEmacs has had robust native support for external Unicode encodings since May 2002, but the internal Mule character sets are incomplete, and development seems stalled as of September 2005 [7].

XEmacs development is split between three branches: stable, gamma, and beta[8], with beta being the first to get new features, but being the least tested, stable and secure. Version 20.0 was released on 9 February 1997, and 21.0 on 12 July 1998. As of December 2006, the current stable version is 21.4.20 and the latest release in the beta branch is 21.5.27. There are currently no gamma releases. Beginning with the release of XEmacs 21.4.0, XEmacs version numbers follow a scheme similar to that of Linux, with an odd second number signalling a development version, and an even second number for stable releases.

SXEmacs [9] is a fork of XEmacs 21.4.16 led by former XEmacs developer Steve Youngs. It is currently in beta.

The schism between GNU Emacs and XEmacs is one of the most well-known examples of a code fork. Several of XEmacs's principal developers have published accounts of the split: Ben Wing's critiques[10] Stallman's technical choices and unwillingness to compromise, Jamie Zawinski's email record of the split containing correspondence from participants[11], Stephen Turnbull's summary[12] of both sides, and Richard P. Gabriel reconsiders and implies that Stallman is "insane"[1]. Stallman describes the XEmacs team as being uncooperative.[13].

Both programs are licensed under the GNU GPL. The copyright of some of the XEmacs code is even held by the Free Software Foundation because of prior copyright assignment during merge attempts and repeated copying from GNU Emacs into XEmacs. Code could in principle be freely exchanged between the two projects. However, the GNU Emacs project has a policy of including only contributions whose copyright has been assigned to the FSF. The FSF asserts that copyright assignment is necessary to allow it to defend the code against GPL violations ("Why the FSF gets copyright assignments from contributors"). The XEmacs project, which does not share the FSF's interpretation, does not and has never required copyright assignment, and has in the past received much assistance from various software corporations who also agree. The XEmacs project has also freely accepted patches from various contributors over the years. The result is that much of the code in XEmacs has an unknown or corporate copyright, and copyright assignment of all the code is not possible in practice. The FSF's strict insistence on copyright assignment has, in addition to numerous other issues, tended to scuttle the various merge attempts to date.

However, new features in either editor usually show up in the other sooner or later. Furthermore, many developers contribute to both projects; in particular, many major Lisp subsystems, such as Gnus and Dired, are developed to work with both.

Advanced Search
Included Web Search Engines


Safe Search

close

Top Matching Results

Occasionally Search.com will highlight specialized results that are based on the context of your query. Examples of specialized results include specific links to news, images, or video.

Top Matching Results may highlight information from other Search.com pages, content from the CNET Network of sites, or third party content. The listings are based purely on relevance. Search.com does not receive payment for listings in this section but our partners that provide this data may get paid for listing these products.

Sponsored Links

This section contains paid listings which have been purchased by companies that want to have their sites appear for specific search terms and related content. These listings are administered, sorted and maintained by a third party and are not endorsed by Search.com.

Search Results

Search.com sends your search query to several search engines at one time and integrates the results into one list which has been sorted by relevance using Search.com's proprietary algorithm. You can customize the list of search engines included in your metasearch from the preferences.

The search engines that are used in your metasearch may allow companies to pay to have their Web sites included within the results. To view the Paid Inclusion policy for a specific search engine, please visit their Web site. Search.com does not accept payment or share revenue with any search engine partner for listings in this section.