Copyright: 1990-9, 2000-20 by Craig A. Finseth [toc]

Disclaimer: Approval for *.answers is based on form, not content. [toc]

Emacs Implementations [toc]

Document id [toc] Emacs Implementations and Literature ftp://ftp.finseth.com/users/emacs http://www.finseth.com/emacs.html Last posted 2020-08-12 reposted about every 2 months Contact: [toc] Craig A. Finseth <craigfinseth@gmail.com> craigafinseth@alum.mit.edu http://www.finseth.com. Please send updates directly to the author via email. Note the information regarding "The Craft of Text Editing"! People interested in this FAQ might also be interested in: http://www.jwz.org/doc/emacs-timeline.html and: http://www.emacswiki.org Copyright [toc] This FAQ document is Copyright 1990-9,2000-18 by Craig A. Finseth. It may be reproduced and archived as part of normal network distribution. Such distribution is assumed to include CD/ROM or other bulk, unedited distribution. It may be reproduced for individual or non-commerical use provided that it is reproduced intact. It may be reproduced for commercial use provided: it is reproduced essentially intact including all copyright notices and acknowledgements, the publisher obtains the latest version directly from the FAQ maintainer (using the above FTP/WWW site is acceptable), the publisher provides the FAQ maintainer with information on what collection the copy of the FAQ is in, and how that collection may be obtained, all material modifications (other than formatting) are clearly marked. Posted to comp.editors, comp.emacs, alt.religion.emacs, alt.answers, [toc] comp.answers, news.answers Description [toc] This document provides a partial -- and not comprehensive -- list of implementations of Emacs-type editors and literature about such editors. You can help make it more comprehensive by sending me additional information and/or updates. This document is also gradually acquiring the role of a repository of (at least) Emacs-related history. While that subject requires a book to itself, this document will probably serve until someone (_not_ me!) writes one. This document is available via anonymous FTP and WWW. See above URLs. To be included in this list: A piece of literature should be a book, manual, article, paper, or something that covers (or mentions) Emacs in particular or text editing techniques in general. Specifically excluded are items that are only of interest to non-Emacs users (a book on "how to use vi") or vendor manuals for Emacs implementations (as those are implicitly included in the implementations). Non-vendor (i.e., third party) manuals are included. An implementation must either (1) be "advertised" as being an Emacs-type editor or (2) be extensible and come with an Emacs command set "mode" already written. Editors that are extensible but do not come with such a mode (i.e., you have to write it yourself) are not listed. The following information is included for each implementation: The NAME line contains the name of the implementation. Implementations are listed alphabetically by name. Acronym expansions are listed in ()s. Other acronyms: TECO TAPE Editor and COrrector (later: Text Editor and COrrector) EMACS Editor MACroS The LAST CHANGED/VERIFIED line contains the date that the entry was last changed or an explict "looks ok to me" was received. This field was added 1994-12-20, so all entries were initialized to that value. The ORIGINAL DISTRIBUTION is the date (or partial date) of the first release. It is in YYYY-MM-DD format. The VERSION is the latest known version. It is probably out of date. The BASE LANGUAGE is the language that you need a compiler or interpreter for in order to use the editor. If the software is distributed as a pre-compiled binary, this should be the language that the program was written in. The IMPLEMENTATION LANGUAGE is the language that the bulk of the implementation is written in. The EXTENSION LANGUAGE is the (often custom or modified) language that the is used when altering or writing extensions to the implementation. It is "none" if there is no extension language. The SCOPE is either "command set" or "extensible." In the first case, the implementation offers a basic Emacs command set; however the user cannot readily change what the commands do. In the second case, the user can fully control what all of the commands do. The REQUIREMENTS is a brief characterization of what hardware or software is required. The purpose of this item is to offer a broad selection key; not be a comprehensive list. You should consult the implementation (for free software) or the vendor to find out whether a specific implementation works in your environment. For example: "UNIX" refers to any version of UNIX(tm) from any vendor.

"IBM PC" is used to cover MS/DOS, OS/2, and Windows implementations. (Starting Dec 1994 the list will support an additional level of detail for IBM PCs.) "DOS" refers to MS/DOS support. May also run under Windows or OS/2 in some mode. - "Windows" refers to Microsoft Windows support.

"OS/2" refers to to OS/2 support. - "Windows NT" refers to Microsoft Windows NT support. The ORGANIZATION is the name of and contact information for the implementor OR >CURRENT MAINTAINER<. The STATUS is one of no longer available: Self-explanatory.

free: The implementation is available to most people at no charge. Even such "free" implementations may have restrictions: consult information about the particular implementation. Where available, information on how to obtain a copy is also listed.

not free: The implementation is for sale. Contact the vendor for specifics. Many of the names of the implementations in this list are trademarked. Specific trademarks are not called out. Full source code is available for all of the free implementations. Source availability varies among the not free implementations: check with the vendor before you buy.

Implementations Available For No Charge [toc]

Implementations Sold by Vendors [toc]

Implementations That Are No Longer Available [toc]

EINE [toc] name: EINE (EINE is not Emacs (the first known recursive acronym)), ZWEI (Zwei Was Eine, Initially (the author knew German)), last changed/verified: 1994-12-20 original distribution: ? version: base language: Lisp implementation language: Lisp extension language: Lisp scope of implementation: extensible hardware/software requirements: Lisp Machine organization/author: MIT USA no longer available ZWEI eveolved into Zmacs and all of the Symbolics, Texas Instruments, Lisp Machines, and related variants. Emacs20 [toc] name: Emacs (aka Prime Emacs) last changed/verified: 2006-10-27 original distribution: ? version: 20 base language: SPL, a variant of PL/1 implementation language: SPL, a variant of PL/1 extension language: Lisp scope of implementation: extensible hardware/software requirements: Prime organization/author: Prime Computer, Inc. 24 Prime Park Way Natick MA 07160 USA +1 508 651 3342 telex 174519 telex +1 508 651 2769 not free, contact vendor for price information Note: Written by Bob Frankston and Seth Steinberg. Leif [toc] name: Leif last changed/verified: 1994-12-20 original distribution: ? version: base language: C implementation language: Lisp extension language: Lisp scope of implementation: extensible hardware/software requirements: UNIX, VMS organization/author: The Saga Group Department of Computer Science University of Illinois at Urbana Champaign 1304 W. Springfield Urbana IL 61801 USA leif@a.cs.uiuc.edu {pur-ee|ihnp4}!uiucdcs!leif Note: Leif is really just GNU Emacs with a small modification, an elisp extension, and an external parser. NMODE [toc] name: NMODE ("New MODE"?), predecessor may be EMODE last changed/verified: 1994-12-20 original distribution: ? version: base language: PSL, Common LIsp implementation language: PSL, Common LIsp extension language: PSL, Common LIsp scope of implementation: extensible hardware/software requirements: HP series 9000 organization/author: Hewlett-Packard old symbolic languages group? no longer available TORE [toc] name: TORES (Text ORiented Editing System) last changed/verified: 1994-12-20 original distribution: ? version: base language: C implementation language: C extension language: none scope of implementation: command set hardware/software requirements: UNIX organization/author: Jeffrey Schiller MIT USA no longer available PD [toc] name: PD Forthmacs System Editor last changed/verified: 1994-12-20 original distribution: ? version: base language: Forth? implementation language: Forth? extension language: none scope of implementation: command set hardware/software requirements: Atari? organization/author: Bradley Software no longer available TV [toc] name: tv (aka otv, SINE (SINE is not EINE (the first known doubly-recursive acronym))) last changed/verified: 2019-04-15 original distribution: 1977 version: base language: PL/1 implementation language: SINE (Lisp-like) extension language: SINE (Lisp-like) scope of implementation: extensible hardware/software requirements: MagicSix on Perkin-Elmer 3200 series organization/author: Owen "Ted" Anderson MIT Architecture Machine Group USA https://github.com/ArchMach/Sine background information https://github.com/ArchMach/Sine/blob/master/saildart.org/OTA/README.md UE [toc] name: ue last changed/verified: 1994-12-20 original distribution: ? version: base language: ? implementation language: ? extension language: none scope of implementation: command set hardware/software requirements: Atari ST organization/author: pm@cwru.edu no longer available Part of Gulam a public-domain shell. VINE [toc] name: VINE (Vine Is Not Emacs) last changed/verified: 1994-12-20 original distribution: 1977 version: base language: Fortran (!) implementation language: Fortran extension language: none scope of implementation: command set hardware/software requirements: VMS organization/author: Craig Finseth Texas Instruments Dallas TX USA no longer available Z80EMACS [toc] name: Z80EMACS last changed/verified: 2007-08-23 original distribution: 1992? version: 0.1 base language: C implementation language: C extension language: custom scope of implementation: extensible hardware/software requirements: CP/M organization/author: Ralph Betza (FM), gnohmon@scscomm.com uunet!ssiny!gnohmon free, anonymous FTP from: rtfm.mit.edu in pub/z80/emacs/* Z80EMACS is a port of microemacs 3.6 to the CP/M operating system. Microemacs keeps all data in memory, and CP/M must live in a 64KB address space. By clever use of overlays and byte-squeezing and tuning, Z80EMACS is able to edit files of size 30KB! microemacs 3.6 had no facility for remapping the keyboard bindings. Z80EMACS does it with an offline utility. Z80EMACS uses overlays extensively, but the most frequently used commands are all either in the root segment or in one particular overlay. Since this overlay is usually already in memory, performance is quite good, even when running from floppies. Z80EMACS has the ability to edit multiple files, display multiple windows, and do keyboard macros, among other things. This makes it the spiffiest CP/M editor you could ever hope to see. Z80EMACS comes with source and binaries; it was compiled with AZTEC C, which few CP/Mmers have, so the binaries are more likely to be useful than the source. Unknown 1 [toc] name: none last changed/verified: 1994-12-20 original distribution: ? version: base language: C implementation language: C extension language: none scope of implementation: command set hardware/software requirements: HLH Orions organization/author: Steven Zimmerman no longer available Dated 1983. Described as a "distant descendant of the one written by Warren Montgomery at Bell Labs. Might be an early, non-commercial version of CCA Emacs. Unknown 2 [toc] name: none last changed/verified: 1994-12-20 original distribution: ? version: 1.1, 2.1 (?) base language: C and 8088 assembler implementation language: C and 8088 assembler extension language: none scope of implementation: command set hardware/software requirements: IBM PC, HP-150, TIPC organization/author: Don P. Bennett, Jr. Hewlett Packard (when he wrote it) no longer available This editor identifies itself as "Emacs", and has HP-style soft labels for the first eight function keys hard-bound to "file commands," "window commands," "buffer commands," etc. Versions 1.1 and 2.1 are known to exist. Other versions may also have escaped. 1.1 was written in Microsoft C and 8088 assembler 1.0 (or was that 2.0?) in about 1985. 2.1 was written using Microsoft C 3.0 in about 1986. All versions work quite usably, despite fatal bugs in some commands. (Memory limits and large files can cause death, "ESC-digit" causes immediate death.) ("If it dies when you do that, stop doing it!")

Back to Craig's Home.