From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Neil Jerram Newsgroups: gmane.lisp.guile.devel Subject: Re: array handles and non-local exits Date: Sun, 19 Jul 2009 21:04:49 +0100 Message-ID: <87ws64a17i.fsf@arudy.ossau.uklinux.net> References: <49dd78620809151317i3421081ey3337d678477046ab@mail.gmail.com> <87ljxsv80p.fsf@gnu.org> <49dd78620809171232n745ac8ecgd2c3936989ce723b@mail.gmail.com> <87myi5g98g.fsf@gnu.org> <49dd78620809180217p21c36802me305270af14a6f95@mail.gmail.com> <87my7j8jr6.fsf@gnu.org> <873a99ftap.fsf@gnu.org> <87ljmxsgxp.fsf@gnu.org> <874otkbv5j.fsf@gnu.org> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable X-Trace: ger.gmane.org 1248033912 301 80.91.229.12 (19 Jul 2009 20:05:12 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 19 Jul 2009 20:05:12 +0000 (UTC) Cc: guile-devel@gnu.org To: ludo@gnu.org (Ludovic =?iso-8859-1?Q?Court=E8s?=) Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Sun Jul 19 22:05:04 2009 Return-path: Envelope-to: guile-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1MScd4-0002CP-Pa for guile-devel@m.gmane.org; Sun, 19 Jul 2009 22:05:03 +0200 Original-Received: from localhost ([127.0.0.1]:44330 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MScd4-0003oV-2K for guile-devel@m.gmane.org; Sun, 19 Jul 2009 16:05:02 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MScd1-0003oP-J6 for guile-devel@gnu.org; Sun, 19 Jul 2009 16:04:59 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MSccw-0003no-Pr for guile-devel@gnu.org; Sun, 19 Jul 2009 16:04:59 -0400 Original-Received: from [199.232.76.173] (port=37317 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MSccw-0003nl-Cg for guile-devel@gnu.org; Sun, 19 Jul 2009 16:04:54 -0400 Original-Received: from mail3.uklinux.net ([80.84.72.33]:36579) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1MScct-0007EB-IL; Sun, 19 Jul 2009 16:04:51 -0400 Original-Received: from arudy (host86-152-99-133.range86-152.btcentralplus.com [86.152.99.133]) by mail3.uklinux.net (Postfix) with ESMTP id 953D81F6B05; Sun, 19 Jul 2009 21:04:50 +0100 (BST) Original-Received: from arudy.ossau.uklinux.net (arudy [127.0.0.1]) by arudy (Postfix) with ESMTP id 688DF38021; Sun, 19 Jul 2009 21:04:49 +0100 (BST) In-Reply-To: <874otkbv5j.fsf@gnu.org> ("Ludovic =?iso-8859-1?Q?Court=E8s?= =?iso-8859-1?Q?=22's?= message of "Fri\, 10 Jul 2009 14\:05\:28 +0200") User-Agent: Gnus/5.11 (Gnus v5.11) Emacs/22.2 (gnu/linux) X-detected-operating-system: by monty-python.gnu.org: GNU/Linux 2.4-2.6 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:8891 Archived-At: ludo@gnu.org (Ludovic Court=E8s) writes: > Hey, > > Andy Wingo writes: > > [...] > >> You can't just write functions that return values, you have to contort >> code to store temporaries and then release and then return. You have >> to write paired statements. If you call a user function, you really >> should set up a dynwind, which conses, and contorts your code even >> further. > > Right, that one has to set up a dynwind for nothing sucks. > >> Array_handle_release is a bad idea. > > Fair enough. FWIW, I agree (I think with both of you) that `we might need it in future' is not a good argument, but that API compatibility is. > The doc would need to be revised (again). > > (It would have helped in this discussion if we knew the rationale for > this API. I couldn't find any trace of discussions around it.) I'm pretty sure it was about allowing C code to efficiently access and modify uniform vector contents, but at the same time supporting operations which might require the underlying storage to be reallocated. The latter operations could include enlarging an existing vector, or copy-on-write. But AFAICT we never implemented either of those ideas, and the existing code never changes the underlying storage of a vector. Regards, Neil