Aha cool.
So, a user can then define his own custom Gambit with ##make-readtable-char-sharp-sexp-reader-transformer support by making a file mycustomgambit.scm that contains
(##define-macro (interpreter-or x) x) (##include "~~/lib/header.scm") (##include "~~/lib/gsi_main.scm")
and then the ##make-readtable-char-sharp-sexp-reader-transformer definition, so that's https://github.com/feeley/gambit/pull/180/files 's contents.
Sure works. And that should be IO code that changes only rarely.
2016-02-25 4:04 GMT+07:00 Marc Feeley feeley@iro.umontreal.ca:
Those are already exported by _io#.scm and are therefore accessible after including ~~lib/_gambit.scm .
Marc
On Feb 24, 2016, at 3:44 PM, Adam adam.mlmb@gmail.com wrote:
What about macro-readenv-filepos-set!, macro-readenv-wrapper,
macro-readenv-unwrapper, macro-readenv-wrapper-set!, macro-readenv-unwrapper-set!, macro-readenv-wrap?
2016-02-25 3:37 GMT+07:00 Marc Feeley feeley@iro.umontreal.ca: As a solution for the short term, I have moved the
macro-read-next-char-or-eof and macro-peek-next-char-or-eof macros to _io#.scm so that they can be used after an (include "~~lib/_gambit#.scm").
So you should be able to easily implement the extension you want locally.
Marc
On Feb 24, 2016, at 1:04 PM, Adam adam.mlmb@gmail.com wrote:
Guillaume is making an excellent point here. (Reposted below with his
permission.)
(To paraphrase him,) I suggest that
https://github.com/feeley/gambit/pull/180 should be included because it's reasonable that users should be able to implement their own hash-sequence extensions.
We don't need to make a bigger philosophical deal about it than that.
This is low-level.
Also I think all reasonable uses will be about data and not code, and
therefore they will not need any line numbering or similar info, so the unwrapping is fine - or easy access to an unwrapping routine (you choose). So finally perhaps the only thing would be to give it a better name, if you want that.
Please let me know if-when it can be included in Gambit :D
Thanks!!
2016-02-24 21:04 GMT+07:00 Guillaume Cartier gucartier@gmail.com: Hi Adam,
I think the main thing I'd say is that from my experience, waiting for
Marc to integrate something into Gambit so as "not to use undocumented features", you will wait a long time :) I'd say don't worry too much about using undocumented stuff. I think it is actually a wonderful feature that Gambit exposes its internal stuff, where in many languages you just don't have any access to internals. JazzScheme uses what I'd say is a "healthy" mix of mostly documented features and various undocumented features.
One reason I say you'll be waiting a long time is that a big design
goal in Gambit is to *not* go into unclear how best to implement high-level features. In this Marc is really in-tune with the old R5RS philosophy, which is kinda obvious since he was on the committee :) Regarding that, I think Marc should include the low-level part of your code to implement #\ extensions even if he feels the higher level stuff is unclear.
Cheers, Guillaume
On Mon, Feb 22, 2016 at 4:29 PM, Adam adam.mlmb@gmail.com wrote: Dear Guillaume,
I trust you are well -
if you have any thoughts about the sexp extension ML topic right now
feel free to tell there,
Thanks :)