[R6RS] proposed library/syntax-case changes

dyb at cs.indiana.edu dyb at cs.indiana.edu
Mon Aug 28 13:08:23 EDT 2006


> > The set of available libraries is necessarily implemention-dependent and
> > presumably depends on which libraries are actually installed on the target
> > system.  That isn't a change from the current situation.
>
> That surprises me.  Lanuage like this was in my very first proposal,
> which you adamantly opposed, and a lot of the back-and-forth after
> that was about this issue.  So I'm a bit confused.

I must have misunderstood.  I don't see how the set of available libraries
can fail to be dependent upon what's actually installed on the target
system, which might not even be connected to a network to be able to find
and install additional ones.

> > If eval and environment are used tree shaking is difficult and unlikely to
> > be very successful either way.
>
> Why?  If the "for eval" clauses are in place, they tell the
> implementation what libraries are needed.

If you assume a model where the visit-time and invoke-time code for all
installed libraries would otherwise be included in any compiled
application, making all packaged applications huge, then naming the set of
libraries can reduce the size of the application.  I envision instead that
the application binary will include at most those libraries named in the
library header(s) and dynamically load any that are named in a call to
environment.

Beyond trimming out whole libraries to the set named in the library
header, tree-shaking is sufficiently difficult in the presence of eval and
environment that most implementations are unlikely to do anything more.

Kent



More information about the R6RS mailing list