From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: ludovic.courtes@laas.fr (Ludovic =?iso-8859-1?Q?Court=E8s?=) Newsgroups: gmane.lisp.guile.devel Subject: Re: Guile + Boehm GC: First Remarks Date: Fri, 02 Jun 2006 14:41:44 +0200 Organization: LAAS-CNRS Message-ID: <877j3zlofr.fsf@laas.fr> References: <877j42r32u.fsf@laas.fr> <87irnmt0nk.fsf@ossau.uklinux.net> <87ac8x8g35.fsf@laas.fr> <87lksgqv1r.fsf@ossau.uklinux.net> NNTP-Posting-Host: main.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable X-Trace: sea.gmane.org 1149252193 9399 80.91.229.2 (2 Jun 2006 12:43:13 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Fri, 2 Jun 2006 12:43:13 +0000 (UTC) Cc: Guile-Devel Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Fri Jun 02 14:43:11 2006 Return-path: Envelope-to: guile-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by ciao.gmane.org with esmtp (Exim 4.43) id 1Fm8yx-0002ct-DZ for guile-devel@m.gmane.org; Fri, 02 Jun 2006 14:42:27 +0200 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Fm8yw-0003VE-TI for guile-devel@m.gmane.org; Fri, 02 Jun 2006 08:42:26 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1Fm8yq-0003Td-UY for guile-devel@gnu.org; Fri, 02 Jun 2006 08:42:21 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1Fm8yq-0003Su-3s for guile-devel@gnu.org; Fri, 02 Jun 2006 08:42:20 -0400 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Fm8yp-0003So-Uf for guile-devel@gnu.org; Fri, 02 Jun 2006 08:42:19 -0400 Original-Received: from [140.93.0.15] (helo=laas.laas.fr) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA:32) (Exim 4.52) id 1Fm95I-00075i-O5 for guile-devel@gnu.org; Fri, 02 Jun 2006 08:49:01 -0400 Original-Received: by laas.laas.fr (8.13.6/8.13.4) with SMTP id k52CgETt026812; Fri, 2 Jun 2006 14:42:16 +0200 (CEST) Original-To: Neil Jerram X-URL: http://www.laas.fr/~lcourtes/ X-Revolutionary-Date: 14 Prairial an 214 de la =?iso-8859-1?Q?R=E9volution?= X-PGP-Key-ID: 0xEB1F5364 X-PGP-Key: http://www.laas.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 821D 815D 902A 7EAB 5CEE D120 7FBA 3D4F EB1F 5364 X-OS: powerpc-unknown-linux-gnu Mail-Followup-To: Neil Jerram , Guile-Devel In-Reply-To: <87lksgqv1r.fsf@ossau.uklinux.net> (Neil Jerram's message of "Fri, 02 Jun 2006 01:07:44 +0100") User-Agent: Gnus/5.110004 (No Gnus v0.4) Emacs/21.4 (gnu/linux) X-Spam-Score: 0 () X-Scanned-By: MIMEDefang at CNRS-LAAS X-MIME-Autoconverted: from 8bit to quoted-printable by laas.laas.fr id k52CgETt026812 X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Developers list for Guile, the GNU extensibility library" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Errors-To: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.lisp.guile.devel:5960 Archived-At: Hi, Neil Jerram writes: > ludovic.courtes@laas.fr (Ludovic Court=E8s) writes: > >> unless otherwise specified, every register and every piece of memory >> is scanned for pointers, not only the heap (however, only heap >> regions allocated via the GC allocation routines are scanned). > > I wonder if this is the main cause of BGC not performing as well as > Guile's own GC? BGC ends up scanning more memory than Guile, of course. However... > Guile's own GC knows, for example, that there's no > point scanning the characters of a string, or the elements of a > uniform vector, and that SMOB memory looks after itself. Does BGC > give us any way to feed this kind of information in, so that BGC could > avoid such scans in the same way Guile's GC does? ... As explained in my original post, BGC provides a function to allocate memory that must _not_ be scanned (namely `GC_MALLOC_ATOMIC'). In my post, I mentioned that I wrapped this feature in `scm_gc_malloc_pointerless ()' so that one can use it, for instance, to allocate stringbufs. BGC also allows one to describe more complex "scanning" patterns. For instance, in order to implement weak-car pairs, one has to tell BGC to not scan the first word of the pair (since otherwise the object pointed to by the car would always remain unreachable). But please, relax about performance, we still haven't run any meaningful benchmark. ;-) Thanks, Ludovic. _______________________________________________ Guile-devel mailing list Guile-devel@gnu.org http://lists.gnu.org/mailman/listinfo/guile-devel