Software Preservation Group of the Computer History Museum

Emacs Historical Archive

Lars Brinkhoff, editor - lars@nocrew.org / https://github.com/larsbrinkhoff/
Paul McJones, assistant editor - paul@mcjones.org / https://mcjones.org/paul/

Last updated 12 October 2025

Abstract

The goal of this project is to preserve and present primary and secondary source materials (including specifications, source code, manuals, and papers discussing design and implementation) from the history of Emacs, including the TECO, Lisp Machine, Multics, Montgomery, Gosling, Zimmerman, GNU, and XEmacs versions. Comments, suggestions, and donations of additional materials are greatly appreciated.

Unless otherwise specified, all source code is in the repository https://github.com/larsbrinkhoff/emacs-history/ and URLs within this repository are displayed in a relative form, e.g., blob/sources/emacs24-25.dump instead of https://github.com/larsbrinkhoff/emacs-history/blob/sources/emacs24-25.dump.

TO DO

Contents

Acknowledgments

These people have been instrumental in finding or preserving old Emacs software:

Rich Alderson, Bruce Baumgart, Dave Conroy, Dennis Boone, Noah Friedman,James Gosling, Hans Hübner, Al Kossow, der Mouse, Brian Reid, Alfred M. Szmidt, and Tom Van Vleck.

TECO EMACS (1976–1996)

The very first Emacs was written in 1976. It was implemented in macros for the TECO editor running in the ITS operating system for the PDP-10 computers at the MIT AI Lab. It was created by Richard Stallman and Guy Steele from an amalgam of previous macro packages. It was later ported to TOPS-20.

Source code

See also: https://github.com/MITDDC/emacs-1976-1977.

Documentation and papers

Lisp Machine emacsen (1978–1997)

Daniel Weinreb and Mike McMahon wrote an Emacs clone for the MIT AI Lab Lisp Machines in 1978. It was called EINE, EINE is not Emacs. Later version were called ZWEI and Zmacs.

Source code

Documentation and papers

Architecture Machine Group: Sine and TVmacs (1978–?)

Sine was a language designed by Owen Theodore Anderson in 1978 for writing real-time editors; TVmacs was an Emacs-like editor written in Sine. The work was done in MIT's Architecture Machine Group, and ran on the MagicSix timesharing system on an Interdata 7/32 with segmentation hardware in 32 bit mode.

Source code

Documentation

Multics Emacs (1978–1989)

Bernard Greenberg wrote an Emacs clone in Multics Maclisp in 1978.

Source code

Documentation and papers

Prime Emacs (1979?–?)

Prime Emacs was written by Bob Frankston at Software Arts circa 1979, for a Prime minicomputer. It was sold to Prime.

Source code

Documentation

Montgomery Emacs / BTL Emacs (~1980)

Montgomery Emacs was written in 1979 by Warren Montgomery at Bell Telephone Laboratories. It was initially for PDP-11 Unix.

Source code

Documentation

Gosling Emacs / UniPress Emacs (1980–2007)

Written by James Gosling circa 1980 and originally distributed for free; later he sold it to UniPress, who distributed it as UniPress Emacs.

Message-ID: 
Newsgroups: fa.works
Path: utzoo!duke!decvax!ucbvax!works@mit-ai
X-Path: utzoo!duke!decvax!ucbvax!works@mit-ai
From: works@mit-ai
Date: Sun Jul  5 08:07:41 1981
Subject: Software tools - EMACS and UNIX

>From WorkS-REQUEST@MIT-AI Sun Jul  5 07:59:49 1981

There are (at least) two editors entitled EMACS on the Berkeley
VM/UNIX VAX system.  The one by James Gosling of CMU seems to
be favored.  It has a LISP-like language for extension.  It is
missing features of various sorts, however.
                                   -- CSVAX.fateman at Berkeley


  A point of information: There exists an excellent, if not fully
mature, EMACS for the VAX running Berkeley UNIX or VMS+EUNICE.
  The basic editing level is written entirely in C (zero lines of
machine code), the macro level is an embedded lisp-like language
called MLISP (which is INFINITELY more comprehensable than TECO
macros!), and the top level is the usual EMACS
double-bucky-coke-bottle command language.
  Inquiries sould go to GOSLING@CMUA, but I think he is on summer
vacation or some such.
                               -- Dave Dyer 
-------
https://groups.google.com/g/fa.works/c/3bpIe16bi1M/m/Ry41tEVr1ncJ /
blob/sources/Usenet/fa.works/gosling-emacs.txt
Message-ID: 
Newsgroups: fa.unix-wizards
Path: utzoo!decvax!ucbvax!unix-wizards
X-Path: utzoo!decvax!ucbvax!unix-wizards
From: ucbvax!unix-wizards
Date: Wed Sep  2 12:10:55 1981
Subject: Unix Emacs

>From THOMAS@UTAH-20 Wed Sep  2 12:04:15 1981
There are several.  If you have a VAX, probably the editor of choice is
one written by James Gosling @ CMU-10A.  Contact him for details
(gosling@cmua).  On an 11, the problem is more difficult.  There a couple
around, but at least one of them is an "unreleased" Bell Labs program.
They all have some lossages.
=S
-------
https://groups.google.com/g/fa.unix-wizards/c/ZLvRTX5fiH8/m/7TFq9bYE3koJ /
blob/sources/Usenet/fa.unix-wizards/gosling-emacs.txt

Source code

Documentation

Zimmerman Emacs / CCA (Computer Corporation of America) Emacs (1983?–?)

Developed from Montgomery Emacs by Steve Zimmerman. CCA Emacs was a commercial version of Zimmerman Emacs, sold by Computer Corporation of America.

Message-ID: 
Newsgroups: fa.unix-wizards
Path: utzoo!decvax!ucbvax!unix-wizards
X-Path: utzoo!decvax!ucbvax!unix-wizards
From: ucbvax!unix-wizards
Date: Thu Sep  3 06:02:48 1981
Subject: Unix EMACS

>From z@CCA-UNIX Thu Sep  3 05:54:22 1981
I  too  have  an EMACS which runs on VAXes under 4.1BSD.  It differs from
Gosling's EMACS in that the user interface is virtually identical to that
of  Twenex  EMACS;  almost  all  of the standard EMACS commands have been
implemented, and in most cases they work exactly the same as  on  Twenex.
It  has  such  features  as real control-meta commands, region filtering,
text justifying, crash recovery, automatic  backup  file  creation,  Lisp
mode commands for manipulating s-expressions, lists, and defuns, keyboard
macros, a tutorial, and  all  the  standard  EMACS  online  documentation
except  the  INFO  subsystem,  which  will  be  coming later.  It doesn't
currently have a macro language, but I am about to add one; it will  look
much like the meta-Lisp in Gosling's EMACS.
https://groups.google.com/g/fa.unix-wizards/c/XJymSOUDRbk/m/rlyicFJrbfsJ /
blob/sources/Usenet/fa.unix-wizards/cca-emacs.txt

Documentation

GNU Emacs (1984–)

Written by Richard Stallman in 1984, initally incorporating parts of Gosling Emacs until version 13.8 and possibly 14.x.

Announcements

Source code

Epsilon (1984–?)

"Lugaru Software was started by two former Carnegie Mellon University students. We'd used TECO-based EMACS on the school's time-shared PDP-20 systems, but it was far too large to run under DOS.

The closest DOS equivalent we knew of at the time (1983) was MINCE, but it was built for DOS 1.0 and couldn't use directories (a feature introduced in DOS 2.0), only drive letters. You had to run it from the one directory with all the files you wanted to edit.

We started developing Epsilon in December 1983, and the first version (for DOS) came out in 1984. The following year, we introduced both a concurrent process feature (adding multitasking to DOS, so you could run a compiler in a buffer window while editing) and an extension language." [Steven Doerfler of Lugaru Software, Ltd.]

MicroEMACS (1985)

MicroEMACS was written by David G. Conroy in 1985.

Source code

Documentation

Epoch (1989–1990), Lucid Emacs (1992–1994), XEmacs (1994–2013)

Epoch was a set of patches to GNU Emacs 18 from the University of Illinois. It improved the GUI capabilities.

Lucid Emacs was developed by Lucid Inc. starting in 1991 as a fork of an early alpha version of GNU Emacs and leveraging Epoch. It was intended to serve as the basis for Lucid's Energize C++ development environment.

Afer Lucid Inc. went bankrupt in 1994, other deveopers renamed Lucid Emacs as XEmacs to avoid legal ambiguity over the Lucid trademark. [https://www.xemacs.org/Documentation/21.5/html/internals_3.html]

Announcements

Source code