On Mon, Feb 23, 2009 at 4:37 PM, John Cowan <[email protected]> wrote: > Joe Marshall scripsit: > >> The biggest issue I had was that when PLT switched, I had to go >> and edit a bunch of legacy code. Unfortunately, calls to READ in >> PLT Scheme used the current dynamic value of the case-sensitivity switch, >> rather than the lexical value apparent at the call site, so I had to go >> find and edit all the calls to READ as well. > > That's a very interesting point: it's not obvious to me that READ should > behave so. Just because my code is written in UTF-8, doesn't mean that > by default I want all my text files to be opened as UTF-8.
The other option, where READ happens to use whatever dynamic value the switch was last set to is clearly wrong. READ is going to need a case argument. (And so is WRITE) > Presumably by the time macro expansion is being done, all > external representations have already been internalized, so > (assuming down-folding) any external IF is already |if|. Suppose I have a non-hygienic macro that introduces an identifier named `Foo' and you wish to use it within a case-insensitive file. If your external code has already been down-folded, it will never be able to access the binding. -- ~jrm _______________________________________________ r6rs-discuss mailing list [email protected] http://lists.r6rs.org/cgi-bin/mailman/listinfo/r6rs-discuss
