robust unhygienic macros
Chris Hanson
(21 Aug 2022 22:29 UTC)
|
Re: robust unhygienic macros
Ray Dillinger
(22 Aug 2022 00:59 UTC)
|
Re: robust unhygienic macros
Marc Nieper-Wißkirchen
(22 Aug 2022 06:17 UTC)
|
Re: robust unhygienic macros
Ray Dillinger
(23 Aug 2022 02:05 UTC)
|
Re: robust unhygienic macros
Chris Hanson
(27 Aug 2022 21:49 UTC)
|
Re: robust unhygienic macros Marc Nieper-Wißkirchen (28 Aug 2022 15:20 UTC)
|
Re: robust unhygienic macros
Arthur A. Gleckler
(28 Aug 2022 20:51 UTC)
|
Re: robust unhygienic macros
Chris Hanson
(29 Aug 2022 08:25 UTC)
|
Re: robust unhygienic macros
Marc Nieper-Wißkirchen
(29 Aug 2022 15:42 UTC)
|
Re: robust unhygienic macros
Chris Hanson
(29 Aug 2022 20:43 UTC)
|
Re: robust unhygienic macros
Marc Nieper-Wißkirchen
(07 Nov 2022 13:44 UTC)
|
Chris, thank you for the report! @Arthur A. Gleckler Could you perform this minor change by hand? Thanks, Marc Am Sa., 27. Aug. 2022 um 23:49 Uhr schrieb Chris Hanson <xxxxxx@chris-hanson.org>: > > Nit: the code from Note 2: > > (define-syntax foo > (er-macro-transformer > (lambda (x r c) > `(,(r loop) (exit ,(cadr x)))))) > > Has a typo: ,(r loop) should be ,(r 'loop) > > On Sunday, August 21, 2022 11:16:50 PM PDT Marc Nieper-Wißkirchen wrote: > > Am Mo., 22. Aug. 2022 um 00:29 Uhr schrieb Chris Hanson <xxxxxx@chris- > hanson.org>: > > > I’m not familiar with the term "robust unhygienic macros” and an internet > > > search didn’t reveal any definitions. > > > > The term was coined by myself for the purpose of SRFI 211. > > > > > Is there a definition of this term, or better yet, a paper? > > > > Unfortunately no. > > > > What I mean by a "robust unhygienic macro" is an unhygienic macro that > > even works when the unhygienic macro becomes part of the body of a > > second macro expansion. > > > > Please see "Note 2" under "Explicit-renaming macro" for an example. > > > > > I’m a little confused because the SRFI claims that explicit-renaming > > > macros > > > can produce "robust unhygienic macros” yet syntactic-closure macros > > > cannot. > > > However, explicit-renaming is virtually identical to “reverse” syntactic- > > > closure macros, which are syntactic-closure macros with the definition and > > > use environments flipped. > > > > ER macros implemented with SC (syntactic closures) are indeed not > > "robust" (according to my findings). SRFI 211 describes a variation of > > ER (implemented with marks & substitutions) that can be used to define > > unhygienic macros that are "robust". The variation of ER is not 100% > > compatible with how ER is classically implemented. > > > > You can write down the example in Note 2 for SC as well. > > > > Does this help? > > > > Thanks, > > > > Marc > > > > PS My time this week is limited, so please excuse the rather brief reply. > > > >