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)

Re: r6rs implementation? Marc Nieper-Wißkirchen 02 Oct 2020 20:28 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.