On Sat, Mar 07, 2026 at 10:05:52AM +0100, Patrice Dumas wrote:
> On Fri, Mar 06, 2026 at 10:00:44PM +0000, Gavin Smith wrote:
> > Would it be right to describe your recommendation as splitting the
> > XS modules into two groups, "core" modules which would be loaded with
> > with requiredifenabled, and other modules where fall-back to pure Perl
> > doesn't cause any other modules to fail?
> 
> An additional change I propose is that in the default case, even for the
> modules where fall-back to pure Perl doesn't cause failures, the default
> case should be the same as setting requiredifenabled, ie texi2any
> would die.  Another possibility should be available, maybe
> TEXINFO_XS=permissive, TEXINFO_XS=fallback or something like that, and
> if set, the modules where fall-back to pure Perl doesn't cause failures
> would fall-back silently.

I think it would be good to make requiredifenabled the default.

We could have fewer options for TEXINFO_XS.  We could eliminate
the current "default" option (try to load, silent fallback), and
"warn" (try to load XS modules, warn if they couldn't be).

"debug" would be like "requiredifenabled", just printing a trace of the
process of trying to load the modules, but erroring out in case of a failure.
We shouldn't need a separate variable to control debugging output as there
will not be many options.

Setting TEXINFO_XS to "omit" would still work as before, as would disabling
the XS modules at configure time.

So there could only be three options: "requiredifenabled", "debug" and "omit".

It's unclear to me exactly what the dependencies are among the modules/support
libraries, and this would eliminate the chance for one XS module to
depend on another that fails to load.

We don't have any kind of dependency tracking between the XS modules
and we may not load the modules in a predictable order and so it seems
like it would be difficult to make a module only load if another module
can be loaded.

As we are moving towards texi2any being a C program it makes sense to
require the XS modules to work when installed.  This would help to detect
any conditions where the modules are built, installed, but then don't load.




Reply via email to