From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Mark H Weaver Newsgroups: gmane.lisp.guile.devel Subject: Re: syntax-local-binding Date: Fri, 20 Jan 2012 15:26:17 -0500 Message-ID: <87sjjaunme.fsf@netris.org> References: <874nvw99za.fsf@pobox.com> <87zkdo7uf5.fsf@pobox.com> <87sjjbvs12.fsf@pobox.com> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: dough.gmane.org 1327091236 16818 80.91.229.12 (20 Jan 2012 20:27:16 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Fri, 20 Jan 2012 20:27:16 +0000 (UTC) Cc: guile-devel To: Andy Wingo Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Fri Jan 20 21:27:12 2012 Return-path: Envelope-to: guile-devel@m.gmane.org Original-Received: from lists.gnu.org ([140.186.70.17]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1RoL3H-0002nk-Vm for guile-devel@m.gmane.org; Fri, 20 Jan 2012 21:27:12 +0100 Original-Received: from localhost ([::1]:41132 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RoL3H-00007W-9N for guile-devel@m.gmane.org; Fri, 20 Jan 2012 15:27:11 -0500 Original-Received: from eggs.gnu.org ([140.186.70.92]:45978) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RoL3E-00007R-OC for guile-devel@gnu.org; Fri, 20 Jan 2012 15:27:09 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RoL3D-0006wF-Mc for guile-devel@gnu.org; Fri, 20 Jan 2012 15:27:08 -0500 Original-Received: from world.peace.net ([96.39.62.75]:59480) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RoL3D-0006wB-FY for guile-devel@gnu.org; Fri, 20 Jan 2012 15:27:07 -0500 Original-Received: from c-98-216-245-176.hsd1.ma.comcast.net ([98.216.245.176] helo=yeeloong) by world.peace.net with esmtpsa (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.69) (envelope-from ) id 1RoL38-0008KI-EG; Fri, 20 Jan 2012 15:27:02 -0500 In-Reply-To: <87sjjbvs12.fsf@pobox.com> (Andy Wingo's message of "Thu, 19 Jan 2012 12:41:13 +0100") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.92 (gnu/linux) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-Received-From: 96.39.62.75 X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Developers list for Guile, the GNU extensibility library" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Original-Sender: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.lisp.guile.devel:13605 Archived-At: Andy Wingo writes: > `lexical' > A lexically-bound variable. The value is a unique token (in > the sense of `eq?') identifying this binding. > > `macro' > A syntax transformer, either local or global. The value is > the transformer procedure. Ironically, `syntax-local-binding' renders the current simple implementation strategy of `the-environment' inadequate, because identifier-syntax is no longer sufficient to simulate a lexical. More importantly, this exposing of internal binding representations will interfere with our ability to change the representations later. In particular, I was hoping to change the binding representation of `syntax-rules' macros so that they are serializable. In particular, they would be represented by the `syntax-rules' form itself (the same one that psyntax currently passes to `primitive-eval' to produce the transformer procedure). A weak-key hash table would cache the compiled transformer procedures. This would allow (the-environment) to capture locally-bound `syntax-rules' macros. Unfortunately, `syntax-local-binding', as currently documented, now makes this impossible. Thanks, Mark