Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
XEmacs
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{short description|Graphical and console-based text editor}} {{About|a specific Emacs implementation|the class of text editors|Emacs}} {{Infobox software | discontinued = yes | name = XEmacs | logo = XEmacs logo.png | logo size = 225px | screenshot = Xemacs-21.5.b29.png | caption = XEmacs 21.5.29 (beta), featuring [[antialiased font]]s | author = [[Lucid Inc.]] | developer = XEmacs community | latest_release_version = {{wikidata|property|edit|reference|Q2164944|P348|P548=Q2804309}} | latest_release_date = {{start date and age|{{wikidata|qualifier|Q2164944|P348|P548=Q2804309|P577}}}} | latest preview version = {{wikidata|property|edit|reference|Q2164944|P348|P548=Q51930650}} | latest preview date = {{start date and age|{{wikidata|qualifier|Q2164944|P348|P548=Q51930650|P577}}}} | operating_system = [[Cross-platform]] to [[GNU]], [[Linux]], [[Windows]], [[macOS]],<ref>{{Cite web|url=http://sealiesoftware.com/xemacs/index.html|title = XEmacs for Darwin / MacOS X}}</ref> [[BSD]]s and more | genre = [[Text editor]] | license = [[GNU General Public License|GPL-2.0-or-later]] | website = {{URL|www.xemacs.org}} }} '''XEmacs''' is a [[graphical user interface|graphical]]- and [[Computer terminal#Text terminals|console]]-based [[text editor]] which runs on almost any [[Unix-like]] [[operating system]] as well as [[Microsoft Windows]]. XEmacs is a [[fork (software development)|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. ==History== Between 1987 and 1993 significant delays occurred in bringing out a new version of [[GNU Emacs]] (presumed to be version 19).<ref>{{cite web|url=http://www.jwz.org/doc/emacs-timeline.html|title=Emacs Timeline|website=Jwz.org|access-date=1 December 2014}}</ref> In the late 1980s, [[Richard P. Gabriel]]'s [[Lucid Inc.]] faced a requirement to ship Emacs to support the Energize [[C++]] [[Integrated Development Environment|IDE]]. So Lucid recruited a team to improve and extend the code,<ref>{{cite web |url=http://commandline.org.uk/2007/history-of-emacs-and-xemacs/ |title= Command Line Warriors - History of Emacs and XEmacs|website=commandline.org.uk |archive-url=https://web.archive.org/web/20101122021051/http://commandline.org.uk/2007/history-of-emacs-and-xemacs/ |archive-date=November 22, 2010}}</ref> 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).<ref>{{cite web|url=http://foldoc.org/?Lucid+Emacs|title=Xemacs from FOLDOC|website=Foldoc.org|access-date=1 December 2014}}</ref> 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.<ref>{{cite web|url=http://stallman.org/articles/xemacs.origin|title=The Origin of XEmacs|author=Richard Stallman|website=Stallman.org|access-date=1 December 2014}}</ref> When Lucid went out of business in 1994, other developers picked up the code.<ref>{{cite web|url=http://www.xemacs.org/About/index.html |title=XEmacs: History of XEmacs |author=john s jacobs anderson, stealing content the FAQ |website=Xemacs.org |access-date=1 December 2014 |url-status=dead |archive-url=https://web.archive.org/web/20141218211326/http://www.xemacs.org/About/index.html |archive-date=December 18, 2014 }}</ref> 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.<ref>{{cite web|url=http://www.xemacs.org/Documentation/21.5/html/internals_3.html#SEC11|title=XEmacs Internals Manual: A History of Emacs|website=Xemacs.org|access-date=1 December 2014}}</ref> The "X" in XEmacs is thus not related to the [[X Window System]]. After initially only supporting X11,<ref>{{Cite web |date=2022-08-20 |title=Lucid Emacs was released 30 years ago |url=https://www.jwz.org/blog/2022/08/lucid-emacs-was-released-30-years-ago/ |access-date=2022-08-25 |website=www.jwz.org |language=en-US}}</ref> 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 [[Syntax highlighting|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 [[wikt:oxen|oxen]]) or as ''emacs'', since they both take their inspiration from the original [[Text Editor and Corrector|TECO]] Emacs. ==Features== XEmacs has commands to manipulate [[Word (linguistics)|word]]s and [[paragraph]]s (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 [[Language|human languages]] as well as editing-modes for many programming and markup-languages. XEmacs runs on many operating systems including [[Unix]]/[[Linux]], [[Berkeley Software Distribution|BSDs]] and [[macOS|Mac OS X]]. Running on Mac OS requires [[X11.app|X11]]; while development has {{As of|2007|alt= started}} on a native [[Carbon (computing)|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".<ref>{{cite web|url=http://www.xemacs.org/Documentation/packageGuide.html|title=XEmacs: Quickstart Package Guide|author=john s jacobs anderson using old content with no listed author|website=Xemacs.org|access-date=1 December 2014}}</ref> 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.<ref name="XEmacs: Release Notice Archive">{{cite web|url=http://www.xemacs.org/Releases/index.html|title=XEmacs: Release Notice Archive|website=Xemacs.org|access-date=1 December 2014}}</ref> 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 {{As of|2007|alt= latest}} version has [[GTK+]] support<ref>{{cite web|url=http://www.us.xemacs.org/Releases/Public-21.2/projects/gtk.html|title=XEmacs: XEmacs on the GTK platform|author=Stephen J. Turnbull|website=Us.xemacs.org|access-date=1 December 2014|url-status=dead|archive-url=https://web.archive.org/web/20160304030645/http://www.us.xemacs.org/Releases/Public-21.2/projects/gtk.html|archive-date=4 March 2016}}</ref> and a native Carbon port for Mac OS X.<ref>{{Cite web |url=http://members.shaw.ca/akochoi-xemacs/Carbon+XEmacs/Home.html |title=Home |access-date=2009-06-22 |archive-url=https://web.archive.org/web/20070914152342/http://members.shaw.ca/akochoi-xemacs/Carbon%20XEmacs/Home.html |archive-date=2007-09-14 |url-status=dead }}</ref> XEmacs has always had a very open development-environment, including anonymous [[Concurrent Versions System|CVS]], later [[Mercurial (software)|Mercurial]] access and publicly accessible development [[mailing list|mailing-list]]s. XEmacs comes with a 500+ page internals manual (Wing, et al., 2004).<ref>{{Cite web|url=http://www.xemacs.org/Documentation/21.5/html/internals_toc.html|title = XEmacs Internals Manual: Table of Contents}}</ref> Support for [[Unicode]] has become a problem for XEmacs. As of 2005, the released version depends on the unmaintained package called [[MULE|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.<ref>{{cite web|url=http://calypso.tux.org/pipermail/xemacs-beta/2006-January/008297.html|title=Mule-on-Windows, full Unicode support XEmacs|website=Calypso.tux.org|access-date=1 December 2014|url-status=dead|archive-url=https://web.archive.org/web/20150904032706/http://calypso.tux.org/pipermail/xemacs-beta/2006-January/008297.html|archive-date=4 September 2015}}</ref> XEmacs development features three branches: stable, gamma, and beta,<ref name="XEmacs: Release Notice Archive"/> 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|lc = on}}. 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<ref>{{cite web|url=http://www.xemacs.org/About/XEmacsVsGNUemacs.html|title=XEmacs: XEmacs vs. GNU Emacs|website=Xemacs.org|access-date=1 December 2014}}</ref> 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,<ref>{{cite web|url=http://www.fsf.org/licensing/licenses/why-assign.html|title=Why the FSF gets copyright assignments from contributors - GNU Project - Free Software Foundation|website=Fsf.org|access-date=1 December 2014}}</ref> 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|fiduciary duties]] to shareholders, companies may have trouble in getting permission to assign away code completely.{{Citation needed|date=March 2019}} The [[Free Software Foundation]] holds [[copyright]] of much of the XEmacs code because of prior copyright assignment during merge attempts and cross-development.<ref>{{cite web|url=http://www.xemacs.org/About/XEmacsVsGNUemacs.html|title=Xemacs vs GNU Emacs|quote=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.}}</ref> 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 [[Application Programming Interface|API]]. For example, it provides a [[compatibility layer|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."<ref>{{cite web|url=http://www.xemacs.org/Documentation/21.5/html/xemacs-faq_2.html#SEC53|title=Frequently asked questions about XEmacs: Introduction|website=Xemacs.org|access-date=1 December 2014}}</ref> As XEmacs development has slowed, XEmacs has incorporated much code from GNU Emacs,<ref>{{cite web|url=http://xemacs.org/Releases/21.5.33.html|title=XEmacs 21.5.33 release notes|website=Xemacs.org|access-date=1 December 2014|url-status=dead|archive-url=https://web.archive.org/web/20160304044011/http://xemacs.org/Releases/21.5.33.html|archive-date=4 March 2016}}</ref> 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.<ref>{{cite web |url=http://steve-yegge.blogspot.com/2008/04/xemacs-is-dead-long-live-xemacs.html |archive-url=https://web.archive.org/web/20080501053355/http://steve-yegge.blogspot.com/2008/04/xemacs-is-dead-long-live-xemacs.html |url-status=dead |archive-date=1 May 2008 |title=XEmacs is Dead. Long Live XEmacs! |website=Steve-yegge.blogspot.com |access-date=1 December 2014 }}</ref> Many major packages, such as [[Gnus]] and [[Dired]], were formerly developed to work with both,<ref>{{cite web|url=http://www.linuxjournal.com/article/195|title=A Comparison of Xemacs and Gnu Emacs|quote=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.}}</ref> 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.<ref>{{Cite web|url=https://lists.gnu.org/archive/html/emacs-devel/2015-12/msg01511.html|title = Moving Gnus development to Emacs?}}</ref><ref>{{Cite web|url=http://lars.ingebrigtsen.no/2016/01/01/its-about-ethics-in-gnus-development/|title = It's About Ethics in Gnus Development|date = January 2016}}</ref> 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.<ref>{{cite web|url=http://permalink.gmane.org/gmane.emacs.xemacs.announce/92|archive-url=https://web.archive.org/web/20161014053351/http://permalink.gmane.org/gmane.emacs.xemacs.announce/92|url-status=dead|archive-date=2016-10-14|title=XEmacs at a crossroads|quote=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.}}</ref> This last option was the direction decided, with commitments from individual contributors to provide minimal support for the web site and development resources. In 2020 the XEmacs project moved its [[Mercurial]] source repository to Heptapod, following their former host [[Bitbucket]]'s discontinuation of Mercurial support. In May 2023, the project released the first new beta version of XEmacs in nearly a decade with beta version 21.5.35 "kohlrabi".<ref name="XEmacs 21.5.35 Release Notice">{{cite web|url=http://www.xemacs.org/Releases/index.html|title=XEmacs: XEmacs 21.5.35 "kohlrabi" is released|website=Xemacs.org|access-date=19 July 2023}}</ref> == SXEmacs == [[Image:SXEmacs-screenshot.png|thumb|Screenshot of SXEmacs 22.1.10]] The [http://www.sxemacs.org/ SXEmacs project] forked XEmacs 21.4 and continued development for over a decade, issuing new releases as late as 2020. ==See also== {{Portal|Free and open-source software}} * [[List of Unix commands]] * [[Comparison of text editors]] ==References== {{Reflist}} ==External links== * {{Official website}} {{EmacsNavbox}} {{DEFAULTSORT:Xemacs}} [[Category:Cross-platform software]] [[Category:Emacs]] [[Category:Free software programmed in C]] [[Category:Free text editors]] [[Category:MacOS text editors]] [[Category:Software forks]] [[Category:Software using the GNU General Public License]] [[Category:Text editors that use GTK]] [[Category:Discontinued development tools]] [[Category:Unix text editors]] [[Category:Windows text editors]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:About
(
edit
)
Template:As of
(
edit
)
Template:Citation needed
(
edit
)
Template:Cite web
(
edit
)
Template:EmacsNavbox
(
edit
)
Template:Infobox
(
edit
)
Template:Infobox software
(
edit
)
Template:Main other
(
edit
)
Template:Official website
(
edit
)
Template:Portal
(
edit
)
Template:Reflist
(
edit
)
Template:Short description
(
edit
)
Template:Template other
(
edit
)