Am Mo., 30. Sept. 2024 um 04:44 Uhr schrieb Antero Mejr <xxxxxx@antr.me>:
Hi Marc and Daphne,

> Some questions:
>    - How is this distinct from a symbol-keyed hash table or mapping
>    (SRFI 146)?

>> Yes, I would also like to know whether there is any semantic
>> difference to a finite map from symbols to Scheme values.

Anonymous records are more restricted. Their fields correspond directly
to procedure arguments. The fields can only be sequential non-negative
integers (positionals) or symbols (keywords).

So, are anonymous records basically reified procedure argument lists?
 
> With static types ‘anonymous’ records can still be optimized to be as
> efficient as ‘normal’ struct accesses ...

I'm curious to see the performance implications as well, especially when
combined with the new type annotations of SRFI 253. I've started work on
a compiler, but it may take a while :)

> That said, even if not adopted into R7RS – or even if ‘records’ of this
> type build a completely different system from that supported by the R7RS
> record system* – this idea is intriguing.

It would not be a good fit for Large, if what you're going for is a full
object system like CLOS. Anonymous records would be going in the
"smaller" direction.

R7RS-large mostly likely won't contain an object system like CLOS.  Its record system will probably be at most of the size of R6RS's record system (where records are ultimately just vectors of fields identified by ordinal index).
 
> In any case, to be accepted into the fascicle on records would require
> support from at least 3 notable Scheme implementations by around this
> time next year.

If the proposal can be implemented in a portable way, this doesn't have to be the case, does it?
 
An aside: I think this rule is bad governance, like an appeal to
authority. It may be better to formalize the evaluation process for
features. Have a process for analyzing how new features would fit into
the larger Scheme world, with all the different shapes and sizes of
implementations and users.

When citing N=3, Chez/Guile/Gambit are often used as justification. But
they have corporate/nonprofit/academic sponsorship, seem pretty
unbounded in terms of scope, and are R6RS. Most implementations do not
have those resources. And I don't think they reflect how many
programmers see and use Scheme.

Irrelevant for the point being made, but Gambit is not R6RS.  The problem I see with the N = 3 rule is that for each feature, it can be a different set of implementations, reducing the significance of this measure considerably.

The N = 3 rule was set by the Steering Committee.

IMO the governance of Scheme is very opaque overall: there's stuff going
on at ICFP, on Codeberg, on SRFI, with the WG/Steering Committee (if
they are still active?). I personally don't like it, IDK what others
think. It doesn't make me feel comfortable about dedicating myself to
Scheme as a language.

What exactly don't you like? Is it that there is stuff going on at so many places simultaneously?

The Scheme community is much broader than the standardisation effort of the large language; neither the composition of the SC nor of WG2 represents the whole Scheme community.  Even the members active on the SRFI mailing lists represent only a tiny fraction of the Schemers.  One of the most productive corners both in innovation and practicability today is probably the Racket community with its dialect of Scheme.

Marc