From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Andy Wingo Newsgroups: gmane.lisp.guile.devel Subject: Re: redoing SCM representation in 2.2 Date: Sat, 14 May 2011 11:47:39 +0200 Message-ID: References: <87ei42qmmf.fsf@netris.org> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: dough.gmane.org 1305366477 28181 80.91.229.12 (14 May 2011 09:47:57 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Sat, 14 May 2011 09:47:57 +0000 (UTC) Cc: guile-devel To: Mark H Weaver Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Sat May 14 11:47:52 2011 Return-path: Envelope-to: guile-devel@m.gmane.org Original-Received: from lists.gnu.org ([140.186.70.17]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1QLBRw-00062l-4k for guile-devel@m.gmane.org; Sat, 14 May 2011 11:47:52 +0200 Original-Received: from localhost ([::1]:56213 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QLBRu-00017W-QY for guile-devel@m.gmane.org; Sat, 14 May 2011 05:47:50 -0400 Original-Received: from eggs.gnu.org ([140.186.70.92]:48913) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QLBRr-00017Q-R7 for guile-devel@gnu.org; Sat, 14 May 2011 05:47:48 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QLBRq-0004BD-FZ for guile-devel@gnu.org; Sat, 14 May 2011 05:47:47 -0400 Original-Received: from a-pb-sasl-sd.pobox.com ([64.74.157.62]:58281 helo=sasl.smtp.pobox.com) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QLBRq-0004B2-Cp for guile-devel@gnu.org; Sat, 14 May 2011 05:47:46 -0400 Original-Received: from sasl.smtp.pobox.com (unknown [127.0.0.1]) by a-pb-sasl-sd.pobox.com (Postfix) with ESMTP id D40A33D95; Sat, 14 May 2011 05:49:49 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=pobox.com; h=from:to:cc :subject:references:date:in-reply-to:message-id:mime-version :content-type; s=sasl; bh=ax/EEkqF1fulXqSXIG27e2Anrvk=; b=l89NWI AU2QmU8chVAaxjKN/Tjg6W3b0c21IUklBU8B5JXbQUf2lpCoaTutojFApj1JPAn8 nMPuvdcBix60uhYH02dEOkcghoI8wha4NMQTrlAjf22F/m8biCW/KTUBV7oLjnai Qd57OIolEFFUdou3gTkNZJxQ/eEnHAVzM25Pw= DomainKey-Signature: a=rsa-sha1; c=nofws; d=pobox.com; h=from:to:cc :subject:references:date:in-reply-to:message-id:mime-version :content-type; q=dns; s=sasl; b=pLoMUPFaUjRwyAUiZRTprJjkSN/aTL+7 lS+T3CEBzoxTjxx0zoqLSzI4HH+tf48Xo994fdt4tNtjUntyhyaJ4U3ndMjMJ9/Y snLWbNkNkQL/iqLvEP5pr8NpiuhoxWIMT2ae0n7q6SZtCq728J3vFk0um5fadTlB LhGfIVgfAl8= Original-Received: from a-pb-sasl-sd.pobox.com (unknown [127.0.0.1]) by a-pb-sasl-sd.pobox.com (Postfix) with ESMTP id C13663D89; Sat, 14 May 2011 05:49:48 -0400 (EDT) Original-Received: from unquote.localdomain (unknown [90.164.198.39]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by a-pb-sasl-sd.pobox.com (Postfix) with ESMTPSA id 2FE503D88; Sat, 14 May 2011 05:49:46 -0400 (EDT) In-Reply-To: <87ei42qmmf.fsf@netris.org> (Mark H. Weaver's message of "Fri, 13 May 2011 18:08:56 -0400") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.2 (gnu/linux) X-Pobox-Relay-ID: 81B7F03E-7E0F-11E0-BDA0-BBB7F5B2FB1A-02397024!a-pb-sasl-sd.pobox.com X-detected-operating-system: by eggs.gnu.org: Solaris 10 (beta) X-Received-From: 64.74.157.62 X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Developers list for Guile, the GNU extensibility library" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Original-Sender: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.lisp.guile.devel:12490 Archived-At: Hi Mark, On Sat 14 May 2011 00:08, Mark H Weaver writes: > Andy Wingo writes: >> I'm looking at new SCM representation and tagging possibilities in 2.2. >> Read the whole mail please, as it's a little complicated. > > Unfortunately I don't have time to write a proper response right now, > but on 32-bit architectures, I expect that this will nearly double the > memory usage for typical programs, where pointers are by far the most > common object. You are right that it would be a negative point, though I don't think that it's as bad as you say; there are potential savings in immediate foreign pointers, shaving off type words from some heap values, etc. However, I realized that this isn't going to work on 32-bit, and for an unexpected reason: GC. The problem is that the low 32-bits can be interpreted as a pointer, so you need to tag those bits to make the payloads of immediate values like integers or characters not confusable with pointers, and that takes away any potential advantage (wider fixnum range for example). So, bummer. NaN-boxing is probably best on 64-bit machines though. Andy -- http://wingolog.org/