9 ms·
Lisp Machines
- jf 15y agoI ended up purchasing a Symbolic MacIvory because of this blog post. They aren't cheap! I wrote about my experiences learning to use Genera here: http://genera.posterous.com/ http://genera.posterous.com/ - which reminds me, I need to spend more time with Genera.
- _exec 15y agoWhat's the advantage of using a MacIvory against using the emulation method in the linked article? Aren't the physical machines slow by today's standards (+cots of maintenance, failed hardware etc)?
- jf 15y agoThe primary advantage for me is that purchasing a MacIvory gave me a legal license to run Genera. This is important to me because I work for Microsoft, a company that pays my salary by selling licenses to software. I've also been told that a lot of things didn't work or were missing in the version of Genera that people can find online. I can't speak to the validity of that statement though.
- mark_l_watson 15y agoI used a Xerox 1108 Lisp Machine from about 1982 through 1989 - a great developer experience, and not a bad platform to sell software products on. That said, I encourage people who want to hack/learn Lisp to stick with one of the modern setups like: Common Lisp (with Emacs or a complete free IDE setup like ClozureCL), Clojure (with Emacs or other IDE), Racket, or, ...., etc. I would much rather see people spend time learning a Lisp language rather than fiddling with very old environments.
- jf 15y agoWhile I agree with you in principle on not "fiddling with very old environments", I had to try out Genera after hearing from two separate people that Lisp Machines were the best computers they ever used. One guy was a VP at Yahoo. The other guy is a core contributor to the Java VM. Both of these guys are hardcore Emacs users, running Mac OS X, and have in-depth knowledge of POSIX. It was hard for me to write them off as people who just didn't understand how modern computers work. Fiddling with Genera has been a very worthwhile endeavor because of how much I've learned from it. What have I learned? Well, so far I've learned that Genera is basically a case study showing that Richard Stallman's fears were actually well founded. I also learned a tremendous amount about an important but obscure part of the history of computing, a history that I think is actually a vision of what our future is. So, yes, by all means, hack on and learn on one of the modern setups that Mark suggests above. Once you've done that, look me up and I'd be more than happy to give you a tour of Genera on my MacIvory.
- masklinn 15y ago> What have I learned? Well, so far I've learned that Genera is basically a case study showing what Richard Stallman's fears were actually well founded. Could you expand on that?
- jf 15y agoSure! This is actually a good reminder that I should write something more in-depth on this topic, since most of what I think I know is based in large parts on oral-history with some conjecture. Lisp Machines started at MIT, some of that code is actually available online now (http://www.heeltoe.com/retro/mit/mit_cadr_lmss.html http://www.heeltoe.com/retro/mit/mit_cadr_lmss.html). That software became the basis of two companies: Symbolics and then later, Lisp Machines Inc (LMI). This Wikipedia entry does a good job at explaining the impact this part of history had on RMS: http://en.wikipedia.org/wiki/Lisp_Machines#Folklore_about_LMI http://en.wikipedia.org/wiki/Lisp_Machines#Folklore_about_LM... So, here is where the history of Genera is non-existent or murky. Yes, you can download a torrent of Genera. But how do you obtain a legal license Genera? Who actually owns the IP to Genera? In learning the answers to those questions, I was left with even more respect for RMS and an amusing, if not ironic, anecdote showing how his vision for the future turned out to be correct. > How do you obtain a legal license Genera? You purchase a copy of Open Genera for the DEC Alpha for $5000 from David Schmidt. > Who actually owns the IP to Genera? John Mallery (http://www.csail.mit.edu/user/926 http://www.csail.mit.edu/user/926). He's the most recent owner. Before he got the IP, it was owned by a series of law firms and ex-Symbolics employees. Why do I find this this amusing? Well, the software that RMS worked so hard to protect and that ultimately helped "inspire" him to start GNU has been relegated to the footnotes of history. Meanwhile, GNU software is used on millions of machines.
- jpdoctor 15y ago> rather than fiddling with very old environments. I worked on Symbolics machines (rms, please forgive me). I even fixed a bunch of the wire-wrapped original LMs from before Symbolics. I remember it being earth-shattering at the time (self-documenting? whoa) but I confess I'm curious how much was just the transition from TOPS-20 etc to a completely new single-user environment. All stuff from the dark ages really. I'd probably fire it up out of nostalgia if nothing else. BTW: Dan Weinreb's post ("Why did symbolics fail?" linked in the OP) has migrated to here: http://danweinreb.org/blog/why-did-symbolics-fail http://danweinreb.org/blog/why-did-symbolics-fail
- jf 15y agoI'm 29. The first used Genera a few years ago. The "Help" button the Symbolics machines blew me away. I've used software with great built-in help. It's impressive to see it system-wide. Another thing that I still find really impressive is how (aside from the bootloader) all of Genera is written in Lisp and can be edited, live, while the system is running. A lot of the things that I see people doing with JavaScript feel very familiar. It's exciting to see how the things that people are doing with JavaScript are approaching the capabilities of Genera, but in a way that will be much more accessible to the "kids these days".
- javascriptlol 15y agoI don't see the connection between Lisp machines and JavaScript. JavaScript (in the browser at least) is a heavy-weight C++ system utilising huge amounts of library and operating system code with some weak scripting capabilities a the bottom. What relation does that have to Lisp machines or Smalltalk type environments where everything is built in a simple an transparent manner?
- jf 15y agoYou're right, it's a weak connection right now. I could be wrong, but I'm seeing JavaScript getting pushed "down" the stack. People are doing things like implementing the DOM in pure JavaScript. I'm also very interested in seeing what people are doing with Emscripten, ClojureScript, swank-js, and the like. Yes, we don't have a Lisp or Smalltalk like environment for JavaScript. Not yet. Given how widely supported JavaScript is though, I could see us getting there organically? Not sure.
- ChuckMcM 15y ago"I would much rather see people spend time learning a Lisp language rather than fiddling with very old environments." As a general rule learning is better than repeating, however there is value in those old environments. Primarily for a long time software was getting more complex than hardware could support and so there are a lot of adaptations that were made in 'old environments' to support better performance on under-performant hardware. As we enter the 'post PC' era and get a wider spread of machine capabilities in the market place, it is always useful to have a few 'tricks' in your pocket for getting better performance out of your system. Knowing that you got those tricks from systems that are now > 20 years old provides a pretty good patent defense if you get trolled. Especially if you can show that you, being reasonably skilled in the art, learned to do what you did using exemplars that are greater than 20 yrs old. That is a strong case for prior art.
- EdwardCoffin 15y agoI consider my time with Genera to be more akin to archeology and code reading. I look through it for ideas and for examples. How did a group of really smart programmers build an environment that they really liked using? What ideas and techniques did they use? Those are the questions I am looking for answers to. When I actually do any Lisp programming for its own sake I use RMCL or something like that.
- geoffhill 15y agoIf only hardware research and optimization had gone the way of stack machines instead of register machines. I can only imagine the world of Lisp machines, Forth machines and APL/J Machines that would exist if the hardware more closely matched our expressive languages.
- wingo 15y agoMuch love for lisp machines, but stack machines do not offer any performance advantages over register machines, and actually make optimization much harder. See Ungar's 1993 thesis on the Self 93 compiler for an early realization of this, where he examines what microcode / register windows / etc could do for him, and how he was able to do just as well with registers.
- lispm 15y agoSeveral RISC chips for Lisp Machines were under development. Xerox, Symbolics (Sunstone), University of California (SPUR), had projects for that. The AI winter then killed it. The Lisp Machines then were ported as emulators to ALPHA (Symbolics), SPARC (Interlisp) and other processors. "Also, note that the Sunstone project did address many of the competitive concerns, especially the continual mention of Sun in this analysis. The Sunstone project included a chip design for a platform meant to run Unix and C, as well as Lisp. It was a safe C exploiting the tagged architecture, for example, to allow checking of array bounds. And the Sunstone project was being produced on-time. But to back up the analysis of Symbolics’ priorities, it was cancelled as we were getting the first chips back from LSI Logic."
- rayiner 15y agoIt wasn't stack machines so much as it was RISC and UNIX. The RISC philosophy basically took every instruction not needed for efficiently implemented C and punted it to software, even if it could be efficiently implemented in hardware. Then UNIX took pretty much every machine feature not needed for running C programs and hid them from software. Take, for example, read and write barriers for GC. On a modern system with virtual memory, each memory access is run through a TLB which has among other things protection and page out bits. That could easily be supplemented with a couple of extra bits to implement GC barriers. While we were getting greedy, we could even add a lightweight trap mechanism of handling the associated faults in user space, at the user's privilege level, to avoid the expense of transitioning into kernel privilege level (indeed Intel and AMD implement all the necessary functionality in their virtualization extensions).
- kruhft 15y agoI'm trying it out, but I can't seem to get past the "Please type the date and time:". Does anybody know the format that it expects to keep from dropping into the debugger? I'm assuming that it should be getting the date and time from the network but that doesn't seem to be working either, although I'm not using a dedicated host like in the article. I'll do further exploration on a dedicated machine at a later date.
- ScottBurson 15y agoYou tried "MM/DD/YYYY hh:mm:ss"? Uh, maybe add " PDT" or whatever is appropriate for your timezone. (It's been a couple of years since I booted my LispM, but I used to know how to do this :-)
- kruhft 15y agoI tried your format, and every time I get Error: Unable to set calendar clock TIME:SET-CALENDAR-CLOCK Arg 0 (TIME:NEW-TIME): 354054620 and then drop into a debugger. Are there any steps I could do when it can't set the time to get the rest of the system to boot? Edit: the emulator is outputting: arithmeticexception; file stub/output10 line 215 when I enter the time, so there must be an emulation error of some sort.
- ScottBurson 15y agoAre you typing the year as "2012" rather than "12"? The universal time you have shown here decodes as 3/22/1911, which is close enough to 100 years ago to make me wonder. Either that, or you copied the display contents by hand and left off a digit.
- kruhft 15y agoYes, I did type in 2012 and I did copy the display contents by hand due to no copy/paste from the terminal window. I think I got it right, but I might have missed a digit.
- EdwardCoffin 15y agoKent Pitman wrote a pretty good posting in a comp.lang.lisp thread, in which he described some of the tight integration that made Genera so good: http://groups.google.com/group/comp.lang.lisp/browse_thread/thread/5e9bd4c05db129b9/b2c0190dc30c3e5f?lnk=st&rnum=1#b2c0190dc30c3e5f http://groups.google.com/group/comp.lang.lisp/browse_thread/... . This was one of the things that convinced me to buy one (I have a MacIvory Model II). I've found it a bit difficult to get into, mainly because I don't have the time to spend immersed in it long enough to make the things I've learned stick. I also suspect that a number of the real benefits come from things that aren't immediately apparent, you really need to work with people who know the environment to show you these tricks. I know that's the way I learned Smalltalk - if I'd learned it from books on my own, I'd probably have not realized all the advantages that could be gotten from such an interactive environment. If anyone can suggest any features like the two that Pitman describes above that I (or anyone else) could investigate, that would be great.
- scottjad 15y agoIt's too bad no one has released a virtual machine with all the configuration steps already done and the system up and running so people can easily try it out.
- kinleyd 15y agoThat is something which looks pretty doable. It would be worth taking a crack at it.
- _exec 15y agoWhy hasn't anyone ported (Open)Genera to modern architectures? What are the barriers?
- sedachv 15y agoHere's the least-hairy part of the disk drivers in the LMI source code: http://code.google.com/p/jrm-code-project/source/browse/trunk/lambda/io/new-disk.lisp http://code.google.com/p/jrm-code-project/source/browse/trun... I haven't looked at any Genera source code, but I suspect it is similarly hairy. It's a lot of work.
- _exec 15y agoOutch..are there any other Lisp OSes? I remember finding a list sometime ago but none of them showed any promise AFAIK.
- kruhft 15y agoMovitz is one: http://common-lisp.net/project/movitz/movitz.html http://common-lisp.net/project/movitz/movitz.html and http://trac.common-lisp.net/movitz http://trac.common-lisp.net/movitz for where to get the code.
- metaguri 15y agoHairy, especially because most of us haven't done systems programming like that, but how cool is it to see "(without-interrupts ..."??
- ScottBurson 15y agoThat's what OpenGenera is. Originally it ran on the Alpha. Brad Parker ported it to AMD64.
- mrbill 15y agoThis just reminds me that I really need to get the MacIvory board set that I bought from David Betz up and running... I have the old Mac, the AEK II with template, and so forth, just not the TIME. :(
- kinleyd 15y ago@apgwoz: Thanks for sharing. Going to take a crack at it, and also try to make a VirtualBox OpenGenera appliance. No eta though, but the aspiration exists.