Truly unifying R6RS and R7RS
Daphne Preston-Kendal
(04 Oct 2022 18:22 UTC)
|
||
Re: Truly unifying R6RS and R7RS
Marc Nieper-Wißkirchen
(04 Oct 2022 19:16 UTC)
|
||
Re: Truly unifying R6RS and R7RS
John Cowan
(06 Oct 2022 20:30 UTC)
|
||
Re: Truly unifying R6RS and R7RS
Marc Nieper-Wißkirchen
(06 Oct 2022 21:11 UTC)
|
||
Re: Truly unifying R6RS and R7RS
John Cowan
(07 Oct 2022 01:33 UTC)
|
||
Re: Truly unifying R6RS and R7RS
Marc Nieper-Wißkirchen
(07 Oct 2022 08:20 UTC)
|
||
Re: Truly unifying R6RS and R7RS
Arthur A. Gleckler
(07 Oct 2022 18:22 UTC)
|
||
Re: Truly unifying R6RS and R7RS
John Cowan
(07 Oct 2022 22:02 UTC)
|
||
Re: Truly unifying R6RS and R7RS
Marc Nieper-Wißkirchen
(08 Oct 2022 10:37 UTC)
|
||
Re: Truly unifying R6RS and R7RS
José Bollo
(27 Oct 2022 07:30 UTC)
|
||
Re: Truly unifying R6RS and R7RS
Marc Nieper-Wißkirchen
(27 Oct 2022 08:00 UTC)
|
||
Re: Truly unifying R6RS and R7RS
José Bollo
(01 Nov 2022 14:22 UTC)
|
||
Re: Truly unifying R6RS and R7RS
Marc Nieper-Wißkirchen
(01 Nov 2022 14:34 UTC)
|
||
Re: Truly unifying R6RS and R7RS
José Bollo
(03 Nov 2022 08:42 UTC)
|
||
(missing)
|
||
Fwd: Truly unifying R6RS and R7RS
Marc Nieper-Wißkirchen
(03 Nov 2022 13:18 UTC)
|
||
Re: Truly unifying R6RS and R7RS
José Bollo
(26 Nov 2022 10:02 UTC)
|
||
Re: Truly unifying R6RS and R7RS Marc Nieper-Wißkirchen (26 Nov 2022 17:26 UTC)
|
Am Sa., 26. Nov. 2022 um 11:02 Uhr schrieb José Bollo <xxxxxx@nonadev.net>: > > Le Thu, 3 Nov 2022 14:17:53 +0100, > Marc Nieper-Wißkirchen <xxxxxx@gmail.com> a écrit : > > [snip] > > > This works if your record types are only defined in the top level of a > > library, and your library is only loaded once. > > Page 28 r7rs states: > > Regardless of the number of times that a library is loaded, > each program or library that imports bindings from a li- > brary must do so from a single loading of that library, re- > gardless of the number of import declarations in which it > appears. > > From that I understand that for getting a well defined > non-generative record, library is to be used and that is enough, IMHO. There was once a discussion about this a few years ago. If a program imports both library A and library B and A and B import C, the above makes it clear that both A and B each only observe one loading of C, but it is not clear that A and B observe the same loading. A reasonable implementation of R7RS should guarantee this IMHO. As soon as the extent of record values crosses program boundaries, the generative records of R7RS at the top level would no longer emulate non-generative ones. (We discussed possible extensions of Scheme where this would be possible.) For the small language without extensions, not having non-generative record types outside the top level may be an annoyance, but we can still live without them. Things become different when we take extensions of our language into account. Such an example could be as simple as a feature to unload and reload a library (say, through `eval'). > > > Conversely, you started a thread "Perpetuity of non-generative > > > record type definitions". Between the lines it indicates that being > > > non-generative might be a nightmare to implement. > > > > No, it's not a nightmare to implement them. > > Hum!? Well, let say it is more complicated. And for me it does not bring > a clear benefit. The critical point is that those programs not using non-generative record types don't have to pay any tax in the form of a slowdown or a higher memory footprint. Not restricting non-generative record types to the top level is, at least for me, reason enough to introduce this virtually zero-cost feature. In any case, this particular mailing list is probably not the perfect place to lobby for removing non-genericity. By that, I mean that SRFI 237 is about refining the R6RS record system so that it retains its expressiveness but taking the criticism of it into account. As non-generativity is a feature of the R6RS record system, even if I wanted, it would be against the spirit of this SRFI to remove it. Besides, this SRFI proposes an external representation for records; this, however, is only meaningful for non-generative ones.