[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
on the issue of the "ATOMness" of hunks
- To: PSZ@MIT-MC
- Subject: on the issue of the "ATOMness" of hunks
- From: Richard Mlynarik <MLY@MIT-MC>
- Date: Thu, 16 Aug 84 05:49:00 GMT
- Cc: ALAN@MIT-MC, GSB@MIT-MC, JonL.pa@XEROX, franz-friends@Berkeley, smh@MIT-EMS
- In-reply-to: Msg of 14 Aug 1984 16:37-EDT from Peter Szolovits <PSZ>
- Original-date: 16 August 1984 01:49-EDT
From: Peter Szolovits <PSZ>
I have a small quarrel with Alan Bawden's statement that "hunks never
being atoms in Maclisp" is a universally-agreed bug. There are indeed
useful structures that one would like to build in Lisp that act as CONS
cells (i.e., CAR and CDR are applicable), but that can have further
structure. I have sorely missed such objects in Lisp Machine Lisp and
NIL, where flavor-instances are always atomic, when I wanted to build
Brand X (interned "list structure" and universal property lists). In
Maclisp, I could do this using hunks, though even that was not
completely right because I wanted to be able to disallow RPLACA and
RPLACD while allowing CAR and CDR, and this was hard, given the hunk
abstraction. I would, however, love to have non-atomic flavor-instances
The MIT lisp machine system makes some attempt to "support" this sort
of thing, by sending :CAR, :CDR, etc messages to instances. The result
is that you get an error about an unclaimed message, rather than one
about an attempt to take the car of a non-nil atom. LISTP and CONSP
both still return NIL when applied to an instance. The way to get RPLACA
(or SETF of CAR), etc to not work is simply to not define methods for doing
these operations...
Is is not really clear to me what the value of such is, unless you get tired
of typing too many "(SEND"'s.