Date: Tue, 28 Mar 2006 21:07:35 +1100 From: Andrew Reilly <andrew-freebsd@areilly.bpc-users.org> To: Poul-Henning Kamp <phk@phk.freebsd.dk> Cc: Jason Evans <jasone@freebsd.org>, freebsd-arch@freebsd.org Subject: Re: Proposed addition of malloc_size_np() Message-ID: <20060328100735.GA87799@gurney.reilly.home> In-Reply-To: <61460.1143539700@critter.freebsd.dk> References: <20060328091153.GC961@turion.vk2pj.dyndns.org> <61460.1143539700@critter.freebsd.dk>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Mar 28, 2006 at 11:55:00AM +0200, Poul-Henning Kamp wrote: > In message <20060328091153.GC961@turion.vk2pj.dyndns.org>, Peter Jeremy writes: > > > >In an ideal world, a pointer would be an [address, size] pair (or even > >[size, address, type] tuple) so that any the bounds (and type) can be > >verified by anything that wants to. (The iAPX432 tried this). > > The first computer to actually _do_ this was Linn's "Rekursiv" computer, > which had the microcode manage in-memory objects, including swapping > to/from backing store. > > http://www.brouhaha.com/~eric/retrocomputing/rekursiv/ Are you sure that was the first? I'm pretty sure that IBM's "Future System" (FS), and System/36 and AS/400 that came from it probably got there sooner. I think that Burroughs A-series mainframes did much the same thing too. They might not have had type tags, but they were constrained and had sizes. And don't forget, the Intel 286 learned it's segment tricks from iAPX432. Generally pretty unpleasant environments for C, IMO, but good for the other languages of the day. Lisp and smalltalk (Xerox) machines probably count, too. Dunno where the hardware versions come with respect to the rekursiv in time, though. Today, the Java and .NET runtimes have all that you could want, from this sort of functionality. It seems kind of broken to be trying to retro-fit it into C. I've just had a big argument in c.l.c/c.a.e about the issue, and I consider that I lost it, so I'm a bit sensitive about it... -- Andrew
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20060328100735.GA87799>