On 2023-03-24 12:04, Chet Ramey wrote:
However, Bash's devel branch still has old-style function definitions
and therefore won't compile with a strict C23 compiler. For example,
get_variable_value in variables.c is old-style. I assume there would
be interest in fixing remaining areas where Bash won't port to C23?
Please report those as you find them.
I reported many of the ones I found to bug-bash just now. Many more such
issues remain, unfortunately.
In looking into this I had some trouble reading the code - perhaps you
could let me know if there's a roadmap for newbies? Or if there isn't
one perhaps we could write one. That might help attract other people to
make further improvements.
Here's a brief summary of my guesses at the situation; please correct me
if I'm wrong. Perhaps this could serve as a basis for a roadmap.
* Ignore everything under the CWRU directory, because it does not
contribute anything to any builds. Similarly for lib/posixheaders.old
and support/config.*.*. (What other code should I ignore, and what's the
motivation for keeping the unused code in the repository?)
* Ignore files like 'configure' and 'doc/bash.pdf' that are
automatically generated. (Is there a list of which files these are? It's
not clear to me.)
* Ignore lib/glob, lib/intl, lib/malloc, and lib/termcap as these are
all taken from other projects and fixes should be sent there. (The other
lib/* directories belong to Bash, though.)
* Ignore most of the files in m4/* as they're taken from Gnulib. (Which
files?)
* Ignore the po/* files as they're all automatically generated and/or
synced from the Translation Project somehow.
* Ignore support/config.guess and support/config.sub as it's taken from
the GNU config upstream. Likewise for support/config.rpath, taken from
GNU Libtool.
PS. What are the procedures for syncing from upstream? Is it all done by
hand? In other projects we automate this as much as possible - would a
patch to do that be welcome?