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

Re: R^5RS Proposal(s)



>    META-PROPOSAL

> There is a method for adding language features which ARE expressible
> in standard scheme: SLIB.  I enforce some conformity for
> documentation.

> With Macros (which are supported by SLIB) even more new language
> features can be accomodated.

1. There is nothing wrong with having a library definition that
   is separate from RnRS.  (Well, at least not very much wrong.)
   It might be easier to add functionality if it was more clearly
   distinguished from the "core" language.

2. Macros are a bit step towards making Scheme more extensible,
   but one more big step is needed, namely modules.  I think we
   should have modules even if they're not the ideal modules we'd
   really like to have in the end.  I know this is somewhat contrary
   to the usual Scheme practice (of adding only the best, so to
   speak), but in this case I think the benefits outweigh the costs.

   Even something as trivial as

      (module <name> <export list> {<definition> | <for>}*)

   where the <export list> is a list of names (ie, symbols) and all
   exported names are visible globally (ie, C-like "modules" but with
   "static" as the default) would be useful.  And I'm sure a small
   number of improvements would make it better and more aceptable.

Moreover, the module system doesn't have to become part of the
language if it can be written portably.  It could be used by SLIB
and by programmers who define new modules even if we can't agree
to make it in any sense official.  Indeed, some time in which we
can gain some experience using modules before making them "official"
would be desirable in any case.

>    I would like to propose a Trial Use Standard mechanism.  The basic
>    idea is put up a target proposal, allow discussion, come up with a
>    concrete proposal in a standard format which is then put in the Scheme
>    Repository and published.

I assume this can be done informally, by making proposals and portable
implementations available, w/o any "official" mechanism.

-- jeff