Lucid Emacs was released 30 years ago

Looks like I missed that anniversary too!

I can't find the announcement for Lucid Emacs 19.0 in April 1992, possibly because I posted that to gnu.emacs.announce and RMS deleted it, but here's the announcement for 19.1 in June 1992, 30 years and 2 months ago:

Newsgroups: comp.windows.x.announce
Subject: Lucid GNU Emacs 19.1 now available
From: jwz@LUCID.COM (Jamie Zawinski)
Date: 4 Jun 92 17:27:18 GMT
Message-ID: <9206041727.AA15908@expo.lcs.mit.edu>
Path: sparky!uunet!charon.amdahl.com!pacbell.com!mips!swrinde!zaphod.mps.ohio-state.edu!sol.ctr.columbia.edu!ucselx!bionet!LUCID.COM!jwz
Distribution: inet

Lucid GNU Emacs 19.1 is now available. This is a version of GNU Emacs derived from an early version of Emacs version 19 from the Free Software Foundation.

You can get it via anonymous FTP from the host labrea.Stanford.EDU (36.8.0.47).

It is currently available only by FTP. We don't have the manpower to make tapes right now.

Log in with the user "anonymous" and "username@host" as a password (that is, your email address.) Execute the command "cd pub/gnu/lucid/". These are the files you will find there:

lemacs-19.1.tar.Z

    The complete source distribution. This file is about 8 megabytes. When untarred and uncompressed, the source distribution will take up about 20 megs. You will need an additional 12 megs or so to compile it.

lemacs-19.1-sun4.tar.Z

    This is a ready-to-run set of Sun4 executables, and a DOC file. If you want to use these executables, you will still need to get the file lemacs-19.1.tar.Z, because Emacs cannot function very well without the lisp library online. This file is about 2.3 megs, 4.7 megs when unpacked, 3.6 megs of which is the Emacs executable itself. This executable was compiled with -g, so that if you have a crash, the core file will be useful to us. If you "strip" it, it will be 2.1 megs (but if you're going to do that, you might as well recompile with -O.)

Don't forget to set "binary" mode when transferring these files. Unpack them with some variation of the command "zcat lemacs-19.1.tar.Z | tar -vxf -".

We have created two mailing lists for discussing our Emacs.

    bug-lucid-emacs@lucid.com For reporting bugs in Lucid GNU Emacs.
    help-lucid-emacs@lucid.com For random questions and conversation about Lucid GNU Emacs.

And also

    bug-lucid-emacs-request@lucid.com
    help-lucid-emacs-request@lucid.com
    For messages ABOUT the bug-lucid-emacs and help-lucid-emacs mailing lists (subscription requests, mail problems, etc.) If you want to be added to or removed from a mailing list, send mail to the corresponding "-request" address. Do NOT send such messages to the list itself.

If the mailing lists get sufficiently large, we may create corresponding newsgroups.

Please do NOT send messages about problems with Lucid GNU Emacs to the FSF GNU Emacs newsgroups and mailing lists (help-gnu-emacs@prep.ai.mit.edu, bug-gnu-emacs@prep.ai.mit.edu, gnu.emacs.help, gnu.emacs.bug, et cetera) unless you are sure that the problem you are reporting is a problem with both versions of GNU Emacs. People who aren't subscribed to the Lucid GNU Emacs mailing lists most likely are not interested in hearing about problems with it.

Why Another Version of Emacs?
=============================

Lucid's latest product, Energize, is a C/C++ development environment. Rather than invent (and force our users to learn) a new user-interface, we chose to build part of our environment on top of the world's best editor, GNU Emacs. (Though our product is commercial, the work we did on GNU Emacs is free software, and is useful without having to purchase our product.)

We needed a version of Emacs with mouse-sensitive regions, multiple fonts, the ability to mark sections of a buffer as read-only, the ability to detect which parts of a buffer has been modified, and many other features.

Why Not Epoch?
==============

For our purposes, the existing version of Epoch was not sufficient; it did not allow us to put arbitrary pixmaps/icons in buffers, `undo' did not restore changes to regions, regions did not overlap and merge their attributes in the way we needed, and several other things.

We could have devoted our time to making Epoch do what we needed (and, in fact, we spent some time doing that) but, since the FSF planned to include Epoch-like features in their version 19, we decided that our efforts would be better spent improving Emacs19 instead of Epoch.

Our original hope was that our changes to Emacs would be incorporated into the "official" v19. However, scheduling conflicts arose, and we found that, given the amount of work still remaining to be done, we didn't have time to merge with the FSF's code. Consequently, we are releasing our work as a forked branch of Emacs, instead of delaying any longer.

No Warranty
===========

Lucid GNU Emacs is distributed under exactly the same terms as GNU Emacs, and thus has no warranty of any kind. (However, Energize support contracts include Lucid GNU Emacs support.) We do not currently have plans to sell support for Emacs independent of support for Energize.

What's Different?
=================

Lucid GNU Emacs *currently* requires X Windows to run, though it will not be much work to make it run on dumb ttys again. We plan to do this soon.

We have not yet tried to compile this version of Emacs under anything but SunOS 4.1 on SparcStations. We are very eager to get feedback about portability problems from those who compile it on other systems.

We have reimplemented the basic input model in a more general way; instead of X input being a special-case of the normal ASCII input stream, Emacs has a concept of "input events", and ASCII characters are a subset of that. The events that Emacs knows about are not X events, but are a generalization of them, so that Emacs can eventually be ported to different window systems.

We have reimplemented keymaps so that sequences of events can be stored into them instead of just ASCII codes; it is possible to, for example, bind different commands to each of the chords Control-h, Control-H, Backspace, Control-Backspace, and Super-Shift-Backspace. Key bindings, function key bindings, and mouse bindings live in the same keymaps.

You can have multiple X Windows ("screens" in Emacs terminology).

Our Emacs has objects called "extents" and "faces", which are roughly analogous to Epoch's "buttons," "zones," and "styles." An extent is a region of text (a start position and an end position) and a face is a collection of textual attributes like fonts and colors. Every extent is displayed in some "face", so changing the properties of a face immediately updates the display of all associated extents. Faces can be screen-local: you can have a region of text which displays with completely different attributes when its buffer is viewed from a different X window.

The display attributes of faces may be specified either in lisp or through the X resource manager.

Emacs use the MIT "Xt" toolkit instead of raw Xlib calls, which makes it be a more well-behaved X citizen (and also improves portability). A result of this is that it is possible to include other Xt "Widgets" in the Emacs window. Also, Emacs understands the standard Xt command-line arguments.

Emacs understands the X11 "Selection" mechanism; it's possible to define and customize selection converter functions and new selection types from elisp, without having to recompile Emacs.

Emacs now supports the Zmacs/Lispm style of region highlighting, where the region between the point and mark is highlighted when in its "active" state.

Emacs has a menubar, whose contents are customizable from emacs-lisp. This menubar looks Motif-ish, but does not require Motif. If you already own Motif, however, you can configure Emacs to use a *real* Motif menubar instead. If you have OpenWindows, you can use a real OpenWindows menubar.

The initial load-path is computed at run-time, instead of at compile-time. This means that if you move the Emacs executable and associated directories to somewhere else, you don't have to recompile anything.

Emacs now supports floating-point numbers.

Emacs now knows about timers directly, instead of them being simulated by a subprocess.

Emacs understands truenames, and can be configured to notice when you are visiting two names of the same file.

If you're running on a sun SparcStation, you can specify sound files for Emacs to play instead of the default X beep.

Much more detail about the differences between Lucid GNU Emacs and Emacs 18 can be found in the file .../etc/NEWS (accessible with ``C-h n''.)

Note that building Lucid GNU Emacs requires an ANSI C compiler, such as gcc.

"We don't have the manpower to make tapes right now."

Hey, look what I found!

If you're wondering what Lucid Energize was, the product that led to the development of Lucid Emacs, it was basically Xcode for Unix in 1992. It was an integrated IDE with as-you-type recompilation. Please enjoy this promotional VHS cassette:

It failed in the marketplace because our target audience mostly still thought that vi and printf("here\n") was good enough and why would you bother with anything more complicated than that.

Did anyone reading this actually use Energize?

Previously, previously, previously, previously, previously, previously, previously, previously, previously, previously.

Tags: , , , , ,

41 Responses:

  1. W0W. 571LL 50 C001.

    TAPES. FLOPPIES. MAGNETO OPTICAL DISCS. OPTICAL DISCS. HISTERY.

    time_t flies so quickly®

  2. randominternetstranger says:
    1

    Quite interesting to see the IP address mentioned. Was 1992 before DNS became common? I remember reading about how, pre-DNS, a HOSTS.TXT used to be distributed, but I'm currently failing to google the history. Looks like it now resolves to some sort of Japanese ISP (?) ("PPP-BB"?) while the original domain has been moved to a different IP. No FTP service there anymore unfortunately.

    % host 36.8.0.47
    47.0.8.36.in-addr.arpa domain name pointer KD036008000047.ppp-bb.dion.ne.jp.
    
    % host labrea.stanford.edu
    labrea.stanford.edu has address 172.24.64.71
    
    % ftp labrea.stanford.edu
    ftp: Can't connect to `172.24.64.71:21': Operation timed out
    ftp: Can't connect to `labrea.stanford.edu:ftp'
    • jwz says:
      4

      DNS was common but it didn't always work very well, especially if you weren't on a university network and had to use dialup.

    • cmt says:

      labrea is in private address space, see RFC1918 https://datatracker.ietf.org/doc/html/rfc1918#section-3 (and really, FTP? I'd assume that quite a lot of FTP servers you can still find on the 'net have been forgotten by their operators, or are part of some ancient embedded system which hasn't been firewalled away).

    • Zygo says:
      1

      Around that time, there were robots with UUCP email addresses that could download things from FTP sites for you, if you packed up download instructions very carefully, mailed them out, and waited days for a response.  In some corners of the world, this was a normal way to get software.  That said, 20 MB downloads would be over most robots' size limit, if not your nearest UUCP hop's queue size limit, or your own local mailbox size limit, so you might have had to wait for a CD in the mail to get something as big as lemacs.

      By 1992 that sort of thing was definitely in decline, replaced by SMTP email, SLIP dial-up, FTP sites with capacity for a 2-digit number of simultaneous users, and often-but-not-always-working DNS services.

      • jwz says:
        3

        Also, as I recall, CD-Rs were not really a thing yet in 1992. If you wanted something on a CD, you sent a master tape to a publisher and bought in 4 digit quantities.

        • Chris W. says:

          I was a fairly adopter of CD-Rs for, um, reasons, and I think the first one I bought was in 1997. It used caddies! 1992 was probably more of a Zip Drive time.

          • michael says:

            I bought a CD-R drive (external, SCSI, 1x) in 1996 for $1200 and it was by far the most unreliable piece of absolute junk computer peripheral I've ever owned.

            It was so bad that I still think that burning a CD (DVD, whatever) is going to fail most of the time and I'm surprised when it works.

            • Steven Baker says:

              This!  I had cause to burn some CDs a few months back, for the first time in many years, and habitually closed all of my open running programs before clicking the start button.

              I laughed at myself.

            • Chris W. says:

              What brand was it? I think Plextor was the one you wanted to have, back in the day.

              Mine was definitely internal and I think IDE. It was 2x, which was nice.

            • Don't forget each blank was $20 so when it failed you just threw that money away.

          • Around that time I was using SCSI WORM drives for a data logging application. It was a hella touchy beast.

        • Sean says:

          Wasn't 1992 around the time that Sun started giving away CDROM readers (or at least shipping them with every new sale) so that they could junk the KWIK tapes they shipped the OS on?

      • Nick Lamb says:

        I obtained much of my early "stuff from FTP" by emailing a service which would do roughly what you said, although not via UUCP because I had Internet email from my first kinda sorta grown up job in about September 1994 (year out before University, is that a thing in the US?) but I didn't have an FTP client, at least at first.

        I remember installing Win32s in order to run a web browser (probably Mosaic) and becoming briefly addicted to Freecell before it was on every random user's computer. I think I was mostly productive at that company, and on balance my use of their Internet access for stuff that wasn't work related would likely be tolerated by policies at most corporations which exist today, but of course at the time policies about non-work use of the Internet weren't a thing. I believe our host's employer put out Navigator 1.0 during my time there, and I ran it, but at the time Tim's toy hypertext system wasn't the most compelling application of the Internet and I was more interested in Usenet, email, and FTP initially.

    • Rich says:

      The Convex machine I used back in '91 had DNS deliberately disabled by the administrator.  I think they just didn't want us to use a supercomputer (2 CPUs! vector processing!) for telnetting too much.  I eventually worked out that you could get DNS to work by copying the telnet and ftp binaries and patching them so that whatever file it was looking for under /etc that enabled the resolver was replaced by the string "/etc/passwd".

      Not that any of this would have helped.  The UK academic network was still using X.25 for wide area connections and you had to use the abomination that is hhcp (imagine uucp but reimplemented by the ITU) to download anything from outside the lab.  It went through some sort of X.25 to FTP gateway that appeared to run one batch job at a time for the whole of the UK.

      • Zygo says:

        Quite a lot of inter-city connectivity was done in batch jobs at night, because the price of point-to-point bit transport was a function of distance and time of day.  Even with a permanent connection where the direct monetary cost is constant, the wires would be idle at night, and crippled by congestion during the day.

      • tfb says:

        hhcp was the thing that ?suns? had.  We had whatever horror had been written (at York I guess) for BSD 4.3, with a thing called the 'York box' hanging off it.  The main purpose of the York box was to crash irretrievably, requiring a walk down stairs to power cycle it ... many times a day.  I hated that thing.

    • suboption12 says:

      hah---that  labrea.stanford.edu maps to a private space IP...That's not just a mistake, it's a serious config screw-up , as the DNS server shouldn't be able to distribute those to the internet. They are leaking.

  3. Carlos says:
    1

    Wow.  Fruit flies really do like a banana.

    C.

  4. tfb says:

    I remember finding out about lemacs because someone (jwz) reported bugs in a twm derivative, which  might have been rtvtwm, due to some program which did things with focus that no-one had thought of and which caused it to get confused about where focus was (or crash?).  The 'r' in rtvtwm was Richard Caley, who I knew, and the program was some early lemacs.  Those bugs were entertaining to find because the moment you tried to make them happen by running it across what was probably still thickwire ethernet there was enough lag that it would not crash.  Getting copies of it to Edinburgh was probably painful, but I don't remember.  It was so much better than epoch though.

    I'm ashamed to say I use FSF emacs now: it got too hard to make xemacs work on macs.  It makes me feel bad to use anything that closely associated with RMS, but.

      • tfb says:
        2

        I made the mistake of looking at the comments to that including the one by some cult follower.  Even as a distant spectator of that whole saga it makes me want to obliterate the memory with alcohol: that people actually involved didn't resort to violence astonishes me.

    • jwz says:
      1

      I also noticed on that old contrib tape me being credited with some patches to XTetris to make it auto-pause if you hid the window, so obviously this was the period of my life where, if there was ICCCM minutiae to be known, I was there.

    • James C. says:

      I use Mituharu Yamamoto’s emacs-mac port of RMSmacs (via railwaycat’s homebrew formula). It’s not XEmacs but at least RMS says doesn’t like it.

      • Doctor Memory says:
        1

        Jesus, that missive from RMS.  What's the old joke? Neurotics build castles in the sky, psychotics live in them and declare themselves king?

        • 1

          Yeah, holy shit. I mean in 1992 it was one thing for RMS to talk like one day the world would be running the hurd. By 2015 it was a footnote, and RMS an afterthought.

          • Doctor Memory says:
            2

            As I understand it, the way this particular circle is squared amongst the cult members is, of course, that there is no such thing as "Linux", it certainly does not have a primary author/coordinator and enormous user base who are indifferent to the larger goals of the cult, it certainly does not have an enormous amount of typically bundled userland software that is distributed under non-GPL licenses (like, you know, X11). 

            There is only ZUUL, er, GNU, and some odd Finnish dude was kind enough to contribute a kernel for it which wasn't really necessary because Hurd was going to be awesome and it was almost ready but they grudgingly accepted the favor and isn't it great how everyone runs GNU now?

  5. Chris W. says:

    What window manager is he using in the video? It appears to be using a Motif toolkit but it doesn't look fancy enough to be 4Dwm, and I don't know what other Motif-based WMs were popular back then.

    • James C. says:
      1

      It’s probably mwm, the Motif Window Manager. The workstation looks like a Sun something judging by the keyboard, so it would probably default to olwm (Open Look Window Manager), but it would have come with twm also because X11 and then mwm if you had the Motif libraries installed. 4Dwm was derived from mwm.

      • Chris W. says:

        Thanks! I had forgotten that mwm existed and I had not heard of olwm. I was a big fan of 4Dwm* but I didn't use IRIX until the late 1990s.

        * 4Dwm was the best UNIX desktop environment of its time. I will not be taking any questions.

        • 1

          LOLing a little about somebody asking "What's that Motif-looking thing?" and getting "It's Motif."

          I guess you have to about be a grandpa by now to have seen Motif, the original, in the wild.

          • Chris W. says:

            I'm glad you had a chuckle at my expense during this walk down amnesia lane!

            • TBH I didn't know what 4Dwm was until after I wrote that, and misinterpreted your comment to mean you were somebody younger who only had used *ix in the form of Linux. You were higher-end than I was: I was using SysV/386 on PCompatibles. Made of relatively high-end parts but no comparison to an Iris. IIRC we paid extra for Motif so we could show a face that looked more like a real workstation. But that was early '90s: I think by late '90s pure Motif was out of style.

              • Chris W. says:

                Ahh, gotcha. What I meant was that I didn't use 4Dwm (and IRIX) until ~1999 or so, meaning I wouldn't recognize an older Motif-based environment if I saw one.

                I think Red Hat 3.0.3 was the first real distro I used, which Google says was ~1996.

  6. CaseyD says:

    At that time: Kee on Symbolics machines, and emerging Kappa/Prokappa on Sun & windows
    Kee of course was a giant tangle of Lisp. Kappa was based on... hmm SabreC with its own
    object and rule system derived from the Kee/Lisp world.

  7. Pakraticus says:

    One of my creations has a 30th anniversary this year... and I'm not sure when because I can't find the newgroup message.
    So, a "Dear Lazyweb, can someone remind me when I sent the newgroup message for alt.transgendered?"
    The newgroup messages used to be on ibiblio and ISC... I can't find them anymore.

  8. Taz Mainiac says:
    1

    I remember using lemcas/Energize back in 1995 (might have been later - 1996/7?) time frame.  I mainly  remember it blew regular emacs away.  I also recall using Clearcase for revision control, and Purify for run-time memory checking.   

  9. A. Wilcox says:

    > The events that Emacs knows about are not X events, but are a generalization of them, so that Emacs can eventually be ported to different window systems.

    Gave me a horrible idea for…wait for it… Waylemacs.  The l can be for Wayland or lemacs!  …please don't kill me.

    Also, that free trial password needs to be published to the Archive for reasons.

    • Einar says:

      I think GNU Emacs 29 will run natively on Wayland (at least it is my understanding that they are working to achieve this). I wasn't around in the FOSS world in the 90s (used Macs back then), but I have read up on the Emacs split recently. One thing I don't get is what has happened to XEmacs in recent years. What's the reason it has faded away and former users and developers of it now use GNU Emacs? Is it just too much work for a too small community to keep it alive, has GNU Emacs changed to become more like XEmacs (not just having a GUI, but how that is implemented) or are there other reasons?

  • Previously