From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: ludo@gnu.org (Ludovic =?iso-8859-1?Q?Court=E8s?=) Newsgroups: gmane.lisp.guile.user Subject: Re: the future of Guile Date: Wed, 05 Dec 2007 23:56:36 +0100 Message-ID: <8763zczr6j.fsf@chbouib.org> References: NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: ger.gmane.org 1196895474 24993 80.91.229.12 (5 Dec 2007 22:57:54 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Wed, 5 Dec 2007 22:57:54 +0000 (UTC) To: guile-user@gnu.org Original-X-From: guile-user-bounces+guile-user=m.gmane.org@gnu.org Wed Dec 05 23:58:02 2007 Return-path: Envelope-to: guile-user@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1J03Bn-0006Bf-AZ for guile-user@m.gmane.org; Wed, 05 Dec 2007 23:57:59 +0100 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1J03BW-0005YD-J4 for guile-user@m.gmane.org; Wed, 05 Dec 2007 17:57:42 -0500 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1J03BR-0005Xd-Ey for guile-user@gnu.org; Wed, 05 Dec 2007 17:57:37 -0500 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1J03BO-0005U5-LK for guile-user@gnu.org; Wed, 05 Dec 2007 17:57:36 -0500 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1J03BO-0005Tj-D0 for guile-user@gnu.org; Wed, 05 Dec 2007 17:57:34 -0500 Original-Received: from main.gmane.org ([80.91.229.2] helo=ciao.gmane.org) by monty-python.gnu.org with esmtps (TLS-1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1J03BN-00050h-Tt for guile-user@gnu.org; Wed, 05 Dec 2007 17:57:34 -0500 Original-Received: from list by ciao.gmane.org with local (Exim 4.43) id 1J03BJ-00039Q-7t for guile-user@gnu.org; Wed, 05 Dec 2007 22:57:29 +0000 Original-Received: from adh419.fdn.fr ([80.67.176.9]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Wed, 05 Dec 2007 22:57:29 +0000 Original-Received: from ludo by adh419.fdn.fr with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Wed, 05 Dec 2007 22:57:29 +0000 X-Injected-Via-Gmane: http://gmane.org/ Original-Lines: 48 Original-X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: adh419.fdn.fr X-URL: http://www.laas.fr/~lcourtes/ 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: i486-pc-linux-gnu User-Agent: Gnus/5.11 (Gnus v5.11) Emacs/22.1 (gnu/linux) Cancel-Lock: sha1:e1FWHlIZOchnr7UCwDB4O1bV7QA= X-detected-kernel: by monty-python.gnu.org: Linux 2.6, seldom 2.4 (older, 4) X-BeenThere: guile-user@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: General Guile related discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: guile-user-bounces+guile-user=m.gmane.org@gnu.org Errors-To: guile-user-bounces+guile-user=m.gmane.org@gnu.org Xref: news.gmane.org gmane.lisp.guile.user:6345 Archived-At: Hi Marco, "Marco Maggi" writes: > Woah! I had not noticed that the binding is created in (oop > goops). He he. ;-) > SCM > my_func (SCM arg) > { > client_data_t data = (client_data_t)SCM_SMOB_DATA(arg); > > /* Do something with "data" but do not access "arg" > anymore. With compiler optimisations the reference > to the SMOB can disappear. > > If here I call scm_* functions, GC collects the > SMOB removing the carpet from under my feet and > if I access "data": crash. > > So: > */ > scm_remember_upto_here_1(arg); > } Hmm, right (except if ARG was passed on the stack, which must not be the case with most ABIs). OTOH, when `my_func ()' is a subr called by the evaluator, there definitely are live references to ARG in the heap (argument list) and probably on the stack too (local variables in `CEVAL ()'), which is why it rarely hurts in practice... >>Records are too common to be removed from the core: almost >>everyone would end up loading that module. > > This surprises me. I thought that they were a rarely used > feature because they are unschemey :-) and because of the > existence of GOOPS. Well, maybe my statement was too strong. At least I do use records a lot. Any programming language needs vector-like data structures, and records provide a convenient interface to them in many scenarios. Thanks, Ludovic. _______________________________________________ Guile-user mailing list Guile-user@gnu.org http://lists.gnu.org/mailman/listinfo/guile-user