Re: Generative and nongenerative record types
Marc Nieper-Wißkirchen 31 Oct 2022 09:11 UTC
Am So., 30. Okt. 2022 um 23:20 Uhr schrieb John Cowan <xxxxxx@ccil.org>:
>
>
>
> On Sun, Oct 30, 2022 at 12:57 PM Marc Nieper-Wißkirchen <xxxxxx@nieper-wisskirchen.de> wrote:
>
>
>>
>> Global record-type definitions are effectively non-generative.
>
>
> Quite so. So even if the default kind of record-type is generative, the global ones can be treated as if they are non-generative, which means there is no additional overhead for most record types.
To recognize this, a sufficiently smart compiler is needed, of course,
and it depends that no relevant extensions past R[67]RS are present.
As soon as the implementation allows to load a library several times,
a generative record-type definition cannot be compiled as a
non-generative one.
> If we default to non-generative local records, then we get unexpected results.
In what sense "unexpected"?
Maybe, I should have put my "95%" as the ratio of *local* record-type
definitions that are (or should have been) non-generative in my
initial post.