Hi Eric, Eric S. Raymond wrote on Tue, Mar 04, 2014 at 08:12:45PM -0500:
> The semantics I had in mind allows unhygienic requests and macros > to still be used inside macro definitions. [...] > That way you can define macros after a .hygiene call and they'll > be visible unless you do another .hygiene call. OK, so i'm using a macro set -mstrict that uses .hygiene and doesn't declare the roff .dirty request as hygienic. Now i make up my mind that using .dirty inside my document would really be convenient. Here is how i do it: .de clean .dirty .. .clean > I'm still thinking this through. My gut feeling is that your idea sounded cunning at first, but is going to end up as a failure. It looks likely that you might end up inciting people to devise workarounds, which will make actual documents even more ugly and miss the original goal of restricting access to low-level requests. If you allow additional macro sets to define additional macros in terms of unhygienic low-level requests, how do you hope to prevent documents from doing the same? It looks like you are trying to solve a social problem - design your documents in a responsible way, think about which low-level features you are using and what the consequences are - using technical means, i.e. actually technically preventing authors from using stuff. Maybe what is needed here is not technical restrinctions in the actual language, but just simple, stand-alone validator(s) telling authors "yes, your document is clean -mstrict" or "no, please consider not using .dirty on line 321 if you expect this to work with all (in particular semantic) -mstrict parsers". Yours, Ingo