Syntax extensions
Jakub T. Jankiewicz
(05 Mar 2021 20:44 UTC)
|
Re: Syntax extensions
Marc Nieper-Wißkirchen
(06 Mar 2021 09:10 UTC)
|
Re: Syntax extensions
Amirouche Boubekki
(06 Mar 2021 09:23 UTC)
|
Re: Syntax extensions
Jakub T. Jankiewicz
(06 Mar 2021 14:26 UTC)
|
Re: Syntax extensions
Marc Nieper-Wißkirchen
(06 Mar 2021 14:43 UTC)
|
Re: Syntax extensions
Jakub T. Jankiewicz
(06 Mar 2021 16:03 UTC)
|
Re: Syntax extensions
Marc Nieper-Wißkirchen
(06 Mar 2021 16:20 UTC)
|
Re: Syntax extensions
Marc Nieper-Wißkirchen
(07 Mar 2021 22:08 UTC)
|
Re: Syntax extensions
Jakub T. Jankiewicz
(08 Mar 2021 07:47 UTC)
|
Re: Syntax extensions
Marc Nieper-Wißkirchen
(08 Mar 2021 08:25 UTC)
|
Re: Syntax extensions
John Cowan
(15 Mar 2021 02:54 UTC)
|
Re: Syntax extensions Jakub T. Jankiewicz (15 Mar 2021 08:01 UTC)
|
Re: Syntax extensions
Marc Nieper-Wißkirchen
(15 Mar 2021 15:53 UTC)
|
Re: Syntax extensions
Adam Nelson
(16 Mar 2021 12:07 UTC)
|
Re: Syntax extensions
Marc Nieper-Wißkirchen
(16 Mar 2021 12:50 UTC)
|
Re: Syntax extensions
Jakub T. Jankiewicz
(16 Mar 2021 16:37 UTC)
|
Re: Syntax extensions
Marc Nieper-Wißkirchen
(16 Mar 2021 17:12 UTC)
|
Re: Syntax extensions
Jakub T. Jankiewicz
(16 Mar 2021 17:31 UTC)
|
Re: Syntax extensions
Marc Nieper-Wißkirchen
(16 Mar 2021 19:53 UTC)
|
Re: Syntax extensions
John Cowan
(18 Mar 2021 20:10 UTC)
|
Re: Syntax extensions
Marc Nieper-Wißkirchen
(18 Mar 2021 21:36 UTC)
|
Re: Syntax extensions
John Cowan
(19 Mar 2021 04:18 UTC)
|
Re: Syntax extensions
Marc Nieper-Wißkirchen
(19 Mar 2021 06:43 UTC)
|
Re: Syntax extensions
Jakub T. Jankiewicz
(19 Mar 2021 08:04 UTC)
|
Re: Syntax extensions
Marc Nieper-Wißkirchen
(19 Mar 2021 08:12 UTC)
|
Re: Syntax extensions
Marc Nieper-Wißkirchen
(15 Mar 2021 15:42 UTC)
|
Re: Syntax extensions
John Cowan
(18 Mar 2021 00:38 UTC)
|
Re: Syntax extensions
Marc Nieper-Wißkirchen
(18 Mar 2021 06:36 UTC)
|
Re: Syntax extensions
Amirouche Boubekki
(06 Mar 2021 09:47 UTC)
|
Re: Syntax extensions
Jakub T. Jankiewicz
(20 Aug 2021 21:03 UTC)
|
Re: Syntax extensions
Marc Nieper-Wißkirchen
(20 Aug 2021 21:18 UTC)
|
Not sure if this is related what Marc wrote, but this is not even close to what I'm proposing. My syntax extension is like combination of reader and compiler macros in Common Lisp, but in CL - reader macro have access to stream of characters, in my extension they get the parsed expression. I'm not sure how CL reader macros works with packages, they probably just helpers for user code. One thing to fix the issue with Libraries is that the syntax may disallow of writing set-special! inside bigger expression that will invalidate it in libraries. So they will only be used by user code as helpers for the application and not in libraries. Or just invalidate it or ignore if inside libraries. So it don't break the Scheme code too much with this restriction. On Sun, 14 Mar 2021 22:54:26 -0400 John Cowan <xxxxxx@ccil.org> wrote: > See https://github.com/johnwcowan/r7rs-work/blob/master/LexmacsCowan.md, > which is a proposal that's close to what you are describing. > > On Mon, Mar 8, 2021 at 3:25 AM Marc Nieper-Wißkirchen < > xxxxxx@nieper-wisskirchen.de> wrote: > > > A possible R[67]RS way compatible with modularization would be to first > > specify how the `read` procedure can be extended (not globally but > > customized in the object-oriented inheritance sense) and then specify how > > files are associated to (custom) `read` procedures. The latter may yet > > have to be left implementation-specific. It's important that (new) reader > > syntax applies globally to a stream and doesn't change in the middle of a > > stream (possibly in the middle of a datum). > > > > Am Mo., 8. März 2021 um 08:48 Uhr schrieb Jakub T. Jankiewicz < > > xxxxxx@onet.pl>: > > > >> Thanks for your comment about my feature, I think that I will not work on > >> this > >> further to make it SRFI then. You're right it don't work correctly with > >> the > >> libraries because R7RS Scheme is not longer single global namespace, so > >> single global syntax extensions would be problematic. > >> > >> Jakub > >> > >> On Sun, 7 Mar 2021 23:07:43 +0100 > >> Marc Nieper-Wißkirchen <xxxxxx@nieper-wisskirchen.de> wrote: > >> > >> > PS: I want to add that I am not principally opposed to ways to extend > >> the > >> > Scheme reader. The difficulty is to make this work in conjunction with > >> > > >> the > >> > library system and the usual Scheme semantics and so that special > >> > syntax loaded for one file does not affect other files. > >> > > >> > Am Sa., 6. März 2021 um 17:19 Uhr schrieb Marc Nieper-Wißkirchen < > >> > xxxxxx@nieper-wisskirchen.de>: > >> > > >> > > Am Sa., 6. März 2021 um 17:03 Uhr schrieb Jakub T. Jankiewicz < > >> > > xxxxxx@onet.pl>: > >> > > > >> > >> > >> > >> > >> > >> On Sat, 6 Mar 2021 15:43:01 +0100 > >> > >> Marc Nieper-Wißkirchen <xxxxxx@nieper-wisskirchen.de> wrote: > >> > >> > >> > >> > > We can simplify the SRFI by requiring for implementation to > >> > >> > > work > >> in > >> > >> > > different > >> > >> > > files. This is how it was working before I replaced tokenizer > >> > >> > > in > >> my > >> > >> Scheme > >> > >> > > that return list of all tokens for whole file with incremental > >> Lexer > >> > >> > > > >> > >> that > >> > >> > > is > >> > >> > > tokenizing while the code is parsed. > >> > >> > > > >> > >> > > >> > >> > How would this look like in a typical R7RS Scheme program > >> consisting > >> > >> > of > >> > >> a > >> > >> > top-level program and a number of libraries? > >> > >> > > >> > >> > What happens if two libraries try to declare the same prefix > >> > >> independently > >> > >> > as special? > >> > >> > >> > >> The specials are global because the parser is single entity. But > >> > >> what about > >> > >> SRFI-10 if two libraries define same name (e.g. #,(foo ...)) and > >> they use > >> > >> different implementations. From what I see SRFI-10 don't use any > >> scope > >> > >> and don't handle the R7RS libraries. The latest library will > >> overwrite > >> > >> the code > >> > >> that was defined in libraries that were loaded before it if both > >> defined > >> > >> the > >> > >> name. > >> > >> > >> > > > >> > > Yes, any SRFIs that define reader extensions usually define them > >> globally. > >> > > For (quasi) standards, this is less of a problem than for > >> > > user-written extensions which need to co-exist with other > >> > > user-written extensions. > >> > > > >> > > For example, assume that I want to use a library (foo). The > >> implementor of > >> > > (foo) uses some other library (bar), which makes use of your proposed > >> > > reader extensions, internally. If the reader extensions are only > >> global, > >> > > (foo) will leak implementation details. > >> > > > >> > > SRFI 10, by the way, is both pre-R6RS and pre-R7RS so it is clear > >> that it > >> > > doesn't handle libraries. Moreover, I would consider the special > >> syntax > >> > > used there and the SRFI itself obsolete because since R6RS, `#,` is > >> > > an abbreviation for `unsyntax`. > >> > > > >> > > > >> > >> -- > >> Jakub T. Jankiewicz, Web Developer > >> https://jcubic.pl/me > >> > > -- Jakub T. Jankiewicz, Web Developer https://jcubic.pl/me