[Geany] "plugins" for plugins

Jeff Pohlmeyer yetanothergeek at xxxxx
Mon Jan 14 14:27:33 UTC 2008


On Jan 14, 2008 7:50 AM, Nick Treleaven <nick.treleaven at btinternet.com> wrote:
> On Sun, 13 Jan 2008 22:30:51 -0600
> "Jeff Pohlmeyer" <yetanothergeek at gmail.com> wrote:

> > If that symbol is NOT found, or if it evaluates to FALSE,
> > then continue on loading the plugin as always. But if the
> > symbol exists and is true, then close the module and
> > re-open it *without* the G_MODULE_BIND_LOCAL flag.

> We needed to add it in r1734:
> "Use G_MODULE_BIND_LOCAL for plugins to prevent symbol shadowing by
> other modules, and to help detect unresolved symbols at loading time."
>
> IIRC without it calling info() from within a plugin when > 1 plugins
> were loaded without G_MODULE_BIND_LOCAL one of the plugins would get the
> wrong plugin name.

Yes, I remember that conversation, but I thought we decided there
wasn't  any real-world reason why a plugin would need to call its
own  info() function.

> I don't think we should allow any loading without it, because things
> can silently go wrong.

I really wish you would reconsider it, the current
situation leaves me with the temptation of trying to
cram more and more functionality into the plugin to
compensate for its lack of dynamic module support,
and it leaves script writers in the position of being
stuck with whatever feature set I think they need.

( Not to mention explaining to users why SciTE is able
  to load Lua modules, but Geany is not. :-)


If we can support dynamic Lua modules, the whole universe
opens up  --  ready-made support for expat, pcre, libtidy,
networking, etc...

 - Jeff



More information about the Users mailing list