Gosling Emacs

From Wikipedia, the free encyclopedia
Jump to: navigation, search

Gosling Emacs (often shortened to "Gosmacs" or "gmacs") was an Emacs implementation written in 1981 by James Gosling in C.[1] Its extension language, Mocklisp, has a syntax that appears similar to Lisp, but Mocklisp does not have lists or any other structured datatypes. Gosling initially allowed Gosling Emacs to be redistributed with no formal restrictions, but later sold it to UniPress.[citation needed]

Gosling Emacs was especially noteworthy[according to whom?] because of the effective[according to whom?] redisplay code,[2] which used a dynamic programming technique to solve the classical string-to-string correction problem.[citation needed] The algorithm was quite sophisticated; that section of the source was headed by a skull-and-crossbones in ASCII art, warning would-be improver that even if they thought they understood how the display code worked, they probably did not.[3]

Since Gosling had permitted its unrestricted redistribution, Richard Stallman used some Gosling Emacs code in the initial version of GNU Emacs.[citation needed] Among other things, he rewrote part of the Gosling code headed by the skull-and-crossbones comment and made it "...shorter, faster, clearer and more flexible."[3]

UniPress began selling Gosling Emacs (which it renamed Unipress Emacs) as a proprietary product,[citation needed] and controversially, asked Stallman to stop distributing Gosling Emacs source code. UniPress never took legal action against Stallman or his nascent Free Software Foundation,[citation needed] believing "hobbyists and academics could never produce an Emacs that could compete" with their product.[citation needed] All Gosling Emacs code was removed from GNU Emacs by version 16.56, with the possible exception of a few particularly hairy sections of the display code.[citation needed] The latest versions of GNU Emacs (as of August 2004)[dated info] do not feature the skull-and-crossbones warning.[citation needed]


  1. ^ Stallman, Richard (28 October 2002), My Lisp Experiences and the Development of GNU Emacs 
  2. ^ Gosling, James (June 1981), A Redisplay Algorithm, Proceedings of the ACM SIGPLAN Symposium on Text Manipulation 
  3. ^ a b Stallman, Richard (7 January 2013), "samzenpus", ed., Richard Stallman Answers Your Questions, Slashdot, "The last piece of Gosmacs code that I replaced was the serial terminal scrolling optimizer, a few pages of Gosling's code which was proceeded by a comment with a skull and crossbones, meaning that it was so hard to understand that it was poison. I had to replace it, but worried that the job would be hard. I found a simpler algorithm and got it to work in a few hours, producing code that was shorter, faster, clearer, and more extensible. Then I made it use the terminal commands to insert or delete multiple lines as a single operation, which made screen updating far more efficient."