zsh-workers
 help / color / mirror / code / Atom feed
From: "Andrej Borsenkow" <Andrej.Borsenkow@mow.siemens.ru>
To: <zsh-workers@sunsite.dk>
Subject: RE: Modules dependencies RE: PATCH: zftp/tcp abstraction
Date: Tue, 26 Jun 2001 15:26:44 +0400	[thread overview]
Message-ID: <001301c0fe32$e11f5200$21c9ca95@mow.siemens.ru> (raw)
In-Reply-To: <E157wrq-0005Ck-00@bowl.fysh.org>

>
> Andrej Borsenkow wrote:
> >To make it work in general every module needs a standard function, let's
> >call it dep_, that is autogenerated out of moddeps and called
> before module
> >is attempted to be loaded to register dependencies.
>
> Problem is you can't call that function without loading the module, and
> you can't successfully load the module until you've got that information.
> If there were an easy solution we'd have implemented it as soon as we
> came up with the module system.
>

Here is suggested change to current module system. It is actually pretty
trivial to implement and may have additional advantages ...

- module is represented by its module definition file. It is basically mdd
file with all makefile fragments stripped and any shell code replaced by
final value. To avoid confusion with original mdd, let's call it zmd (Zsh
Module Definition). The additional property is full name of binary DSO
object, e.g. soname.

- when you open a module, zsh opens zmd file. It then loads all needed
modules (as in moddeps) and after that loads modules object itself (as in
soname)

- zmd file is always installed for both linked-in and external modules. It
eliminates need to build extra list at compile-time.

- zsh _may_ scan $module_path and autoload objects from those modules with
load=yes at startup. Or it even can do it when $module_path changes (but see
*1). This makes it possible to have a single binary and simply drop new
module in place that may be of some use for packagers.


This does not seem very hard to implement (the ugliest part is parsing of
zmd files; do we have something ready in zsh so as not to reinvent the
wheel)? Comments?

-andrej

*1 When (re)scanning $module_path the problem is, what to do with currently
loaded modules. Consider the case:

module zsh/mod1 provides foo and bar and is loaded
module zsh/mod2 provides baz and bar and is being scanned

Zsh first adds baz, then it adds bar and gets an error. We possibly have to
remove baz now (else, it will try to load zsh/mod2 on access to baz and this
will silently redefine bar).

P.S. We can even completely ignore file name and rely on name= in zmd file.
That gives natural way to directly load any module by its path name.


  parent reply	other threads:[~2001-06-26 11:26 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-06-06 16:26 Clint Adams
2001-06-06 16:34 ` Module namespaces? " Andrej Borsenkow
2001-06-06 16:37   ` Zefram
2001-06-06 18:07     ` Peter Stephenson
2001-06-06 19:12       ` Clint Adams
2001-06-07  8:13 ` Andrej Borsenkow
2001-06-07  9:41   ` Modules dependencies " Andrej Borsenkow
2001-06-07 10:00     ` Peter Stephenson
2001-06-07 10:18     ` Zefram
2001-06-07 13:16       ` Sven Wischnowsky
2001-06-07 13:35         ` Andrej Borsenkow
2001-06-07 15:31           ` Bart Schaefer
2001-06-14  9:33             ` Andrej Borsenkow
2001-06-26 11:26       ` Andrej Borsenkow [this message]
2001-06-26 16:33         ` Bart Schaefer
2001-06-30 11:24           ` Zefram
2001-06-27 13:49       ` Clint Adams
2001-06-27 13:59         ` Peter Stephenson
2001-06-27 14:10           ` Andrej Borsenkow
2001-06-27 14:19             ` Peter Stephenson
2001-06-27 18:42           ` Bart Schaefer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='001301c0fe32$e11f5200$21c9ca95@mow.siemens.ru' \
    --to=andrej.borsenkow@mow.siemens.ru \
    --cc=zsh-workers@sunsite.dk \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/zsh/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).