News for hackers. Stuff that matters.
Re:Lisp CPU by eudox on Tuesday June 24, 2014 @02:02PM (#7939286)
I'm pretty sure it was already done in the Symbolics Lisp Machine.
Re:Lisp CPU by rjsw on Tuesday June 24, 2014 @02:20PM (#7939421)
Also in the LMI K-machine [1].

I got part way through building type checking hardware to use with Franz Lisp on 68k CPUs. Franz Lisp allocated objects of a single type in each page and the 68k had function code pins that meant you could tell whether a bus read was for data or instruction fetch, the idea was that I would modify the compiler to read a latched type value just after a Lisp object had been read into a register.

[1] http://fare.tunes.org/tmp/emergent/kmachine.htm

Re:Lisp CPU by nealabq on Tuesday June 24, 2014 @05:04PM (#7940636)
As I recall (and I may have some of this wrong) the Symbolics 3600 machines used a few extra bits to tag types like 32bit_int, 32bit_float, and pointer_to_object. And when operating on integers, the cpu would assume it had 32bit_ints and would raise a low-level signal to interrupt the operation if the operands were something else (like bignums).

There were also extra bits in each word for cdr-coding lists, which was a way to internally implement a list as an array.

There might have also been an extra bit for GC, maybe for mark-and-sweep.

Re:Lisp CPU by wes-exp on Tuesday June 24, 2014 @02:10PM (#7939347)
Yet again in the Lisp world, the past is more futuristic than the present.