[
https://issues.apache.org/jira/browse/TAP5-2806?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18131859#comment-18131859
]
ASF subversion and git services commented on TAP5-2806:
-------------------------------------------------------
Commit 91a073c35c7ccb5552f678f4f517d282403f2c2d in tapestry-5's branch
refs/heads/property-expression-parser from Ben Weidig
[ https://gitbox.apache.org/repos/asf?p=tapestry-5.git;h=91a073c35 ]
TAP5-2806: Accept every Java identifier character in property expressions
The lexer accepted a fixed list of UTF-16 ranges. It rejected Hangul,
'µ', '€' and supplementary characters, and accepted characters that
are no Java identifier part, like U+1680. Identifiers are now scanned
by code point with Character.isJavaIdentifierStart/Part, and
identifier-ignorable characters stay rejected. Keywords still match
ASCII letters only, so 'thıs' remains an identifier.
The parser imports the lexer's token types, but generateGrammarSource
regenerated only the changed grammar. A change to the lexer left the
parser with stale token types, and the build cache kept that output.
Every grammar change now regenerates both.
> 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)