Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Module system RE: 3.1.9-dev-6

> As things stand, the only thing I am at all likely to have a go at myself
> before 4.0 is integrating the module system, unless somebody gets there
> first.  I have a few ideas about doing this: something to go in configure,
> and something to go in the source code module system will be necessary, and
> maybe some extra installation hooks (though they may be OK already).  It
> would probably be something like this: configure generates a file with
> lists of modules (probably based on the .mdd files, which may therefore get
> extended), functions and eventually (this won't happen without some extra
> stuff in the documentation system) manual/info entries.  Unlike the present
> system, this will completely describe all modules, so you can turn on and
> off compilation and installation just by changing an entry --- e.g. if you
> decide to add zftp to a system without dynamic loading, you just change
> `no' to `yes' and the functions get installed, too.  This file is read by
> everything which has to do with modules, and can be updated by hand
> (probably configure therefore shouldn't modify an existing one).
> One of the .mdd additions would probably be a variable indicating whether
> to compile by default; currently, if you have dynamic loading, everything
> automatically gets compiled, which will be less and less useful as we get
> more and more specialised modules (I have a module which talks to our
> Bluetooth chip, which isn't a lot of use for most people).

This is the idea for configure time module selection I had. It was targeted at
dynamic/static/linked-in selection, but could be extended to cover all the
above as well (by suitable .mdd extension).

Add single parameter

--enable-zsh-modules="module list"

Module list has format:

<name>=(skip|static|dynamic)[,autoload] ...


<name> = (module name|group name|"default")

Examples (assuming, std are modules that are currently marked for autoload):

- current default for dynamic build:
	--enable-zsh-modules="default=dynamic std=dynamic,autoload"

- current default for static build:
	--enable-zsh-modules="default=skip std=static,autoload"

I intended to set modules group in .mdd file. In this way, if we add new
module to e.g. ZLE, it will be automatically covered by, say


This, of coursem needs some precedence resolution rules, but it is pretty
straightforward. The whole is intended to take place at configure time (and
not at make)

With suitable .mdd files and build system we can incorporate almost anything



Messages sorted by: Reverse Date, Date, Thread, Author