bug-texinfo
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: errors with TEXINFO_XS=omit


From: Gavin Smith
Subject: Re: errors with TEXINFO_XS=omit
Date: Sun, 15 Nov 2020 15:27:56 +0000
User-agent: Mutt/1.9.4 (2018-02-28)

On Sun, Nov 15, 2020 at 03:13:20PM +0100, Patrice Dumas wrote:
> Hello,
> 
> Actually it is because of a change I am doing, as I cannot reproduce
> with a fresh clone of the repository.  But still there is something
> strange going on with those error messages.  Any idea on what's going
> on?  
> 
> On Sun, Nov 15, 2020 at 02:58:29PM +0100, Patrice Dumas wrote:
> > Hello,
> > 
> > I would like to use only the perl code, so I set 
> > export TEXINFO_XS=omit
> > 
> > But then I get some error messages:
> > 
> > expanded_formats not a possible customization in Texinfo::Parser::parser
> > include_directories not a possible customization in Texinfo::Parser::parser
> > ENABLE_ENCODING not a possible customization in Texinfo::Parser::parser
> > FORMAT_MENU not a possible customization in Texinfo::Parser::parser
> > values not a possible customization in Texinfo::Parser::parser
> > Can't locate object method "line_error" via package "Texinfo::Parser" at 
> > ../tp/Texinfo/ParserNonXS.pm line 3985, <FH> line 3.
> > 
> > for example, in tp:
> > 
> > TEXINFO_XS=omit
> > export TEXINFO_XS=omit
> > ./texi2any.pl tests/formatting/simplest.texi 
> > 
> > I can't see what's going wrong, in particular it doesn't seems that
> > Texinfo/Report.pm where line_error is overriden in XS.

These messages indicate a problem with the Texinfo::Parser namespace.  It
is odd because you are managing to execute code in the Texinfo/Parser.pm
file which declares the namespace as "Texinfo::Parser", so all symbols
(such as %parser_default_configuration) should go into that namespace.

It is just a hunch but are you creating any new Parser objects in your new
code?

You could also try running with TEXINFO_XS=debug to see if anything odd is
happening, such as modules being initialised twice.

I remember in the past there were subtle problems with overriding Perl
namespaces by typeglob assignments where this would be ineffective for
some code if done too late, but I don't believe that code is in there now.
Both the XS and pure Perl modules should put their symbols in the same
namespace (so at the top of Texinfo/ParserNonXS.pm there is the line
"package Texinfo::Parser", not "package Texinfo::ParserNonXS").

If I remember correctly it should get inherited symbols (like
line_error) when the import function runs.  import is overridden in
ParserNonXS.pm but this calls the usual import method Exporter::import
at the end, so this should be OK.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]