Earlier this month, Henrik Hjelte (of Stix.to fame) announced a Lisp meeting in Stockholm. Currently being located in Linköping, I decided to join!
Second time ever in Stockholm, I eventually found the meeting location (in the iQube building), where I met up with Linus, and later greeted by Henrik and Mats who where already there. Henrik had kindly provided the poor starving lot with yummy burger-thingies (even of the vegetarian variety, yay!), so with burgers (and beer), we were all set for today's theme: Retro Lisp.
OpenGenera and Symbolics
Retro today means Lisp machines. The type of machines that had custom hardware to execute Lisp code faster, and an entire operating system written in Lisp (what else?). This was before AI Winter, when there were military contracts with lots of money involved...
OpenGenera is an emulation of a Symbolics Lisp machine (which, by the way, was the first company to register a .com domain!) The emulation itself is being run in a virtual Linux instance (which itself is run under OS X). Still a lot faster than your average Symbolics machine, though!
At first boot, you have a generic system based on the standard image. So the first thing one does is to define the machine parameters, which is done using the command Define Site. Remember that this is a Lisp Machine, so the operating system is, too, written in Lisp, and lives in a Lisp image. After the installation has been customized by the user, the "world" is saved (all data structures and code dumped to disk), using the command Save World.
When the world is saved, the system is shut down so you can boot using the new image. This is a 55M file on a 64-bit system, which is comparable to the 28M file you get on a 32-bit system when calling SAVE-LISP-AND-DIE on SBCL.
Back then -- this was in the mid-eighties -- GUIs weren't very common, so this was really a workstation, compared to the text terminals you had at the time. To the right of the Window menu, you see a preview of what you are going to do, and by selecting Do It, the screen changed to match the preview.
For all commands, be it keyboard commands or mouse commands, context-sensitive help text is displayed at the bottom of the screen. We played around with the system, but due to a misconfiguration somewhere, the documentation browser would crash when opening up a chapter, and we couldn't go through a tutorial text.
Wrapping Up
People started dropping off, one by one, and finally there was only me left. So, I did that too, and eventually found my way back to the train station and my train back to Linköping -- where I got seated in the middle of a party of travelers headed for Germany. We had a really enjoyable chat which probably would've continued if it wasn't for the fact that we got to my stop some two-odd hours later...
In conclusion, I had a really great day! I especially want to thank Henrik for arranging the meeting and providing with food & drinks, and to the others for the nice company! I'm looking forward to more get-togethers. Meeting new people and experiencing new things is fun.
...and kids, always remember:
Mouse-R is smart!