I'm working on an mit-scheme compatibility module (compat mit-scheme) enabling Guile to read a (so far) subset of mit-scheme code.
Now I have the problem that mit-scheme has the two constants #!optional and #!rest (mit-scheme extensions to the scheme standard). I thought that I could support this using %read-hash-procedures but discovered that there are three "precedence levels": 1. Most predefine hash syntax like #(, #! etc. 2. %read-hash-procedures 3. #| This means that I can't add new syntax for #!. I propose to simplify this to only two levels: 1. %read-hash-procedures 2. predefined syntax This would be conceptually simpler and more flexible. It could also be used to support mit-scheme read syntax. If we do not implement this change, I need to use Ludovic's (nice) guile-reader. But that package contains C code meaning that (compat mit-scheme) can't be distributed using guilehall. In any case, I think it would be good to be able to support other Scheme's read syntax using the standard reader. If anyone is afraid about the effect this would have on reader performance, it is possible to compile %read-hash-procedures to a table of flags indicating exceptions. Opinions? Best regards, Mikael