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: A module system should resolve, not introduce, name conflicts



> My position is that the idea of mixing forms of the module
> configuration language with the bindings it's supposed to manage is
> flawed

Quite the opposite, I think it's elegant.  The point is here that you
can choose to remove the module which exports the module
configuration language from your import-list:

--------file my/test ------------
(module (my test) (open ))
define -> error
module -> error

---------------------------------

The "trick" is here that you can re-define the default import list
that the module loader creates for my/test by specifying your own
import list "(module ... (open x y z ...))".


Where do you see problems?


> But MzScheme chokes on this since their
> module system uses the syntactic form `unit'.

You can choose to either a) not use the module configuration language
at all, b) use the configuration language and rename the imported
features or even c) use your own module configuration language.

c) is not possible in a module system which you propose.


Scheme48 has other problems, for example it specifies a
"meta-language" --- ",in" for example which lets you jump from one
module to another in the repl.

Guile can't use such a meta-language because every module
may have its own repl.  A module written in tcl for example
may have a tcl repl, a module written in perl may have
a perl repl etc.


Jost



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