[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: |
Tue, 6 Aug 2013 09:22:10 -0500 |
No problem. The fix is now in args 1.4.4.
On Aug 5, 2013, at 21:54, Jonathan Chan <address@hidden> wrote:
> Sorry for the delayed reply - I missed your message for some reason. The
> patch does work! Thanks for the help and for the useful egg.
>
> --
> Jonathan Chan
>
> On Sun, Aug 4, 2013, at 06:43 AM, Jim Ursetto wrote:
>> 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
>>