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. -- If I read "upcoming" in [the newspaper] John Cowan once more, I will be downcoming http://www.ccil.org/~cowan and somebody will be outgoing. co...@ccil.org _______________________________________________ Chicken-users mailing list Chicken-users@nongnu.org https://lists.nongnu.org/mailman/listinfo/chicken-users