[gambit-list] Bug involving syntax-rules and c-lambda

Marc Feeley feeley at iro.umontreal.ca
Wed Feb 4 09:32:24 EST 2009


On 4-Feb-09, at 7:45 AM, Marc Feeley wrote:

> I'll see what I can do to extend the portable syntax-case
> implementation for Gambit.  Last time I tried I remember a problem in
> the bootstrap process.

Here's a solution.  At the end of lib/psyntax73.ss add these lines:

(define-syntax future
   (syntax-rules ()
     ((_ rest ...) (##future rest ...))))

(define-syntax c-define-type
   (syntax-rules ()
     ((_ rest ...) (##c-define-type rest ...))))

(define-syntax c-declare
   (syntax-rules ()
     ((_ rest ...) (##c-declare rest ...))))

(define-syntax c-initialize
   (syntax-rules ()
     ((_ rest ...) (##c-initialize rest ...))))

(define-syntax c-lambda
   (syntax-rules ()
     ((_ rest ...) (##c-lambda rest ...))))

(define-syntax c-define
   (syntax-rules ()
     ((_ rest ...) (##c-define rest ...))))

(define-syntax declare
   (syntax-rules ()
     ((_ rest ...) (##declare rest ...))))

(define-syntax namespace
   (syntax-rules ()
     ((_ rest ...) (##namespace rest ...))))

Then

   % cd lib
   % ./syntax-case-build

This will generate from psyntax73.ss a new "syntax-case.scm" file with  
support for some of the Gambit specific special forms.  Then "make  
install" from the root.

I have tested this very lightly.  I'd like to know if you encounter  
any problems before I commit this patch.

Marc




More information about the Gambit-list mailing list