Live data from Hacker News

Lisp Machine Manual (1984)

hanshuebner.github.io

131–140 of 165 posts

Re: Lisp Machine Manual (1984)

#131
post #129
post #127

Earlier quoted context omitted.

I am well aware of the architecture of the MIT CADR, LMI Lambda and TI Explorer, Symbolics lispms less so but they are not the subject of this thread. I have written CADR microcode recently. None of the features you list are constrained by the architecture of the hardware, they are just conventions of the software VM running on it. Would you suggest that the X86 is a tagged CPU architecture just because SBCL or a JVM…

If the X86 would provide SBCL with such instructions and data, it would be a tagged architecture, but it doesn't. The SBCL compiler outputs conventional X86 instructions. The Lisp Machine compiler OTOH generates instructions for a mostly stack machine, which runs on the CPU in microcode.

The Lisp compiler described by this manual can output microcode directly.

Please don't assume that all Lisp Machines were the same as Symbolics ones.

Re: Lisp Machine Manual (1984)

#132
post #95

Earlier quoted context omitted.

"Only the insane write code without tab or space indentation" ^ um, and who exactly suggested that? Certainly not me. And if you think lisp style languages are generally written without tab or space indention, then you clearly haven't read much lisp code. I thought you said you tried Clojure? Clojure's data literals use curly braces (maps, sets), square brackets (vectors) and parens (lists). I think that's a good thi…

Criticising lisp was a mistake, and I should have already ripcorded my way out of this discussion thread already, but you make some good points, so I'll respond at my own peril: I didn't suggest you implied that lisp isn't written without indentation. Yes I have coded with lisp, and I know they use other syntax than just parens. Parens serve an important purpose with lisps, just like the semi colon does in c language…

"parens ... make them optional ... and I would argue (again at my peril) that if it was optional in a lisp-style language as well, that would be great."

^ making parens optional in a lisp would IMHO make everything more complicated at best.

Someone else in this thread mentioned SRFI 49. Personally I don't find it's syntax...

  define
   fac x
   if
    = x 0
    1
    * x
      fac
       - x 1
... to be any easier to read or understand than the usual scheme syntax:

  (define (fac x)
   (if (= x 0)
     1
     (* x 
      (fac (- x 1)))))
In fact I much prefer the latter. I see absolutely no advantage to making the parens optional, and I see lots of disadvantages to removing them. Especially when it comes to implementing something like lisp macros, I think removing parens would greatly complicate that and open the door for tons of ambiguity, as well as making it far too easy to misinterpret what the code was doing.

I agree with sedachv. Your "mistake" is not that you are criticizing lisp. It's just that those of us here that know lisp don't see your criticism as being valid, and we do not see your suggestions as being something that would make lisp better, but on the contrary would make it much worse.

Re: Lisp Machine Manual (1984)

#133
post #128

Earlier quoted context omitted.

That's correct. The microprocessor CPUs were not that good at running Lisp. A boost came with the 68020+MMU and the 68030 with integrated MMU. Those had large enough address spaces, were fast enough and had good performing GCs. Memory was very expensive. The 1984 Mac started with 128kb RAM... A 1988 Mac IIx with 8MB was usable.

My memory is that in 1988 8MB was a luxurious amount of RAM, that machine would cost 2 to 4 thousand dollars. Most people were still using machines with memory measured in kilobytes. Even serious business users were usually limited to 640KB.

It was luxurious, no doubt.

The 68030 Mac IIx started slightly below $8000 with 4 MB RAM and no disk. I can't remember the prices, but I would expect that another 4MB would have cost up to $2k.

Re: Lisp Machine Manual (1984)

#134
post #131
post #129

Earlier quoted context omitted.

If the X86 would provide SBCL with such instructions and data, it would be a tagged architecture, but it doesn't. The SBCL compiler outputs conventional X86 instructions. The Lisp Machine compiler OTOH generates instructions for a mostly stack machine, which runs on the CPU in microcode.

The Lisp compiler described by this manual can output microcode directly. Please don't assume that all Lisp Machines were the same as Symbolics ones.

Please don't assume that the Lisp compiler on some Symbolics could not output micro code. It could, IIRC.

But it was not what a Lisp developer normally would do, he/she would use the compiler in such a way that it outputs the usual machine code, not micro code.

Re: Lisp Machine Manual (1984)

#135
post #30

Earlier quoted context omitted.

I don't even disagree on the infix math point, really. I do find it awkward that it makes up a small fraction of what you actually do in most programs. Seems odd that such a minorly applicable point holds such high regard. Sadly, I assert that this being the main irritation of LISP is one more of fashion than it is of actual applicability. Sad, because I do have pride in our communities to want them to be above fashi…

On lisp hate: back in the mid-/late-90s on Slashdot it was en vogue to make jokes about lisp. I'm fairly certain it originated in the spirit of the Unix haters handbook, in that it was in-group therapy for the initiated. But then I think it just became a thing that won karma points, and thus was repeated as a truism. I remember working the university computer helldesk in the late nineties and repeating such a joke to…

There was no mid-90's Slashdot. It started in late 1997. I should know, I'm user #1484. :)

Re: Lisp Machine Manual (1984)

#136
post #134
post #131

Earlier quoted context omitted.

The Lisp compiler described by this manual can output microcode directly. Please don't assume that all Lisp Machines were the same as Symbolics ones.

Please don't assume that the Lisp compiler on some Symbolics could not output micro code. It could, IIRC. But it was not what a Lisp developer normally would do, he/she would use the compiler in such a way that it outputs the usual machine code, not micro code.

Computer Architecture is not defined by what a Lisp developer normally would do.

What hardware features of the CADR do you feel provide support for GC and tagged words ?

I have built the CADR microcode from the same source to use both 24 and 25 bit pointers, it is just software.

Re: Lisp Machine Manual (1984)

#137

Earlier quoted context omitted.

On lisp hate: back in the mid-/late-90s on Slashdot it was en vogue to make jokes about lisp. I'm fairly certain it originated in the spirit of the Unix haters handbook, in that it was in-group therapy for the initiated. But then I think it just became a thing that won karma points, and thus was repeated as a truism. I remember working the university computer helldesk in the late nineties and repeating such a joke to…

There was no mid-90's Slashdot. It started in late 1997. I should know, I'm user #1484. :)

Mid-late-: the average of 1995 and 1999? :-p

And #5648, but I was a lurker for some time before a friend convinced me to register.

EDIT: but yes, lisp hate meme was probably firmly late 90s

Re: Lisp Machine Manual (1984)

#138
post #136
post #134

Earlier quoted context omitted.

Please don't assume that the Lisp compiler on some Symbolics could not output micro code. It could, IIRC. But it was not what a Lisp developer normally would do, he/she would use the compiler in such a way that it outputs the usual machine code, not micro code.

Computer Architecture is not defined by what a Lisp developer normally would do. What hardware features of the CADR do you feel provide support for GC and tagged words ? I have built the CADR microcode from the same source to use both 24 and 25 bit pointers, it is just software.

Whether microcode is hardware or software is blurred. Remember, when microcode was introduced in the 1960's, it was used for implementing the same thing in software that other versions of the same computer family did in hardware. With microcode, a vendor could offer different machines at different price/performance points. A sequential circuit can implement an algorithm; microcode can implement an algorithm.

Re: Lisp Machine Manual (1984)

#139
post #136

Earlier quoted context omitted.

Computer Architecture is not defined by what a Lisp developer normally would do. What hardware features of the CADR do you feel provide support for GC and tagged words ? I have built the CADR microcode from the same source to use both 24 and 25 bit pointers, it is just software.

Whether microcode is hardware or software is blurred. Remember, when microcode was introduced in the 1960's, it was used for implementing the same thing in software that other versions of the same computer family did in hardware. With microcode, a vendor could offer different machines at different price/performance points. A sequential circuit can implement an algorithm; microcode can implement an algorithm.

The CADR is an example of a computer that implements a virtual machine in software, what makes it special ?

Re: Lisp Machine Manual (1984)

#140

Earlier quoted context omitted.

> I don't think awareness of Lisp was evenly distributed among people developing on PCs in the time period when the network advantage was obtained. My assertion is that you're looking at the wrong decade for C's network effects. You should be looking at the PDP-11 decade, not the PC decade. And in the PDP-11 decade, I believe there was much wider awareness of Lisp. (I was a kid then, so that's just my impression. I d…

> And in the PDP-11 decade, I believe there was much wider awareness of Lisp. (I was a kid then, so that's just my impression. I don't actually know.) I was not around but from the literature it seems Lisp trolls existed even back then - for example Ted Nelson's Computer Lib / Dream Machines contains some very negative and very mistaken statements about Lisp, and it was published in 1974. > Lisp allocates all the tim…

> Lisp trolls existed even back the

Recently while reading, Appel's Compiling with Continuations, I read some mistaken claims about Lisp and scope, one doesn't have to be a troll, which requires intent, to make ignorant claims about Lisp, parsing or any subject. Although the amount of ridiculous arguments from people who clearly haven't used it (or at most used it very briefly) does make one's blood boil at times.

Post reply on HN