XEmacs

Last updated
XEmacs
Original author(s) Lucid Inc.
Developer(s) XEmacs community
Final release
21.4.22 [1]   OOjs UI icon edit-ltr-progressive.svg / 30 January 2009;14 years ago (30 January 2009)
Preview release
21.5.34 [2]   OOjs UI icon edit-ltr-progressive.svg / 23 June 2013;9 years ago (23 June 2013)
Operating system Cross-platform to GNU, Linux, Windows, macOS, [3] BSDs and more
Type Text editor
License GPL-2.0-or-later
Website www.xemacs.org

XEmacs is a graphical- and console-based text editor which runs on almost any Unix-like operating system as well as Microsoft Windows. XEmacs is a fork, based on a version of GNU Emacs from the late 1980s. Any user can download, use, and modify XEmacs as free software available under the GNU General Public License version 2 or any later version.

Contents

History

Between 1987 and 1993 significant delays occurred in bringing out a new version of GNU Emacs (presumed to be version 19). [4] In the late 1980s, Richard P. Gabriel's Lucid Inc. faced a requirement to ship Emacs to support the Energize C++ IDE. So Lucid recruited a team to improve and extend the code, [5] with the intention that their new version, released in 1991, would form the basis of GNU Emacs version 19. However, they did not have time to wait for their changes to be accepted by the Free Software Foundation (FSF). [6] Lucid continued developing and maintaining their version of Emacs, while the FSF released version 19 of GNU Emacs a year later, while merging some of the code and adapting some other parts. [7]

When Lucid went out of business in 1994, other developers picked up the code. [8] Companies such as Sun Microsystems wanted to carry on shipping Lucid Emacs, but using the trademark had become legally ambiguous because no one knew who would eventually control the trademark "Lucid". Accordingly, the "X" in XEmacs represents a compromise among the parties involved in developing XEmacs. [9]

The "X" in XEmacs is thus not related to the X Window System. After initially only supporting X11, [10] XEmacs supported text-based terminals and windowing systems other than X11. Installers can compile both XEmacs and GNU Emacs with and without X support. For a period of time XEmacs even had some terminal-specific features, such as coloring, that GNU Emacs lacked.

The software community generally refers to GNU Emacs, XEmacs (and a number of other similar editors) collectively or individually as emacsen (by analogy with oxen) or as emacs, since they both take their inspiration from the original TECO Emacs.

Features

XEmacs has commands to manipulate words and paragraphs (deleting them, moving them, moving through them, and so forth), syntax highlighting for making source code easier to read, and "keyboard macros" for performing arbitrary batches of editing commands defined by the user.

XEmacs has comprehensive online help, as well as five manuals available from the XEmacs website. XEmacs supports many human languages as well as editing-modes for many programming and markup-languages. XEmacs runs on many operating systems including Unix/Linux, BSDs and Mac OS X. Running on Mac OS requires X11; while development has started on a native Carbon version. Two versions of XEmacs for the Microsoft Windows environment exist: a native installer and a Cygwin package.

Users can reconfigure almost all of the functionality in the editor by using the Emacs Lisp language. Changes to the Lisp code do not require the user to restart or recompile the editor. Programmers have made available many pre-written Lisp extensions.

Many packages exist to extend and supplement the capabilities of XEmacs. Users can either download them piecemeal through XEmacs' package manager or apply them in bulk using the xemacs-sumo package or "sumo tarballs". [11] The package manager in XEmacs predates the ELPA package system used by GNU Emacs by almost a decade and is incompatible with it. Since XEmacs 21.1 functionality has been moved out of XEmacs core and made available separately as packages. This allows users to exclude packages they have no need for. XEmacs had a package manager for over a decade before GNU Emacs developed one, but XEmacs must be restarted before new packages are loaded.

Development

From the project's beginnings, the developers of XEmacs aimed to have a frequent release-cycle. [12] They also aimed for more openness to experimentation, and XEmacs often offers new features before other emacsen—pioneering (for example) inline images, variable fonts and terminal coloring. Over the years, the developers have extensively rewritten the code in order to improve consistency and to follow modern programming conventions stressing data abstraction. XEmacs has a packaging system for independently maintained Lisp packages. The latest version has GTK+ support [13] and a native Carbon port for Mac OS X. [14]

XEmacs has always had a very open development-environment, including anonymous CVS, later Mercurial access and publicly accessible development mailing-lists. XEmacs comes with a 500+ page internals manual (Wing, et al., 2004). [15]

Support for Unicode has become a problem for XEmacs. 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 lack completeness, and development seems stalled as of September 2005. [16]

XEmacs development features three branches: stable, gamma, and beta, [12] with beta getting new features first, but potentially having less testing, stability and security. The developers released version 20.0 on 9 February 1997, and version 21.0 on 12 July 1998. As of January 2009, the stable branch had reached version 21.4.22 and the beta branch version 21.5.28. No gamma releases exist as of 2007. With the release of XEmacs 21.4.0, version numbers follow a scheme whereby an odd second number signals a development-version, and an even second number indicates a stable release.

XEmacs and GNU Emacs

Several of XEmacs's principal developers have published accounts of the split between XEmacs and GNU Emacs, for example, Stephen Turnbull's summary [17] of the arguments from both sides. One of the main disagreements involves different views of copyright assignment. The FSF sees copyright assignment to the FSF as necessary to allow it to defend the code against GPL violations, [18] while the XEmacs developers have argued that the lack of copyright assignment has allowed major companies to get involved, as sometimes companies can license their code but due to a cautious attitude concerning fiduciary duties to shareholders, companies may have trouble in getting permission to assign away code completely.[ citation needed ]

The Free Software Foundation holds copyright of much of the XEmacs code because of prior copyright assignment during merge attempts and cross-development. [19] Whether a piece of new XEmacs code enters GNU Emacs often depends on the willingness of that individual contributor to assign the code to the FSF. New features in either editor usually show up in the other sooner or later. Furthermore, many developers contribute to both projects.

The XEmacs project has a policy of maintaining compatibility with the GNU Emacs API. For example, it provides a compatibility-layer implementing overlays via the native extent functionality. "XEmacs developers strive to keep their code compatible with GNU Emacs, especially on the Lisp level." [20]

As XEmacs development has slowed, XEmacs has incorporated much code from GNU Emacs, [21] while GNU Emacs has implemented many formerly XEmacs-only features. This has led some users to proclaim XEmacs' death, advocating that its developers contribute to GNU Emacs instead. [22]

Many major packages, such as Gnus and Dired, were formerly developed to work with both, [23] although the main developer of Gnus has announced his intention to move the Gnus tree into the main Emacs trunk and remove XEmacs compatibility code, citing other packages similarly dropping XEmacs support. [24] [25]

In December 2015 project maintainer Stephen J. Turnbull posted a message to an XEmacs development list stating the project was "at a crossroads" in terms of future compatibility with GNU Emacs due to developer attrition and GNU Emacs' progress. Several options were laid out for future directions including ending development entirely, creating a new fork from the current version of GNU Emacs, or putting the project in maintenance mode in case someone wants to restart development in the future. [26] This last option was the direction decided, with commitments from individual contributors to provide minimal support for the web site and development resources.

SXEmacs

Screenshot of SXEmacs 22.1.10 SXEmacs-screenshot.png
Screenshot of SXEmacs 22.1.10

The SXEmacs project forked XEmacs 21.4 and continued development for over a decade, issuing new releases as late as 2020.

See also

Related Research Articles

<span class="mw-page-title-main">Emacs Lisp</span> Dialect of Lisp used as an Emacs scripting language

Emacs Lisp is a dialect of the Lisp programming language used as a scripting language by Emacs. It is used for implementing most of the editing functionality built into Emacs, the remainder being written in C, as is the Lisp interpreter. Emacs Lisp is also termed Elisp, although there is also an older, unrelated Lisp dialect with that name.

<span class="mw-page-title-main">Free software</span> Software licensed to preserve user freedoms

Free software or libre software is computer software distributed under terms that allow users to run the software for any purpose as well as to study, change, and distribute it and any adapted versions. Free software is a matter of liberty, not price; all users are legally free to do what they want with their copies of a free software regardless of how much is paid to obtain the program. Computer programs are deemed "free" if they give end-users ultimate control over the software and, subsequently, over their devices.

<span class="mw-page-title-main">GNU</span> Free software collection

GNU is an extensive collection of free software, which can be used as an operating system or can be used in parts with other operating systems. The use of the completed GNU tools led to the family of operating systems popularly known as Linux. Most of GNU is licensed under the GNU Project's own General Public License (GPL).

An integrated development environment (IDE) is a software application that provides comprehensive facilities for software development. An IDE normally consists of at least a source-code editor, build automation tools, and a debugger. Some IDEs, such as NetBeans and Eclipse, contain the necessary compiler, interpreter, or both; others, such as SharpDevelop and Lazarus, do not.

<span class="mw-page-title-main">Open-source license</span> Software license allowing source code to be used, modified, and shared

Open-source licenses facilitate free and open-source software (FOSS) development. Intellectual property (IP) laws restrict the modification and sharing of creative works. Free and open-source software licenses use these existing legal structures for the inverse purpose of granting freedoms that promote sharing and collaboration. They grant the recipient the rights to use the software, examine the source code, modify it, and distribute the modifications. These licenses target computer software where source code can be necessary to create modifications. They also cover situations where there is no difference between the source code and the executable program distributed to end users. Open-source licenses can cover hardware, infrastructure, drinks, books, and music.

<span class="mw-page-title-main">Gnus</span>

Gnus, or Gnus Network User Services, is a message reader which is part of GNU Emacs. It supports reading and composing both e-mail and news and can also act as an RSS reader, web processor, and directory browser for both local and remote filesystems.

<span class="mw-page-title-main">GNU Project</span> Free software project

The GNU Project is a free software, mass collaboration project announced by Richard Stallman on September 27, 1983. Its goal is to give computer users freedom and control in their use of their computers and computing devices by collaboratively developing and publishing software that gives everyone the rights to freely run the software, copy and distribute it, study it, and modify it. GNU software grants these rights in its license.

In software engineering, a project fork happens when developers take a copy of source code from one software package and start independent development on it, creating a distinct and separate piece of software. The term often implies not merely a development branch, but also a split in the developer community; as such, it is a form of schism. Grounds for forking are varying user preferences and stagnated or discontinued development of the original software.

Lucid Incorporated was a Menlo Park, California-based computer software development company. Founded by Richard P. Gabriel in 1984, it went bankrupt in 1994.

The MULtilingual Enhancement (MULE) is computer software which adds extra written language characters to the GNU Emacs text editor and programming environment.

<span class="mw-page-title-main">Richard Stallman</span> American free software activist and GNU Project founder (born 1953)

Richard Matthew Stallman, also known by his initials, rms, is an American free software movement activist and programmer. He campaigns for software to be distributed in such a manner that its users have the freedom to use, study, distribute, and modify that software. Software that ensures these freedoms is termed free software. Stallman launched the GNU Project, founded the Free Software Foundation (FSF) in October 1985, developed the GNU Compiler Collection and GNU Emacs, and wrote all versions of the GNU General Public License.

Hemlock is a free Emacs text editor for most POSIX-compliant Unix systems. It follows the tradition of the Lisp Machine editor ZWEI and the ITS/TOPS-20 implementation of Emacs, but differs from XEmacs or GNU Emacs, the most popular Emacs variants, in that it is written in Common Lisp rather than Emacs Lisp and C—although it borrows features from the later editors. Hemlock was originally written by the CMU Spice project in Spice Lisp for the PERQ computer.

GNATS is the GNU project's issue-tracking software.

<span class="mw-page-title-main">GNU Emacs</span> GNU version of the Emacs text editor

GNU Emacs is a free software text editor. It was created by GNU Project founder Richard Stallman, based on the Emacs editor developed for Unix operating systems. GNU Emacs has been a central component of the GNU project and a flagship project of the free software movement. Its name has occasionally been shortened to GNUMACS. The tag line for GNU Emacs is "the extensible self-documenting text editor".

<span class="mw-page-title-main">Free-software license</span> License allowing software modification and redistribution

A free-software license is a notice that grants the recipient of a piece of software extensive rights to modify and redistribute that software. These actions are usually prohibited by copyright law, but the rights-holder of a piece of software can remove these restrictions by accompanying the software with a software license which grants the recipient these rights. Software using such a license is free software as conferred by the copyright holder. Free-software licenses are applied to software in source code and also binary object-code form, as the copyright law recognizes both forms.

<span class="mw-page-title-main">Emacs</span> Family of text editors

Emacs, originally named EMACS, is a family of text editors that are characterized by their extensibility. The manual for the most widely used variant, GNU Emacs, describes it as "the extensible, customizable, self-documenting, real-time display editor". Development of the first Emacs began in the mid-1970s, and work on its direct descendant, GNU Emacs, continues actively; the latest version is 28.2, released in September 2022.

<span class="mw-page-title-main">Copyleft</span> Practice of mandating free use in all derivatives of a work

Copyleft is the legal technique of granting certain freedoms over copies of copyrighted works with the requirement that the same rights be preserved in derivative works. In this sense, freedoms refers to the use of the work for any purpose, and the ability to modify, copy, share, and redistribute the work, with or without a fee. Licenses which implement copyleft can be used to maintain copyright conditions for works ranging from computer software, to documents, art, scientific discoveries and even certain patents.

<span class="mw-page-title-main">GNU General Public License</span> Series of free software licenses

The GNU General Public License is a series of widely used free software licenses that guarantee end users the four freedoms to run, study, share, and modify the software. The license was the first copyleft for general use and was originally written by the founder of the Free Software Foundation (FSF), Richard Stallman, for the GNU Project. The license grants the recipients of a computer program the rights of the Free Software Definition. These GPL series are all copyleft licenses, which means that any derivative work must be distributed under the same or equivalent license terms. It is more restrictive than the Lesser General Public License and even further distinct from the more widely used permissive software licenses BSD, MIT, and Apache.

<span class="mw-page-title-main">Magit</span> Emacs interface for the Git version control system

Magit is an interface to the Git version control system (a Git Client), implemented as a GNU Emacs package written in Elisp. It is made available through the MELPA package repository, on which it is the most-downloaded non-library package, with over 3.7 million downloads as of February 2023.

References

  1. Error: Unable to display the reference properly. See the documentation for details.
  2. Error: Unable to display the reference properly. See the documentation for details.
  3. "XEmacs for Darwin / MacOS X".
  4. "Emacs Timeline". Jwz.org. Retrieved 1 December 2014.
  5. "Command Line Warriors - History of Emacs and XEmacs". commandline.org.uk. Archived from the original on November 22, 2010.
  6. "Xemacs from FOLDOC". Foldoc.org. Retrieved 1 December 2014.
  7. Richard Stallman. "The Origin of XEmacs". Stallman.org. Retrieved 1 December 2014.
  8. john s jacobs anderson, stealing content the FAQ. "XEmacs: History of XEmacs". Xemacs.org. Archived from the original on December 18, 2014. Retrieved 1 December 2014.
  9. "XEmacs Internals Manual: A History of Emacs". Xemacs.org. Retrieved 1 December 2014.
  10. "Lucid Emacs was released 30 years ago". www.jwz.org. 2022-08-20. Retrieved 2022-08-25.
  11. john s jacobs anderson using old content with no listed author. "XEmacs: Quickstart Package Guide". Xemacs.org. Retrieved 1 December 2014.{{cite web}}: |author= has generic name (help)
  12. 1 2 "XEmacs: Release Notice Archive". Xemacs.org. Retrieved 1 December 2014.
  13. Stephen J. Turnbull. "XEmacs: XEmacs on the GTK platform". Us.xemacs.org. Archived from the original on 4 March 2016. Retrieved 1 December 2014.
  14. "Home". Archived from the original on 2007-09-14. Retrieved 2009-06-22.
  15. "XEmacs Internals Manual: Table of Contents".
  16. "Mule-on-Windows, full Unicode support XEmacs". Calypso.tux.org. Archived from the original on 4 September 2015. Retrieved 1 December 2014.
  17. "XEmacs: XEmacs vs. GNU Emacs". Xemacs.org. Retrieved 1 December 2014.
  18. "Why the FSF gets copyright assignments from contributors - GNU Project - Free Software Foundation". Fsf.org. Retrieved 1 December 2014.
  19. "Xemacs vs GNU Emacs". XEmacs is GNU software because it's a modified version of a GNU program. And it is GNU software because the FSF is the copyright holder for most of it... XEmacs has no choice, because much of its code is copyrighted by the Free Software Foundation, and is only available to XEmacs under the GPL.
  20. "Frequently asked questions about XEmacs: Introduction". Xemacs.org. Retrieved 1 December 2014.
  21. "XEmacs 21.5.33 release notes". Xemacs.org. Archived from the original on 4 March 2016. Retrieved 1 December 2014.
  22. "XEmacs is Dead. Long Live XEmacs!". Steve-yegge.blogspot.com. Archived from the original on 1 May 2008. Retrieved 1 December 2014.
  23. "A Comparison of Xemacs and Gnu Emacs". Luckily many of the package maintainers are attempting to make their modules work with both Xemacs and Gnu Emacs, though the functionality may not be identical.
  24. "Moving Gnus development to Emacs?".
  25. "It's About Ethics in Gnus Development". January 2016.
  26. "XEmacs at a crossroads". Archived from the original on 2016-10-14. For the past decade, work on XEmacs has continued at a low level, and mostly not visible in user-level features. In the meantime, GNU Emacs has implemented almost all XEmacs features...At the same time, a number of features that XEmacs lacks, and would require substantial effort to port, have been implemented...the developers who have been the primary contributors of code currently have personal and professional commitments that prevent them from devoting enough time to XEmacs to implement the large features necessary for full compatibility with GNU Emacs for the foreseeable future...several developers who have contributed heavily in the past have acknowledged that they *won't* be doing so for the foreseeable future. It's only fair that we let you, our users and supporters, know about that.