This is the mail archive of the guile@sourceware.cygnus.com mailing list for the Guile project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]