Path: csiph.com!eternal-september.org!feeder.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: Paul Rubin Newsgroups: comp.lang.forth Subject: Re: Implementing lisp in Forth. Chapter 4. Date: Sun, 11 Sep 2016 01:28:18 -0700 Organization: A noiseless patient Spider Lines: 23 Message-ID: <878tuyj0wt.fsf@jester.gateway.pace.com> References: <87fupfo6xl.fsf@jester.gateway.pace.com> <87twdpj6uo.fsf@jester.gateway.pace.com> <87poockfdj.fsf@jester.gateway.pace.com> <477e457f-e57c-4b58-b20c-1c757dfa1791@googlegroups.com> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: mx02.eternal-september.org; posting-host="590ea01354cf4bcbcd857d7ebbd88128"; logging-data="28410"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+3Y5YkAMDVyz4jM/ln5/VG" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux) Cancel-Lock: sha1:2GryIFC9Fi+5Xhr0o5YR2n3CGx8= sha1:Ite85rXtDdUD/pg9/mv+EG44sDA= Xref: csiph.com comp.lang.forth:50841 franck.bensusan@gmail.com writes: >> ("BIBOP", BIg Bag Of Pages) that I think have fallen into disuse. > This is how Oforth allocates objects... > Is there any drawback for this method to not be used anymore ? > Not having fragmentation is better than needing a defragmentation > phase, no ? Well, I'm realizing my picture comes from talking to old-time Lisp guys since I've never used a BIBOP system myself. But my impression is that BIBOP was used mostly in the era of expensive memory and comparatively small address spaces. For example, the PDP-10 had 18-bit addresses (256k of 36-bit words = about 1MB of address space) and Maclisp on the '10 used BIBOP. The upper 9 bits of the 18-bit address indexed into a 512-entry segment table, and the segments were 512 words each. (Thanks to Alan Bawden for explaining this to me on comp.lang.lisp a while back). Once you get to 64-bit or even 32-bit addresses, those tables start getting large and it's easier to put tags in the objects. Lisp programs also have a fair number of arbitrary-sized objects like strings and arrays, so there's still fragmentation issues. Jones et al's book probably says more about this. I might check it when I get a chance.