[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Scheme-reports] formal comment: Using "scheme" for standard library is problematic

Per Bothner scripsit:

> Appendix A defines various libraries - for example (scheme file).
> What happens if a future scheme standard wants to add new procedures
> (or macros) to this list?

It is over-late for Formal Comments, unless you want to make this a Formal
Objection -- that is, something you think constitutes a charter violation
or otherwise seriously threatens the ratification of the seventh draft
(plus editorial corrections) of R7RS-small.  If so, let me know.

Library versioning is definitely something we will take up in WG2.
The feeling in WG1 was that it was a complex subject that we wouldn't
be able to handle expeditiously.

> My suggestion is to rename all of the (scheme XXX) libraries to (r7rs
> XXX), but to add aliases for (scheme XXX).

A particular implementation can easily achieve this by having the
(scheme file) library import the (fantastic-scheme file 7) library and
export everything in it.  When it comes time to provide an R7RS/R8RS
implementation of fantastic-scheme, the (scheme file) library can be
changed to read

  (r7rs (import (fantastic-scheme file 7))
        (export ...))
  (r8rs (import (fantastic-scheme file 8))
        (export ...)))

> Alternatively, rename all the (scheme XXX) libraries to (r7rs XXX)
> libraries.  Just add (scheme all) as an alias for all the names defined
> in the "current" specification.  I suspect most programmers would prefer
> this convenience, rather than having to list (r7rs base) (r7rs write)
> (r7rs char) and so on.

As I noted earlier, (scheme all) doesn't make much sense in a world in
which not all implementations supply all libraries: it can only mean
"all the standard libraries I have", which means there is no guarantee
what names are imported.  People writing Scheme programs will have to put
up with the imports, but at the REPL, implementations are encouraged to
provide anything they want, and in practice I think this will mean all
the standard libraries that the implementation provides and more as well.

You let them out again, Old Man Willow!                 John Cowan
What you be a-thinking of?  You should not be waking!   cowan@x
Eat earth!  Dig deep!  Drink water!  Go to sleep!
Bombadil is talking.                                    http://ccil.org/~cowan

Scheme-reports mailing list