From owner-freebsd-arch@FreeBSD.ORG Tue Mar 28 10:06:28 2006 Return-Path: X-Original-To: freebsd-arch@freebsd.org Delivered-To: freebsd-arch@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id A8B3816A400 for ; Tue, 28 Mar 2006 10:06:28 +0000 (UTC) (envelope-from andrew@areilly.bpc-users.org) Received: from omta05sl.mx.bigpond.com (omta05sl.mx.bigpond.com [144.140.93.195]) by mx1.FreeBSD.org (Postfix) with ESMTP id 08FE643D46 for ; Tue, 28 Mar 2006 10:06:27 +0000 (GMT) (envelope-from andrew@areilly.bpc-users.org) Received: from areilly.bpc-users.org ([141.168.4.160]) by omta05sl.mx.bigpond.com with ESMTP id <20060328100626.SLSH25409.omta05sl.mx.bigpond.com@areilly.bpc-users.org> for ; Tue, 28 Mar 2006 10:06:26 +0000 Received: (qmail 88510 invoked by uid 501); 28 Mar 2006 10:07:35 -0000 Date: Tue, 28 Mar 2006 21:07:35 +1100 From: Andrew Reilly To: Poul-Henning Kamp Message-ID: <20060328100735.GA87799@gurney.reilly.home> References: <20060328091153.GC961@turion.vk2pj.dyndns.org> <61460.1143539700@critter.freebsd.dk> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <61460.1143539700@critter.freebsd.dk> User-Agent: Mutt/1.4.2.1i Cc: Jason Evans , freebsd-arch@freebsd.org Subject: Re: Proposed addition of malloc_size_np() X-BeenThere: freebsd-arch@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion related to FreeBSD architecture List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Mar 2006 10:06:28 -0000 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