r6rs implementation?
Felix Thibault
(26 Sep 2020 15:28 UTC)
|
Re: r6rs implementation?
Lassi Kortela
(26 Sep 2020 15:41 UTC)
|
Re: r6rs implementation?
Lassi Kortela
(26 Sep 2020 15:44 UTC)
|
Re: r6rs implementation?
Felix Thibault
(26 Sep 2020 16:31 UTC)
|
Re: r6rs implementation?
Marc Nieper-Wißkirchen
(26 Sep 2020 17:12 UTC)
|
Re: r6rs implementation?
Lassi Kortela
(26 Sep 2020 18:21 UTC)
|
Re: r6rs implementation?
Marc Nieper-Wißkirchen
(26 Sep 2020 17:13 UTC)
|
Re: r6rs implementation?
Lassi Kortela
(26 Sep 2020 18:17 UTC)
|
Re: r6rs implementation?
Marc Nieper-Wißkirchen
(01 Oct 2020 13:57 UTC)
|
Re: r6rs implementation?
John Cowan
(01 Oct 2020 20:15 UTC)
|
Re: r6rs implementation?
Marc Nieper-Wißkirchen
(02 Oct 2020 05:19 UTC)
|
Re: r6rs implementation?
John Cowan
(02 Oct 2020 19:53 UTC)
|
Re: r6rs implementation?
John Cowan
(02 Oct 2020 20:00 UTC)
|
Sagittarius R6RS-R7RS paper
Lassi Kortela
(05 Oct 2020 06:36 UTC)
|
Re: Sagittarius R6RS-R7RS paper
Marc Nieper-Wißkirchen
(05 Oct 2020 07:31 UTC)
|
Re: r6rs implementation? Marc Nieper-Wißkirchen (02 Oct 2020 20:28 UTC)
|
Re: r6rs implementation?
John Cowan
(05 Oct 2020 00:06 UTC)
|
Re: r6rs implementation?
Marc Nieper-Wißkirchen
(05 Oct 2020 06:29 UTC)
|
Re: r6rs implementation?
John Cowan
(07 Oct 2020 02:40 UTC)
|
Re: r6rs implementation?
Marc Nieper-Wißkirchen
(07 Oct 2020 07:08 UTC)
|
Re: r6rs implementation?
John Cowan
(11 Oct 2020 03:56 UTC)
|
Re: r6rs implementation?
Marc Nieper-Wißkirchen
(11 Oct 2020 13:39 UTC)
|
Re: r6rs implementation?
Felix Thibault
(26 Sep 2020 21:21 UTC)
|
Re: r6rs implementation?
Felix Thibault
(26 Sep 2020 21:47 UTC)
|
Am Fr., 2. Okt. 2020 um 21:53 Uhr schrieb John Cowan <xxxxxx@ccil.org>: > > It shows there are some sound library combinations under implicit phasing that cannot be described with explicit phasing. Exactly. I read this paper before I started thinking of how to implement Unsyntax. >> What is yet missing to full R6RS support are all the R6RS standard >> libraries that I would have to implement in terms of the R7RS >> libraries. In principle, this should be doable. > > > I assume you have read Clinger's paper on Larceny's R7RS support, but if not, it's at <http://andykeep.com/SchemeWorkshop2015/papers/sfpw1-2015-clinger.pdf>. Yes, but for building (efficient) R6RS on top of R7RS I think I need some of the newer SRFIs as R7RS-small does not have all the primitives. This is not my first goal, though. I am currently thinking about an extensible backend that can be used to implement non-syntactic extensions like, say, delimited continuations. >> The bigger things are >> the record subsystem and the condition subsystem. > > > Part of the trouble with the latter is that you'll have to have a highly back-end-specific system to map native condition objects (which may not even be records) into the restrictive R6RS condition hierarchy, in which all simple conditions are in fact records and are readable using the general record procedures. This problem was only recently solved in Guile: long after adopting R6RS, it still had separate and incompatible condition systems, one for R6RS code and another for native code. IIRC, handlers for one kind of exception could not handle the other. Was the Guile problem rooted in the condition system or rather in the semantics of "with-exception-handler" and "raise"? As soon as I have this working (as in every R7RS-small system), I can shim this "with-exception-handler" to exchange native error objects with conditions. >> I hope that R7RS >> (large) takes care not to specify something that is directly >> contradicting so that an actual implementation of R7RS (large) with >> R6RS support will become possible. > > > Hopefully you will keep us honest in that respect. What does the phrase "to keep so. honest" exactly mean? I am no R6RS expert, so others may be better to spot unintended incompatibilities. But my hope is still that as much as R7RS is implementable on top of an R6RS system (modulo some esoteric corner cases*, which will have to be resolved in an R8RS), the same will be true for R7RS-large so that all existing post-R5RS Scheme implementation can eventually implement (parts of) R7RS-large. -- (*) One such corner case is when the right-hand sides of definitions are expanded. In Unsyntax, I read the R7RS *very* liberally and chose the R6RS model because I firmly believe that the intended reading of the R7RS is flawed, more complicated to reason about, and does not to take the existence of identifier syntax (which should behave like variable references) into account. Luckily, no sensible program will break but a few more programs are allowed.