Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!uunet!husc6!cmcl2!brl-adm!adm!preece%mycroft@gswd-vms.Gould.COM From: preece%mycroft@gswd-vms.Gould.COM (Scott E. Preece) Newsgroups: comp.unix.wizards Subject: Re: pointer alignment when int != ch Message-ID: <9090@brl-adm.ARPA> Date: Tue, 1-Sep-87 10:39:51 EDT Article-I.D.: brl-adm.9090 Posted: Tue Sep 1 10:39:51 1987 Date-Received: Sat, 5-Sep-87 03:25:48 EDT Sender: news@brl-adm.ARPA Lines: 27 From: Dave Cornutt > > In fact, I know of an architecture where it may return different > > results for pointers to the same two objects at different times: the > > Symbolics Lisp Machine. It has a garbage collector that moves objects > > around in memory, so the addresses may change, and therefore the > > difference may change. > > I must be missing something here. Admittedly, I don't know anything > about this machine, but it looks like this garbage collection would make > pointers useless, since there is no guarantee that, when you dereference > a pointer, the object that you're referring to will be in the same place > that it was when you obtained the address. ---------- What you're missing is that the Lisp machine can find everything that points to the objects and update all those pointers to point to the new location. One of the moderately painful parts of writing the runtime part of a Lisp system for a conventional machine (like, say, ours) is that you have to register your C variables so that the garbage collector can find them, when they have addresses of Lisp objects in them. -- scott preece gould/csd - urbana uucp: ihnp4!uiucdcs!ccvaxa!preece arpa: preece@Gould.com