Newsgroups: comp.arch,comp.lang.scheme,comp.lang.lisp
Path: cantaloupe.srv.cs.cmu.edu!das-news.harvard.edu!news2.near.net!MathWorks.Com!europa.eng.gtefsd.com!howland.reston.ans.net!pipex!warwick!uknet!festival!edcogsci!jeff
From: jeff@aiai.ed.ac.uk (Jeff Dalton)
Subject: Re: Validating/using all 2^lgn address bits
Message-ID: <Cvo20o.I01@cogsci.ed.ac.uk>
Sender: usenet@cogsci.ed.ac.uk (C News Software)
Nntp-Posting-Host: bute.aiai.ed.ac.uk
Organization: AIAI, University of Edinburgh, Scotland
References: <345h8a$98d@peaches.cs.utexas.edu> <CvI4vJ.70v@apollo.hp.com> <Cvntov.9B1@dcs.gla.ac.uk>
Date: Mon, 5 Sep 1994 17:02:48 GMT
Lines: 32
Xref: glinda.oz.cs.cmu.edu comp.arch:52779 comp.lang.scheme:9702 comp.lang.lisp:14472

In article <Cvntov.9B1@dcs.gla.ac.uk> bos@dcs.gla.ac.uk (Bryan O'Sullivan) writes:
>sommerfeld@apollo.hp.com (Bill Sommerfeld) writes:
>
>>With respect to using a subfield of the address as a type tag: given a
>>sufficiently large sparse address space, you can "just do it" by
>>allocating different primitive types in different parts of the address
>>space.
>
>This has been done for quite a long time, even on machines with fairly
>small address spaces.  The allocation technique is known as BIBOP, for
>``Big Bag O' Pages'', and seems to have mostly died out (due in part to
>the historical lack of support in Unix for attaching memory to random
>chunks of address space).

Franz Lisp, the BSD Lisp, uses BIBOP.  Some objects also have a header
that includes a type.  (E.g. struct instances.)

>The only current Lispy implementation I know of that uses BIBOP typing
>is Chez Scheme from Indiana University [...]

Franz Lisp still exists and is usable with FreeBSD and NetBSD
and (presumably) other 4.3 (soon to be 4.4) -based systems.
It is not strongly restricted as to hardware since I have a 
compiler for it that compiles to C.  However, there's still a 
small amount of assembly code in the 386 port and some work 
would be needed to get it working on incompatible hardware.

(If you want a copy of Franz for 386 BSD systems, I think it's
mentioned in the FAQ these days so I won't repeat the information
here.  Should add it to my WWW page at some point...)

-- jeff
