Gosling Emacs

From Wikipedia, the free encyclopedia
  (Redirected from Mocklisp)
Jump to navigation Jump to search

Gosling Emacs (often shortened to "Gosmacs" or "gmacs") is a discontinued Emacs implementation written in 1981 by James Gosling in C.[1] Gosling initially allowed Gosling Emacs to be redistributed with no formal restrictions, but later sold it to UniPress.[2]

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

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."[5]

In 1983 UniPress began selling Gosling Emacs on Unix for $395 and on VMS for $2,500,[6] after renaming it Unipress Emacs.[2] Controversially, it 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 involved sections of the display code.[citation needed] The latest versions of GNU Emacs (since August 2004) do not feature the skull-and-crossbones warning.[citation needed]

Extension language[edit]

Its extension language, Mocklisp, has a syntax that appears similar to Lisp, but Mocklisp does not have lists or any other structured datatypes.


  1. ^ Stallman, Richard (28 October 2002), My Lisp Experiences and the Development of GNU Emacs
  2. ^ a b "Pretty sure he speaks of Unipress Emacs. A little history: Richard M. Stallman ..." Hacker News. 5 January 2012. Retrieved 5 March 2018.
  3. ^ Gosling, James (June 1981), A Redisplay Algorithm, Proceedings of the ACM SIGPLAN Symposium on Text Manipulation
  4. ^ http://donhopkins.com/home/archive/emacs/skull-and-crossbones.txt
  5. ^ 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.
  6. ^ "Unix Spoken Here / and MS-DOS, and VMS too!". BYTE (advertisement). December 1983. p. 334. Retrieved 8 March 2016.