On 16 Jul 2015 14:53, Chet Ramey wrote: > On 7/14/15 5:11 AM, Mike Frysinger wrote: > > On 14 Jul 2015 11:35, Pierre Gaston wrote: > >> I think adoption would be difficult considering even a useful loadable > >> builtin like "finfo" has not found its way into default installations, b > ut > >> for instance I can imagine bash programmable completion could go another > >> level with an embedded interpreter that lets you access the readline > >> internals. > > > > finfo is under the "examples" directory, and all of the loadable logic is > n't > > exactly trivial to package. it feels kind of bolted on, especially when > you > > try to build & install things. if we want the loadables to be more of a > first > > class concept than something people only play around with locally on thei > r own > > systems, this needs polishing. > > It's not quite bolted on, but it does assume access to the bash source > tree, since the header files have to be available. The build tree needs > to be available as well, since the generated headers are required and
headers can be installed easily. Gentoo does this under the path (arbitrarily
picked) of /usr/include/bash-plugins/. we install a crap ton of headers
because it's not clear what is fair game for plugins.
> the logic to create shared objects comes for free with the bash configure.
that's not really that much magic though ? seems pretty trivial to document
this process ?
> The examples directory is just intended to give developers a flavor of
> how to write a loadable builtin.
perhaps, but i quoted this thread that covers one ("finfo") that was explicitly
called out ...
> The original rationale is that the loadable builtins can be installed
> anywhere, though the example Makefile does not suggest a location, but
> that developers are the ones who need a development environment (the bash
> source tree). Linux vendors could build and include loadable builtins
> as part of their distributions, for example, since they obviously have
> the bash sources.
Gentoo does this as well -- by hand. seems pretty easy to add a rule that'd
install it.
> I suppose the first thing needed to make that work, and maybe the only
> thing needed to make that work, is agreement on the name of a search path
> environment variable that enable can use to find loadable builtins.
Gentoo uses a subdir of the ABI libdir (e.g. /usr/lib64/bash/). but i think
that could easily be a configure time option that'd simply default to
$libdir/bash/.
-mike
signature.asc
Description: Digital signature
