ANTLR4 and Go

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

 



HISTORY
-------
The antlr4-project package was introduced in early 2020.  It contains
a parser generator written in Java, and runtimes for various
languages, currently Java, JavaScript, C++, Python, and Go.  At the
time, various packages had bundled copies of the language runtimes,
which were moved to the new package.

Later, I opened PRs against the packages with antlr4-generated
parsers, to force them to regenerate the parsers at build time.  This
was necessary because of a backwards incompatibility introduced into
the runtimes.  We needed to make sure the packaged runtimes matched
the parser code to avoid having parsers explode at runtime.

Later still, I discovered that we had duplicate Go runtimes in Fedora.
In addition to golang-antlr4-runtime-devel, a subpackage of
antlr4-project, we also had golang-github-antlr-antlr4.  I asked the
maintainers of that package to retire it in favor of the subpackage,
which they did.

When antlr4 version 4.11.0 was released, we ran into a problem.  That
version once again made some backwards incompatible changes, and not
all packages were ready to move to the new version.  Over time, the
various upstreams made the necessary changes.  However, the Go
ecosystem has an issue: a new version of golang-github-google-cel is
needed to update antlr4-project, but it in turn requires an update of
golang-google-genproto, which requires adding a massive number of new
packages.  See https://bugzilla.redhat.com/show_bug.cgi?id=2224119.

BLOCKED WORK
------------
Matters have remained in that state for some time.  However, the
pressure to update antlr4-project has been growing.  I've got a user
who wants the Typescript code generator, which was added in version
4.11: https://bugzilla.redhat.com/show_bug.cgi?id=2244607.

A new version of sympy was just released (1.13.0), and it wants antlr4
version 4.11 or later.

THE FUTURE
----------
I need those involved in Go packaging to do something so we can
unblock the antlr4-project update.  I suggest one of the following:

1. Open review requests for the new packages needed to update
   golang-google-genproto.  I will help review them.  (Note that I am not
   volunteering to review ALL of them, but I will dedicate as much time as I
   can to reviewing them.)  This would also solve another problem related to
   the old version of golang-google-genproto:
   https://bugzilla.redhat.com/show_bug.cgi?id=2262897.

2. Bring back golang-github-antlr-antlr4, and add Obsoletes and Provides for
   golang-antlr4-runtime-devel.  This will let you stay on antlr 4.10
   indefinitely.  However, you won't be able to regenerate parsers with the
   antlr4 tool, as the runtime would not be compatible with the generated
   parsers.

Please let me know what you want to do so I can plan the
antlr4-project and sympy updates.

I have also posted this message here:
https://discussion.fedoraproject.org/t/antlr4-and-go/125131.

Regards,
-- 
Jerry James
http://www.jamezone.org/
-- 
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx
Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Users]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux