Subject: Re: Common Lisp on VMS?
From: rpw3@rpw3.org (Rob Warnock)
Date: Tue, 06 Apr 2004 07:47:51 -0500
Newsgroups: comp.lang.lisp
Message-ID: <XJ6dneZ9QpxqO-_dRVn-vg@speakeasy.net>
Cameron MacKinnon  <cmackin+nn@clearspot.net> wrote:
+---------------
| Sashank Varma wrote:
| > After I wrote my initial I reply, I began wondering about
| > why DEC was so supportive of Common Lisp in its early days. ...
| 
| I thought that the PDP and VAX instruction sets were considered best for 
| implementing Lisp. If your architecture is the best for a language, 
| supporting the growth of that language is just smart marketing.
| 
| Can anyone confirm, and maybe point to some specifics in the instruction 
| set which were big wins?
+---------------

Dunno 'bout the VAX, but the PDP-10 instruction set architecture was
*wonderful* for Lisp:

- 36-bit words with 18-bit addresses, so a cons cell fit in a single word.

- Hardware stack manipulation instructions (*any* register [but 0] could
  host a stack, though #o17 was the default convention), including stack-
  based subroutine call/return (PUSHJ/POPJ).

- Almost every possible combination of half-word instructions, with
  indexing. For example, assuming register "T0" has a Lisp object pointer
  in it, here's an instruction sequence for CADDAR (leaves result in T0):

	HLRZ	T0,(T0)
	HRRZ	T0,(T0)
	HRRZ	T0,(T0)
	HLRZ	T0,(T0)


-Rob

-----
Rob Warnock			<rpw3@rpw3.org>
627 26th Avenue			<URL:http://rpw3.org/>
San Mateo, CA 94403		(650)572-2607