XEmacs
Encyclopedia
XEmacs is a graphical
Graphical user interface
In computing, a graphical user interface is a type of user interface that allows users to interact with electronic devices with images rather than text commands. GUIs can be used in computers, hand-held devices such as MP3 players, portable media players or gaming devices, household appliances and...

- and console-based text editor
Text editor
A text editor is a type of program used for editing plain text files.Text editors are often provided with operating systems or software development packages, and can be used to change configuration files and programming language source code....

 which runs on almost any Unix-like
Unix-like
A Unix-like operating system is one that behaves in a manner similar to a Unix system, while not necessarily conforming to or being certified to any version of the Single UNIX Specification....

 operating system
Operating system
An operating system is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer system...

 as well as Microsoft Windows
Microsoft Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...

. 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
Free software
Free software, software libre or libre software is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with restrictions that only ensure that further recipients can also do...

 available under the GNU General Public License
GNU General Public License
The GNU General Public License is the most widely used free software license, originally written by Richard Stallman for the GNU Project....

 version 2 or any later version.

History

Between 1987 and 1993 significant delays occurred in bringing out a new version of GNU Emacs.
In the late 1980s, Richard P. Gabriel's Lucid Inc.
Lucid Inc.
Lucid Incorporated was a software development company founded by Richard P. Gabriel in 1984 which went bankrupt in 1994.-Beginnings:Gabriel had been working for Lawrence Livermore National Labs on a computer hardware project called "S1", the first incarnation of which used a CISC processor...

 faced a requirement to ship Emacs to support the Energize C++
C++
C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...

 IDE
Integrated development environment
An integrated development environment is a software application that provides comprehensive facilities to computer programmers for software development...

. So Lucid recruited a team to improve and extend the code,
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
Free Software Foundation
The Free Software Foundation is a non-profit corporation founded by Richard Stallman on 4 October 1985 to support the free software movement, a copyleft-based movement which aims to promote the universal freedom to create, distribute and modify computer software...

 (FSF).
Lucid continued developing and maintaining their version of Emacs, while the FSF released version 19 of Emacs a year later, while merging some of the code and adapting some other parts.

When Lucid went out of business in 1994, other developers picked up the code.
Companies such as Sun Microsystems
Sun Microsystems
Sun Microsystems, Inc. was a company that sold :computers, computer components, :computer software, and :information technology services. Sun was founded on February 24, 1982...

 wanted to carry on shipping Lucid Emacs, however, 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.

The "X" in XEmacs is thus not related to the X Window System
X Window System
The X window system is a computer software system and network protocol that provides a basis for graphical user interfaces and rich input device capability for networked computers...

. XEmacs has always 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
Syntax highlighting
Syntax highlighting is a feature of some text editors that display text—especially source code—in different colors and fonts according to the category of terms. This feature eases writing in a structured language such as a programming language or a markup language as both structures and...

, 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 boxen) or as emacs, respectively, since they both take their inspiration from the original TECO
Text Editor and Corrector
TECO is a text editor originally developed at the Massachusetts Institute of Technology in the 1960s, after which it was modified by 'just about everybody'...

 Emacs.

Features

XEmacs text-editing features commands to manipulate words and paragraph
Paragraph
A paragraph is a self-contained unit of a discourse in writing dealing with a particular point or idea. A paragraph consists of one or more sentences. The start of a paragraph is indicated by beginning on a new line. Sometimes the first line is indented...

s (deleting them, moving them, moving through them, and so forth), syntax highlighting
Syntax highlighting
Syntax highlighting is a feature of some text editors that display text—especially source code—in different colors and fonts according to the category of terms. This feature eases writing in a structured language such as a programming language or a markup language as both structures and...

 for making source code
Source code
In computer science, source code is text written using the format and syntax of the programming language that it is being written in. Such a language is specially designed to facilitate the work of computer programmers, who specify the actions to be performed by a computer mostly by writing source...

 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
Language
Language may refer either to the specifically human capacity for acquiring and using complex systems of communication, or to a specific instance of such a system of complex communication...

 as well as editing-modes for many programming and markup-languages. XEmacs runs on many operating systems including Unix
Unix
Unix is a multitasking, multi-user computer operating system originally developed in 1969 by a group of AT&T employees at Bell Labs, including Ken Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy, and Joe Ossanna...

/Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...

, BSDs
Berkeley Software Distribution
Berkeley Software Distribution is a Unix operating system derivative developed and distributed by the Computer Systems Research Group of the University of California, Berkeley, from 1977 to 1995...

 and Mac OS X
Mac OS X
Mac OS X is a series of Unix-based operating systems and graphical user interfaces developed, marketed, and sold by Apple Inc. Since 2002, has been included with all new Macintosh computer systems...

. Running on Mac OS requires X11
X11.app
XQuartz is Apple Inc.'s version of the X server, a component of the X Window System, for Mac OS X. The current version of XQuartz is a DDX included in the X.Org Server and implements support for hardware-accelerated 2D graphics , hardware OpenGL acceleration and integration with Aqua, the Mac OS...

; while development has on a native Carbon version. Two versions of XEmacs for the Microsoft Windows environment exist: a native installer and a Cygwin
Cygwin
Cygwin is a Unix-like environment and command-line interface for Microsoft Windows. Cygwin provides native integration of Windows-based applications, data, and other system resources with applications, software tools, and data of the Unix-like environment...

 package.

Users can reconfigure almost all of the functionality in the editor by using the Emacs Lisp
Emacs Lisp
Emacs Lisp is a dialect of the Lisp programming language used by the GNU Emacs and XEmacs text editors . It is used for implementing most of the editing functionality built into Emacs, the remainder being written in C...

 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 apply them in bulk using the xemacs-sumo package or "sumo tarballs".

Development

From the project's beginnings, the developers of XEmacs aimed to have a frequent release-cycle: 2 to 3 releases appear per year, which is a slowdown from earlier years.
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 unique packaging system for independently-maintained Lisp packages. The version has GTK+
GTK+
GTK+ is a cross-platform widget toolkit for creating graphical user interfaces. It is licensed under the terms of the GNU LGPL, allowing both free and proprietary software to use it. It is one of the most popular toolkits for the X Window System, along with Qt.The name GTK+ originates from GTK;...

 support
and a native Carbon port for Mac OS X.

XEmacs has always had a very open development-environment, including anonymous CVS
Concurrent Versions System
The Concurrent Versions System , also known as the Concurrent Versioning System, is a client-server free software revision control system in the field of software development. Version control system software keeps track of all work and all changes in a set of files, and allows several developers ...

, later Mercurial
Mercurial (software)
Mercurial is a cross-platform, distributed revision control tool for software developers. It is mainly implemented using the Python programming language, but includes a binary diff implementation written in C. It is supported on Windows and Unix-like systems, such as FreeBSD, Mac OS X and Linux...

 access and publicly accessible development mailing-list
Mailing list
A mailing list is a collection of names and addresses used by an individual or an organization to send material to multiple recipients. The term is often extended to include the people subscribed to such a list, so the group of subscribers is referred to as "the mailing list", or simply "the...

s. XEmacs comes with a 500+ page internals manual (Wing, et al., 2004).

The XEmacs project has a policy of maintaining compatibility with the GNU Emacs API
Application programming interface
An application programming interface is a source code based specification intended to be used as an interface by software components to communicate with each other...

. For example, it provides a compatibility-layer
Compatibility layer
A compatibility layer is a term that refers to components that allow for non-native support of components.In software engineering, a compatibility layer allows binaries for a legacy or foreign system to run on a host system. This translates system calls for the foreign system into native system...

 implementing overlays via the native extent functionality. "[T]he XEmacs developers strive to keep their code compatible with GNU Emacs, especially on the Lisp level."

Support for Unicode
Unicode
Unicode is a computing industry standard for the consistent encoding, representation and handling of text expressed in most of the world's writing systems...

 has become a problem for XEmacs. As of 2005, the released version depends on the unmaintained package called Mule
MULE
MULE is the MULtilingual Enhancement to GNU Emacs.MULE provides facilities not only for handling text written in many different languages , but in fact multilingual texts containing several languages in the same buffer...

-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.

XEmacs development features three branches: stable, gamma, and beta,
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 . 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 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,
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. The Free Software Foundation
Free Software Foundation
The Free Software Foundation is a non-profit corporation founded by Richard Stallman on 4 October 1985 to support the free software movement, a copyleft-based movement which aims to promote the universal freedom to create, distribute and modify computer software...

 holds copyright
Copyright
Copyright is a legal concept, enacted by most governments, giving the creator of an original work exclusive rights to it, usually for a limited time...

 of much of the XEmacs code because of prior copyright-assignment during merge-attempts and cross-development. 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; in particular, many major Lisp subsystems, such as Gnus
Gnus
Gnus is a message reader running under GNU Emacs and XEmacs. It supports reading and composing both news and e-mail.Gnus blurs the distinction between news and e-mail, treating them both as "articles" that come from different sources. News articles are kept separate by group, and e-mail can be...

 and Dired
Dired
Dired is a visual directory editor, a computer program for editing file system directories. Dired runs on any Emacs platform. Its commands are generally more modal than most Emacs commands because Dired is a specialized major mode on its own...

, undergo development to work with both.

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK