[
https://issues.apache.org/jira/browse/TAP5-2806?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18131860#comment-18131860
]
ASF subversion and git services commented on TAP5-2806:
-------------------------------------------------------
Commit 578cef219792a19d45052b0c1a706faccc561139 in tapestry-5's branch
refs/heads/property-expression-parser from Ben Weidig
[ https://gitbox.apache.org/repos/asf?p=tapestry-5.git;h=578cef219 ]
TAP5-2806: Keep whitespace handling in the lexer grammar only
BaseLexer skipped whitespace itself before scanning an identifier,
because the generated lexer would otherwise skip it and then fail on
the identifier behind it. Whitespace was therefore defined twice.
Whitespace is now a hidden-channel token instead of being skipped. The
generated lexer returns after it, BaseLexer checks for an identifier on
every call, and the parser's token stream drops the hidden token.
> Upgrade Antlr 3 to 4
> --------------------
>
> Key: TAP5-2806
> URL: https://issues.apache.org/jira/browse/TAP5-2806
> Project: Tapestry 5
> Issue Type: Improvement
> Components: beanmodel
> Reporter: Ben Weidig
> Assignee: Ben Weidig
> Priority: Minor
>
> Currently, Antlr 3.5.2 is used by beanmodel.
> While there is no immediate pressure to upgrade or obvious security
> implications, migrating to 4 would provide long-term benefits for the project.
> h2. Rationale
> * {*}Improved architecture{*}: Antlr 4 was a rewrite of the platform. Even
> though 3 still has a large user base, 4 was released in 2013, is a more
> modern and maintainable approach. Over time, resources and knowledge
> regarding 3 will diminish.
> * {*}Performance{*}: 4 offers better parsing efficiency and memory usage.
> The grammar syntax changes allow the simplification of certain constructs
> currently present in the Tapestry grammar.
> * {*}Continued Development{*}: While 3 is stable, since 3.5.2 in 2014,
> there's been only a singular release, 3.5.3, in 2022, which mainly included
> project management changes. 4 has seen frequent-ish releases over time, with
> the last one being 4.13.2 in 2024.
> * {*}Technical debt reduction{*}: Upgrading now as part of regular
> maintenance would be less disruptive than being forced to upgrade under
> pressure due to a future security advisory or compatibility issue.
> h2. Proposed Approach
> * Open up BeanModelSourceBuilder to make it easier to get a
> PropertyConduitSource without the full IoC
> * Create tests using the current Antlr 3 grammar to verify Tapestry behavior
> * Upgrade to 4 and adapt our code as necessary
> * Verify success through testing
--
This message was sent by Atlassian Jira
(v10.3.26#10030026)