chicken-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Chicken-users] Strange problems with args egg


From: Jim Ursetto
Subject: Re: [Chicken-users] Strange problems with args egg
Date: Sun, 4 Aug 2013 08:43:14 -0500

Did you try my patch?  You don't have to rewrite anything, it's a bug in the 
args egg.

On Aug 4, 2013, at 2:13 AM, Jonathan Chan <address@hidden> wrote:

> Thank you for the help! This is definitely a very interesting language to 
> learn.
> 
> On 08/03/2013 09:06 AM, John Cowan wrote:
>> Jonathan Chan scripsit:
>> 
>>> Here is the smallest amount of args-using Chicken that will cause the
>>> problem:
>>> 
>>> (define-syntax test
>>>   (syntax-rules ()
>>>     ((test)
>>>      (begin
>>>        (define opts (list (args:make-option (h help) #:none "display
>>>        this text" (print "foo"))))
>>>        (write (args:parse (command-line-arguments) opts))))))
>>> 
>> [...]
>> 
>>> The strange thing is that h and help seem to have turned into ("h390"
>>> "help391"), causing problems.
>> This is not a Chicken-specific problem, but a general problem
>> with non-hygienic macros.  You are using the non-hygienic macro
>> "args:make-option" within a hygienic macro.  The syntax-rules transformer
>> doesn't know that "h" and "help" are being used literally here (because
>> it cannot tell what args:make-option does), so it systematically renames
>> them to avoid collisions.
>> 
>>> Is there something I need to change to fix the problem? Sorry for many
>>> misunderstandings.
>> You can rewrite test as a non-hygienic (explicit renaming or implicit
>> renaming) macro.
>> 
> 
> -- 
> Jonathan Chan
> address@hidden
> 
> 
> _______________________________________________
> Chicken-users mailing list
> address@hidden
> https://lists.nongnu.org/mailman/listinfo/chicken-users




reply via email to

[Prev in Thread] Current Thread [Next in Thread]