This is the mail archive of the
guile@sourceware.cygnus.com
mailing list for the Guile project.
Re: New module system wishlist
More module system wishlist items:
* I would like to see a smooth continuum between the loading of
straight R5RS code and the importing of a module. Along this
continuum it should be possible to
(i) load a chunk of straight R5RS code
(ii) load a chunk of straight R5RS as a module whose name/reference is
specified by the loader
(iii) import a chunk of module code as a module whose name/reference is
specified by the loader and overrides the module's internal idea
of its identity
(iv) use a mechanism within the module code to disallow (iii)
(v) load a module under its expected name/reference.
* When loading, it should be possible to specify whether bindings are
public by default or private by default. Correspondingly we will
need (hide ...) and (define-private) to complement the existing
(export ...) and (define-public).
* Make names more consistent! (e.g. "export" and "define-public" ??!)
Someone else mentioned backwards compatibility. My view is that this
is an extremely small consideration and should be dropped if there is
any conflict at all with other desirable features. The existing body
of Guile code is still small enough that we don't need backwards
compatibility that much. Let's concentrate instead on making the best
possible module system without such constraints.
Neil