From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Michael Lucy Newsgroups: gmane.lisp.guile.devel Subject: PEG Parser Updates/Questions Date: Wed, 28 Jul 2010 00:13:44 -0500 Message-ID: NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 X-Trace: dough.gmane.org 1280294058 22524 80.91.229.12 (28 Jul 2010 05:14:18 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Wed, 28 Jul 2010 05:14:18 +0000 (UTC) To: guile-devel@gnu.org Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Wed Jul 28 07:14:14 2010 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.69) (envelope-from ) id 1Odyy5-0000Hq-Ua for guile-devel@m.gmane.org; Wed, 28 Jul 2010 07:14:14 +0200 Original-Received: from localhost ([127.0.0.1]:39640 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Odyy5-0004tj-03 for guile-devel@m.gmane.org; Wed, 28 Jul 2010 01:14:13 -0400 Original-Received: from [140.186.70.92] (port=60339 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Odyy0-0004sh-66 for guile-devel@gnu.org; Wed, 28 Jul 2010 01:14:09 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1Odyxz-0004YR-4r for guile-devel@gnu.org; Wed, 28 Jul 2010 01:14:08 -0400 Original-Received: from mail-vw0-f41.google.com ([209.85.212.41]:56104) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Odyxz-0004YN-2H for guile-devel@gnu.org; Wed, 28 Jul 2010 01:14:07 -0400 Original-Received: by vws16 with SMTP id 16so4499582vws.0 for ; Tue, 27 Jul 2010 22:14:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:mime-version:sender:received:from:date :x-google-sender-auth:message-id:subject:to:content-type; bh=OqapPJOg6DTSrSXszaUlu8OVAiKyN40gIUYTcRqBzjA=; b=Nwh+7d3Anyqavx6NN3VbodJi4K+TJWlfbUdApP/vWcfnRSP1SKlxkAyhcI95RBfAuD F0/ojgkEAelFCxgbV15wHkeT7mb1LVPdqEZNBAERDUDosHWlB7lufqNlhRLgw7OSVMVV 6KeIGOLGriHbQKEhUcFLFIsgAwffOu+UY4GSQ= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:from:date:x-google-sender-auth:message-id :subject:to:content-type; b=mg0NzX0Nm2AcUDTkp5H4HZBF+Ua/hGVkCW0fx7CGu5YCRr4QdHGt+fiXnXpQmJccrq 0XMJ+hfWr162WTman83kCZhPGIYtebngkRHSglgDbsF68TB8j4UAZAYr+J7pw1zdF9wQ k7cDXCMSSqYlSSzfSI4j/94Ci/xlEx8fFCOvA= Original-Received: by 10.220.63.12 with SMTP id z12mr5803129vch.44.1280294045241; Tue, 27 Jul 2010 22:14:05 -0700 (PDT) Original-Received: by 10.220.77.9 with HTTP; Tue, 27 Jul 2010 22:13:44 -0700 (PDT) X-Google-Sender-Auth: lp_9AG1EgN-bl2ElUdHk43BDNos X-detected-operating-system: by eggs.gnu.org: GNU/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:10740 Archived-At: I've officially eliminated the last define-macro expression. However, I get the feeling that things may not be exactly as desired. The original program made extensive use of functions in building the macros, and I originally tried to replace these with macros. This turned out to be a little difficult to debug, however (read: I was unable to make the code actually work). I eventually abandoned this and just made datum->syntax calls. On the one hand, this works. I also find it easier to debug, and I think it looks cleaner. The downside is that one doesn't get all the same benefits of referential transparency, so I still have gensyms in the functions etc. Is this a problem? If so, I can definitely replace everything with macros, but I might not be able to do that and get everything else done by the GSOC project deadline. I'd like to hang around after the project is officially done from Google's point of view to polish things up, so I could also do it then. Another question about module namespaces: I have some syntax that I'd like to be available to code generated by macros in my module, but which I'd rather not export to the user (to avoid clobbering their functions). Is there a standard way of doing this? I can't seem to find anything in the module documentation regarding giving namespaces to things in modules except for :renamer, which has to be done by the user--the only options appear to be not exporting it at all, or exporting it straight into the user's namespace. The best fix I can think of is naming the syntax things the user is unlikely to ever take (or maybe using gensyms to make sure it isn't a name they take).