Gosling Emacs

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

Gosling Emacs / Unipress Emacs
Original authorJames Gosling
DeveloperUniPress
Initial release1981; 45 years ago (1981)
Repository
  • {{URL|example.com|optional display text}}Lua error in Module:EditAtWikidata at line 29: attempt to index field 'wikibase' (a nil value).
Written inC
Engine
    Lua error in Module:EditAtWikidata at line 29: attempt to index field 'wikibase' (a nil value).
    Operating systemUnix, VMS
    TypeText editor

    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, as required by the "Emacs commune" since the 1970s,[2] only asking for a letter acknowledging his authorship.[3] Later, wishing to move on and after a failed search for people who would maintain it under the same rights, he finally sold his version of Emacs to UniPress because they agreed to sell it under reasonable terms. The dispute between Richard Stallman and UniPress inspired the creation of the first formal license for Emacs, which later became the GPL, as Congress had introduced copyright for software in 1980.[4]

    Features

    [edit | edit source]

    Gosling Emacs was especially noteworthy because of the effective redisplay code,[5] 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,[6] warning any would-be improver that even if they thought they understood how the display code worked, they probably did not.[7]

    Distribution

    [edit | edit source]

    Since Gosling had permitted its unrestricted redistribution, Richard Stallman used some Gosling Emacs code in the initial version of GNU Emacs.[8][9] 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 extensible."[7]

    In 1983 UniPress began selling Gosling Emacs on Unix for $395 and on VMS for $2,500, marketing it as "EMACS–multi-window text editor (Gosling version)".[10]

    Controversially, UniPress asked Stallman to stop distributing his version of Emacs for Unix.[11] 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 (July 1985),[12] 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 | edit source]

    Its extension language, Mocklisp, has a syntax that appears similar to Lisp, but Mocklisp does not have lists, only strings and arrays. The Mocklisp interpreter, built by Gosling and a collaborator, was replaced by a full Lisp interpreter in GNU Emacs.[11]

    References

    [edit | edit source]
    1. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    2. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    3. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    4. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    5. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    6. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    7. ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    8. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    9. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    10. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    11. ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    12. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).