Hi Eric, On Sep 13, 2007, at 1:25 PM, Eric Blake wrote:
thanks for the review
My pleasure... you're doing the hard work though! :-D
According to Gary V. Vaughan on 9/11/2007 1:42 PM:Perhaps we could add an options parameter to load() like this? load(`nosuchmodule', `nocomplain')I'm thinking more like: load(`nosuch') == load(`nosuch', `fatal') => die immediatelyload(`nosuch', `error') => issue a warning to stderr, affect exit status,but proceed (unless -EE specified on command line) load(`nosuch', `warn') => issue a warning to stderr, leave exit status alone (unless -E specified on command line) load(`nosuch', `silent') == load(`nosuch', `quiet') => like sinclude - proceed without warning and without affecting exit status
Looks good. Maybe similar extensions for include would be good too?
It certainly can't do any harm to be more careful about this. HEAD libltdl doesassume that only one module loading extension point will be responsiblefor loadingof any module. That is, if a module is written to be loaded by the m4module loader, then it shouldn't be loaded by a different module system (say the libsnprintfv extension point -- if we reimplemented m4's format builtin using libsnprintfv).Really? I thought the whole point of adding the lt_dlinterface_id was toallow multiple loaders. Anyways, more on this in response to 3/n.
You're right. What I meant was that this very system won't work if a module is written to meet two interfaces, because both libsnprintfv and libm4 could potentially load the same code through two different extension points. When I wrote all the interface checking code itseemed like something no-one would want to do anyway, hence the assumption
that no-one would try to do so...
I'm loathe to keep adding builtins where we can extend existing builtinsto getthe same functionality in a clean intuitive way. m4modules is not yetbound to provide backwards compatibility, so we could simply have it add newly loaded modules to the list each time they are successfully loaded. Membership tests would be unaffected, and a macro to count occurences could easily work out the refcount of a named module.True. But the current m4modules implementation is quite dependent on thelibltdl traversal algorithm (currently stack-based, but lists multiply loaded modules only once and in the order they were first loaded). Changing m4modules to list every load of every module seems nicer thanhaving a new 'refcount' builtin, so I can revert that part of the patch,but it means m4modules will now have to maintain an explicit list of module loads, rather than relying on libltdl's list.
Okay. We might try to keep any glue code that works around deficiencies
in libltdl isolated, so that after the next libtool release we can
improve libltdl and throw away the glue in m4.
Cheers,
Gary
--
())_. Email me: [EMAIL PROTECTED]
( '/ Read my blog: http://blog.azazil.net
/ )= ...and my book: http://sources.redhat.com/autobook
`(_~)_ Join my AGLOCO Network: http://www.agloco.com/r/BBBS7912
PGP.sig
Description: This is a digitally signed message part
_______________________________________________ M4-patches mailing list [email protected] http://lists.gnu.org/mailman/listinfo/m4-patches
