Committee F ("Foundations") Constitution

18 views
Skip to first unread message

Marc Nieper-Wißkirchen

unread,
Mar 17, 2022, 10:30:08 AM3/17/22
to scheme-re...@googlegroups.com
Hello fellow schemers,

after Daphne has made the first move and fired the starting pistol for
Committee C ("Cleanup"), I would like to do the same for Committee F
("Foundations"), for which I have the honour and burden to serve as
the chair. I'd like to thank John and the WG2 for their trust.

1. Overall Goal

The goal of Committee F is to create a high-quality specification of a
language, on which the rest of R7RS Large can be implemented portably
(*). In what follows, this language is called "foundations". The
foundations will encompass everything that is in the small language.
On top of that, we will most likely see:

- lexical syntax extensions (e.g. the optional lexical syntax from SRFI 160)
- syntactic extensions (e.g. syntax-case or identifier properties)
- the fixing of those semantics of the small language where they are
overly loose for the large language
- an exception and condition system to make the language safe for
practical programming
- primitives that allow otherwise already portable libraries to be
implemented efficiently (e.g. eq?-based hash tables)
- extensions like single inheritance to the record system
- additions to the core semantics (e.g. delimited continuations)
- extra additions that are needed to make the foundations themselves a
usable, self-consistent language
- a layer to correctly run R6RS programs as well, allowing the
foundations and the large language to finally supersede R6RS
- semantics for immutability versions of data types
- reconsideration of strings, their algorithmic complexity, and their mutability
- extensions to procedure call semantics (e.g. to implement optional
or keyword arguments)
- incorporation of existing errata for R6RS and the small language.
- a mechanism to make parts of the foundations optional (e.g. strict
safety guarantees) without compromising self-consistency.
- some form of library versioning

This list is certainly not exhaustive.

More ambitious goals include a minimal FFI suitable for
standardization and a specification for running Scheme programs in a
multithreaded environment.

2. Time Frame

Given that the foundations have to serve the rest of the large
language and will partly dictate what kind of APIs can be offered by
the libraries provided by committees B and E, progress on the
foundations should be quick and we will have to set ourselves
ambitious time frames. I expect most of the work to be done within
the next two years, finishing writing down and proof-reading the
formal specification of the foundations may take another one.

3. Initial Activity

Once Committee F is ready to start, an outline of the foundations to
be created will be sketched and subgoals identified. The outline will
then be shared with the other committees of WG2 and possibly outside
of WG2.

A document that will finally become the full specification of the
foundations will be started early. It will reuse many parts of the
small language specification and the R6RS.

Committee F can give itself a charter at someone's request.

4. Membership

Committee F will consist of a group of core members whose
responsibility is to play an active part in writing the specification
for the foundations so that the ambitious time frame from above can
become possible. The core members are responsible for the creation of
the foundations in their entirety to ensure their self-consistency.

A good understanding of the semantics of the small language and of
R6RS certainly helps as does experience with implementing some
advanced features of Scheme or good knowledge of implementation
techniques used by well-regarded Scheme systems.

Core members can recruit from existing members of WG 2 as from
representatives by Scheme implementations who express their
willingness to eventually support the language that will be specified
by the foundations.

I expect the group of core members to be large enough to represent
more than one opinion and small enough so that consensual decisions
will be the norm and so that fast, dynamic progress becomes possible.

Everyone who wants to participate actively along the lines sketched
above is encouraged to apply for core membership. Should the number
of applicants be larger than what would be healthy for the group of
core members, the group of applicants will then together with the
chair select a committee of core members amongst them.

Over time, core members can resign or can be replaced if they can no
longer actively participate in working on the foundations. The group
of core members remains open for new core members.

Being a member of committee B, C, or E of WG2 is not an impediment to
becoming a core member as long as that person has the energy to
actively work in more than one committee, quite the contrary.

5. Procedure

I will set up a publicly visible mailing list for the core members and
another, public mailing list for everyone who wants to give feedback
on the ongoing development of the foundations. Committee F may publish
informal polls from time to time on the public mailing list to get
early and regular feedback from the community on controversial issues.

Issues that come up and cannot be immediately resolved will be
delegated to the joint issue tracker of all committees of WG2,
especially when these issues are related to the work of the other
committees.

To enable modularity and to decrease the chance of conflicts,
Committee F will claim its own library space that will be populated by
libraries extending those of the small language and R6RS and being
building blocks for the implementations of the libraries of the large
language. The large language can then alias some foundation libraries
or reexport selectively from them.

Comments, recommendations for core members of Committee C, or
self-applications are highly desirable.

Marc

--

(*) System-dependent libraries, especially from Committee E
("Environment"), may have to be excluded from this general
requirement. This depends in part on the feasibility of an FFI in the
foundations.

Lassi Kortela

unread,
Mar 17, 2022, 12:03:26 PM3/17/22
to scheme-re...@googlegroups.com
Hello Marc,

> 1. Overall Goal
>
> 2. Time Frame
>
> 3. Initial Activity
>
> 4. Membership
>
> 5. Procedure

Thanks for producing a detailed writeup at such short notice. Once again
I find myself nodding in agreement. It's hardly a surprise that you are
the best person to chair this committee from my point of view :)

I'm happy to submit to this group and no longer see the need to start a
separate project. I will henceforth be an advocate of Foundations and
will work within its confines on RnRS matters.

I hope the Foundations will be carved out into a standalone document at
the end, thereby giving us the vaunted RnRS Medium. But that's a detail
that will work out one way or another.

Membership-wise it would be ideal to give the stage to implementers as
much as possible. I'd like to start out helping in an informal capacity.
If there's a shortage of formal members, I can apply formally as well.

> I will set up a publicly visible mailing list

Do you have a mailing list provider ready?

> To enable modularity and to decrease the chance of conflicts,
> Committee F will claim its own library space

Perhaps the Cleanup committee should sort out library naming towards the
end? Using committee-specific namespaces until then sounds like a good
precaution.

Marc Nieper-Wißkirchen

unread,
Mar 17, 2022, 3:02:24 PM3/17/22
to scheme-re...@googlegroups.com
Am Do., 17. März 2022 um 17:03 Uhr schrieb Lassi Kortela <la...@lassi.io>:

[...]

> Thanks for producing a detailed writeup at such short notice. Once again
> I find myself nodding in agreement. It's hardly a surprise that you are
> the best person to chair this committee from my point of view :)

Thank you for your encouraging words; I hope I can live up to these
expectations.

> I'm happy to submit to this group and no longer see the need to start a
> separate project. I will henceforth be an advocate of Foundations and
> will work within its confines on RnRS matters.

That's great news.

> I hope the Foundations will be carved out into a standalone document at
> the end, thereby giving us the vaunted RnRS Medium. But that's a detail
> that will work out one way or another.

The foundations will be complete in the sense that they won't depend
on the rest of the large language, for otherwise, they won't be
foundations.

> Membership-wise it would be ideal to give the stage to implementers as
> much as possible. I'd like to start out helping in an informal capacity.
> If there's a shortage of formal members, I can apply formally as well.

Thank you.

> > I will set up a publicly visible mailing list
>
> Do you have a mailing list provider ready?

I have set up mailing lists on Google Groups now that Daphne can again
post to these lists. They will be announced shortly.

> > To enable modularity and to decrease the chance of conflicts,
> > Committee F will claim its own library space
>
> Perhaps the Cleanup committee should sort out library naming towards the
> end? Using committee-specific namespaces until then sounds like a good
> precaution.

In any case, committee F will work closely together with committee C
to detect pitfalls early and to make integration of the foundations
into the rest of the large language as smooth as possible while
maintaining the completeness (in the sense above) of the foundations.
Reply all
Reply to author
Forward
0 new messages