On Mon, Aug 11, 2025 at 03:21:05PM +0300, Eli Zaretskii wrote:
> > For parsing, structure, transformations, conversion back to Texinfo,
> > conversion to raw Text and to identifiers, conversion to HTML and main
> > program (texi2any.pl), there is a complete coverage in C, so every
> > function in the Perl codes is supposed to have a at least one
> > corresponding function (or, sometime, when there is not a perfect
> > mapping between the functions in the two langauges, equivalent code) in
> > C.  This includes Texinfo::Indices, Texinfo::ManipulateTree,
> > Texinfo::Document, Texinfo::Translations and Texinfo::OutputUnits.pm,
> > and most of Texinfo::Common and Texinfo::Convert::Unicode functions used
> > in the previously mentionned codes.  There can be, in addition, some XS
> > interface code, and some code to call Perl from C.  For conversion
> > helper functions, such as functions in Texinfo::Convert::Converter,
> > probably some functions in Texinfo::Common and some functions in
> > Texinfo::Convert::Utils, but probably not all (I haven't checked in
> > details).
> > 
> > For the main program, the corresponding code is in texi2any.c and
> > convert/texinfo.c.  For the other codes, sometime the organization of
> > the code is similar to Perl, but not always, because of the different
> > contraints for both codebases.  For instance, delayed loading of Perl
> > modules for Transformations on the Perl side, and Gnulib C/Perl C
> > constraints of C + no undefined.
> 
> Perhaps we should have an internal-design README which would include
> all this important information (and then some)?

Thanks, Patrice, for the detailed response.

Eli: There is README-hacking and tta/README.  There is more detail in the latter
file, but they don't currently say anything specific about the problem I
was asking about.

You could call the problem I was asking about a "maintenance dependency" in
that when one part of the project is altered, another part should be altered
as well.  However, this dependency is not evident from the involved source
code files.

I have in mind to add more detail to tta/README, and also to put comments at
the top of the affected source code files.  (Function by function would be
too much work.)  Hopefully it will be possible (in most cases) to name the
exact file that contains the corresponding Perl, C or XS source code.



Reply via email to