From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: "Julian Graham" Newsgroups: gmane.lisp.guile.devel Subject: Re: pass at srfi-89 implementation Date: Sun, 25 May 2008 01:08:23 -0400 Message-ID: <2bc5f8210805242208q503c33bfj96cb1f1a8fb2594d@mail.gmail.com> References: <2bc5f8210805022037t73e3e30ay835ad4814e308397@mail.gmail.com> <87od72gidl.fsf@gnu.org> <2bc5f8210805191328o33656ab2ue07daf5f372c6610@mail.gmail.com> <87ve198hxr.fsf@gnu.org> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Trace: ger.gmane.org 1211692124 29130 80.91.229.12 (25 May 2008 05:08:44 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 25 May 2008 05:08:44 +0000 (UTC) Cc: guile-devel@gnu.org To: "=?ISO-8859-1?Q?Ludovic_Court=E8s?=" Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Sun May 25 07:09:24 2008 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 1K08Tv-0004QZ-Ac for guile-devel@m.gmane.org; Sun, 25 May 2008 07:09:19 +0200 Original-Received: from localhost ([127.0.0.1]:40708 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1K08TA-0004sy-E8 for guile-devel@m.gmane.org; Sun, 25 May 2008 01:08:32 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1K08T5-0004r1-CU for guile-devel@gnu.org; Sun, 25 May 2008 01:08:27 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1K08T3-0004pX-W8 for guile-devel@gnu.org; Sun, 25 May 2008 01:08:26 -0400 Original-Received: from [199.232.76.173] (port=40879 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1K08T3-0004pK-KX for guile-devel@gnu.org; Sun, 25 May 2008 01:08:25 -0400 Original-Received: from fg-out-1718.google.com ([72.14.220.156]:47124) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1K08T3-0005gU-6i for guile-devel@gnu.org; Sun, 25 May 2008 01:08:25 -0400 Original-Received: by fg-out-1718.google.com with SMTP id l26so1030020fgb.30 for ; Sat, 24 May 2008 22:08:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; bh=CNAuLS6l+WNeqLUHd5n2HJK+u+Vp6pGeBJTWM7D02aA=; b=IGfR2OxtXgymAj+6Nf4XfOGo8SoWCXiSTHORZuvDqDMdBhURzAgONroY0oKmZw2ARD9eD8oRtgABxu8ln0c22LcKCtogUS5xjxYJOpg2R/K7qYLqN8U596IOGLqeCEbDWm5ujKXtnOBpJVf04o90S+yVtFWmEEg8yav1VvunoaQ= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=q3gA7Vd9Tvt2r6W4yrJG1JGJSnLDREnN3HqmtayMTiOZgUPnmL9b10ipQuBtPyFyBCRHLKV7iA0yFQSDIpBVSifDIky5lRYgGuFdW+uoav2rguKfFPanA9OdDThBthgutiQJGjxdqBtTGAJIDEETDSPzZ19romCh8ZASrQypeqQ= Original-Received: by 10.82.123.8 with SMTP id v8mr54570buc.22.1211692103848; Sat, 24 May 2008 22:08:23 -0700 (PDT) Original-Received: by 10.82.100.3 with HTTP; Sat, 24 May 2008 22:08:23 -0700 (PDT) In-Reply-To: <87ve198hxr.fsf@gnu.org> Content-Disposition: inline X-detected-kernel: by monty-python.gnu.org: Linux 2.6 (newer, 2) 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:7266 Archived-At: > It looks like the license terms would indeed allow us to do that. I'm > not sure whether there's a precedent including non-LGPL SRFI code as is, > though. Well, it wouldn't have to be 100% as-is -- aside from adding the module declaration, there are some things I wouldn't mind tweaking a bit, such as where the argument-parsing helper functions get declared / exported. > Besides, we'd have to check whether the reference implementation, which > targets Gambit's compiler, is suitable for Guile. Having done a very quick and dirty integration, I can say that it passes the rudimentary test suite I pulled from the SRFI document. In terms of whether it's suitable... well, Marc claims his implementation isn't even suitable for Gambit, which apparently has a native implementation: "To give a rough idea of the speed improvement, a trivial procedure with 10 optional named parameters and called with 5 named parameters runs 14 times faster and generates no garbage when the Gambit compiler's builtin optional parameter passing mechanism is used." I haven't benchmarked it against `(ice-9 optargs)', but it seems like our options are: Use the reference implementation, optimizing it as best we can for the peculiarities of Guile; write our own implementation in Scheme or C that would exist in parallel with `(ice-9 optargs)'; or enhance `(ice-9 optargs)' to allow a dependent implementation such as the one I submitted to work correctly. What do you think? Regards, Julian