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

Re: Added builtins per runtime



On Sat, May 1, 2010 at 2:02 PM, Christoph Kappel <unexist@xxxxxxxxxxxxx> wrote:
>
> That was exactly my question. Can a module change it's features per runtime?

There doesn't appear to be any reason that a module could not provide
a builtin (or even, I suppose, a parameter) that modifies the module's
own features array on the fly.  The effect would need to be the same
as if "zmodload -F" had been invoked to enable the newly-materialized
feature.

> Generally the use of the word feature in the doc is really confusing, reading the
> coding makes it's even worse when a feature struct contains lists of builtins,
> condistions etc. which are called features too.
>
> The doc also doesn't make very clear what abstracts.

The concept of features (as in the feature struct) was only recently
introduced, and was layered on top of the existing implementation of
builtins/parameters/etc.  The abstraction may therefore be a bit less
clean than one would find if it had been designed from scratch.

> I basically want to provide a builtin/feature/whatever that provides a way to add
> actions in another language - ruby in my case.

I suspect that what you mean by this is that you intend to link a ruby
interpreter to zsh, and you want to permit interpreted functions
defined in ruby to appear on the fly as builtin commands from the
point of view of the zsh interpreter.  It might be possible to do
that, because the same C function defined in the module can be called
under multiple names.  However, I'd suggest that you start by having a
single builtin that invokes the ruby interpreter and pass it the name
of the ruby function as its first argument, rather than attempt to
create a new builtin for every function.



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