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 <j...@fastmail.fm> 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 > > j...@fastmail.fm > > > > > > _______________________________________________ > > Chicken-users mailing list > > Chicken-users@nongnu.org > > https://lists.nongnu.org/mailman/listinfo/chicken-users > _______________________________________________ Chicken-users mailing list Chicken-users@nongnu.org https://lists.nongnu.org/mailman/listinfo/chicken-users