Releases: antlr/antlr4
4.13.2
Minor updates release.
Pull requests grouped by target
cpp target
- [Cpp] Use target_include_dirs for cmake targets (target:cpp)
- Update C++ documentation to state that C++17 is required (comp:doc, target:cpp)
go target
- fix go-target.md, remove duplicate 'get' (comp:doc, target:go)
javascript target
- fix(javascript): fix types not being recognized for NodeNext module resolution (target:javascript)
- [Javascript] Fix broken package entrypoints (target:javascript, type:cleanup)
python3 target
- name 'state' conflict with Python3 runtime. (target:python3)
Contributors
- 1 items: njnobles
- 1 items: Andreas Buhr (andreasbuhr)
- 1 items: Eric Vergnaud (ericvergnaud)
- 1 items: Gökhan Kurt (KurtGokhan)
- 1 items: johannesheesterman
- 1 items: Alex Miller (Codex-)
- 1 items: GP4cK
- 1 items: Alessandro Gatti (agatti)
- 1 items: cyqw
- 1 items: css521 (css521)
4.13.1
Pull requests grouped by target
csharp target
- [CSharp] Fix for #4386 -- change signatures for ReportAttemptingFullContext() and ReportContextSensitivity() to be identical to all other targets (target:csharp, type:cleanup)
go target
- Move GetText(), SetText(), and String() from CommonToken to BaseToken (target:go, type:cleanup)
- Restore "Obtained from string" source name. (target:go, type:cleanup)
- fix: Fix very minor code issues spotted by goreportcard.com (target:go, type:cleanup)
java target
- Java: suppress
this-escape
warning introduced in JDK 21. (actions, target:java)
javascript target
- Adds default targets for babel configuration (target:javascript)
- fix dependabot warnings (target:javascript, type:cleanup)
swift target
- [SWIFT] Add Antlr4Dynamic product (target:swift)
- Cleanup duplicate SwiftTarget code (target:swift, type:cleanup)
dart target
- [Dart] Fix for #4320--export additional types (type:bug, target:dart)
Contributors
- 2 items: Ken Domino (kaby76)
- 2 items: Jerry Berg (googleberg)
- 2 items: ericvergnaud
- 1 items: Yichen Yan (oraluben)
- 1 items: Grzegorz Spryszyński (GrzegorzSpryszynski-TomTom)
- 1 items: tison (tisonkun)
- 1 items: Nacho Cordón (ncordon)
- 1 items: Hervé Boutemy (hboutemy)
- 1 items: Jim Idle (jimidle)
4.13.0
This is primarily change to the Go target itself and its release location, which has moved to https://github.com/antlr4-go/antlr. The code still lives and this repository, but for release purposes we've created a new organization and repository so that Go users can pull versions down according to the repository and label rules
Issues fixed
- antlr4 jar doubled in size in 4.9.3 (unicode, comp:performance)
- Go: exponentially bad/absymal performance as of ... (type:bug, target:go)
- Go runtime panic (type:bug, target:go)
Improvements, features
- Update LexerATNSimulator.cs with virtual Consume (type:improvement, target:csharp)
- Feature/fixembedding (type:improvement, target:go, comp:performance)
- Provide Javascript port of TokenStreamRewriter (type:feature, target:javascript, target:typescript)
Pull requests grouped by target
csharp target
- Update LexerATNSimulator.cs with virtual Consume (type:improvement, target:csharp)
cpp target
- Optimize the concurrent performance of Cpp target by more than 10 times (target:cpp, comp:performance, threading)
- Issue #4185: Too many artifacts fail to upload (comp:build, target:cpp, comp:testing)
- Limit use of Posix threads to Unix (target:cpp, threading)
- cmake: Fix output dir for Visual Studio generator (comp:build, target:cpp)
- Cpp: Remove code duplication (target:cpp, type:cleanup)
go target
- Feature/newrepo - Transition Go code to new runtime repo (target:go)
- Feature/docsNew release documentation and release notes for Go (comp:doc, target:go)
- Change closureCheckingStopState from recursive to iterative (target:go)
- Export generated data structures (target:go)
- fix: Allow CommonTokenStream to reset properly (target:go)
- feat: Adds actual usable @ actions to the go templates (target:go)
- Feat: Clean up go input streams to be a little more efficient (target:go)
- Add support to Golang codegen for booleans (target:go)
- Clean up go runtime testrig (target:go, comp:testing)
- feat: More reasonable wins in performance (target:go)
- Feature/memory (target:go, comp:performance)
- More performance improvements (target:go, comp:performance)
- Improve PredictionContext performance, fix bugs (target:go)
- Don't Panic! 50% plus performance improvement (target:go, comp:performance)
- Fix the prediction cache and the comparison algorithms from the legacy code (target:go)
- Improve runtime performance of the Go runtime test suite (target:go, comp:performance)
- Fix #3967 Merge of Prediction Context arrays was broken (target:go)
- Feature/fixembedding (type:improvement, target:go, comp:performance)
- Feature/docclean Greatly improve the godoc comments in the runtime (comp:doc, target:go)
- Feature/gotestfix (target:go)
- Feature/gotestfix Fixes Go runtime test suite (target:go, comp:testing, type:cleanup)
- Feature/fix 4150 - prevent invalid codegen in Go (type:bug, target:go)
- Remove redundant source code from go runtime (target:go, type:cleanup)
- fix: Some code that should have been destined for /v4 was instead put… (target:go, type:cleanup)
javascript target
- [JavaScript] Exporting syntaxErrorsCount (target:javascript)
- [Javascript] Added support for commonjs in nodejs package (target:javascript)
- do not modify String.prototype in js package (target:javascript)
- Provide Javascript port of TokenStreamRewriter (type:feature, target:javascript, target:typescript)
python3 target
- Minor typo (target:python3)
- Remove redundant name check in multiple files (target:python3)
- [Python3] Move the metadata into
PEP 621
-compliantpyproject.toml
. (comp:build, target:python3)
Contributors
- 23 items: Jim Idle (jimidle)
- 4 items: ericvergnaud
- 2 items: HS (hs-apotell)
- 2 items: Josua Frank (Sharknoon)
- 2 items: Robert Adam (Krzmbrzl)
- 1 items: Rodrigo Antonio Godinho da Silva (killerall)
- 1 items: Tao Wang (wangtao9)
- 1 items: Michael de Hoog (mdehoog)
- 1 items: Ivan Kochurkin (KvanTTT)
- 1 items: Mikołaj Podbielski (mikolajpod)
- 1 items: Ahmad Tameem (Tameem97)
- 1 items: Adrian Jutrowski (Tarjei400)
- 1 items: Jon Harris (jharris4)
- 1 items: Alberto Simões (cxambs)
- 1 items: KOLANICH (KOLANICH)
- 1 items: hieunguyen2211
- 1 items: Leonardo Sarmiento (Leo1690)
- 1 items: Prashant-Jagtap
- 1 items: kirides
- 1 items: Terence Parr (parrt)
- 1 items: Eiríkur Fannar Torfason (eirikur-grid)
4.12.0
The 4.12.0 release is primarily about the new TypeScript target created by @ericvergnaud. There are also a number of fixes to the various targets, as you can see from the descriptions below.
Issues fixed
- github actions now fail for python2 and ubuntu clang and ubuntu swift (comp:runtime, comp:build, comp:testing)
- js mergeArrays output differs from java (atn-analysis, target:javascript)
- C++ target fails Performance/DropLoopEntryBranchInLRRule_4.txt (atn-analysis, type:bug, target:cpp)
- Wrong grammarFileName in generated code (code-gen, type:bug)
- C++ crashes on new test ParserExec/ListLabelsOnRuleRefStartOfAlt.txt (atn-analysis, type:bug, target:cpp)
- [JavaScript runtime] Bad field name, bad comments (type:bug)
Improvements, features
- Fully qualify std::move invocations to fix -Wunqualified-std-cast-call (type:improvement, target:cpp)
- Extract FileUtils updates by @ericvergnaud (type:improvement, cross-platform-issue, comp:testing)
- Extract unit test updates by @ericvergnaud needed for TypeScript (type:improvement, comp:testing)
- [Go target] Fix for #3926: Add accessors for tree navigation to interfaces in generated parser (trees-contexts, code-gen, type:improvement, target:go)
- GitHub Workflows security hardening (actions, type:improvement, comp:testing)
Pull requests grouped by target
csharp target
- Generate identical atn simulation output across targets to compare parsing functionality (atn-analysis, target:java, target:javascript, target:python2, target:python3, target:csharp, comp:doc, target:cpp, target:go, comp:testing)
cpp target
- Fully qualify std::move invocations to fix -Wunqualified-std-cast-call (type:improvement, target:cpp)
- Cpp: cmake improvements (comp:build, target:cpp)
- Gcc version fix (comp:build, target:cpp, comp:testing)
- Fix cpp equals bug #3959 (atn-analysis, type:bug, target:cpp)
- Fix 3845 nullptr cpp (atn-analysis, type:bug, target:cpp)
- Generate identical atn simulation output across targets to compare parsing functionality (atn-analysis, target:java, target:javascript, target:python2, target:python3, target:csharp, comp:doc, target:cpp, target:go, comp:testing)
- Updating the files in the Xcode project for ANTLR4 Cpp runtime. (target:cpp)
- Fixing reserve word NULL for cpp targets (grammars, target:cpp, type:cleanup)
- [C++] Fix the compiler errors reported by GCC 7 (target:cpp)
go target
- Generate identical atn simulation output across targets to compare parsing functionality (atn-analysis, target:java, target:javascript, target:python2, target:python3, target:csharp, comp:doc, target:cpp, target:go, comp:testing)
- Remove unnecessary getter (target:go, type:cleanup)
- [Go target] Fix for #3926: Add accessors for tree navigation to interfaces in generated parser (trees-contexts, code-gen, type:improvement, target:go)
- fix: #3758 Extrememly poor performance on poorly written grammars (target:go, comp:performance)
- fix: Restore missing changes to v4 of go runtime (target:go, type:cleanup)
- [Go] Add Iterative tree walker in go (trees-contexts, target:go)
java target
- Generate identical atn simulation output across targets to compare parsing functionality (atn-analysis, target:java, target:javascript, target:python2, target:python3, target:csharp, comp:doc, target:cpp, target:go, comp:testing)
javascript target
- Js support encoding in file stream + packaging issues (target:javascript)
- Fix js webpack issue (target:javascript)
- Javascript fix missing export (target:javascript)
- Fix issue 3965 (atn-analysis, target:javascript)
- Generate identical atn simulation output across targets to compare parsing functionality (atn-analysis, target:java, target:javascript, target:python2, target:python3, target:csharp, comp:doc, target:cpp, target:go, comp:testing)
python2 target
- Python LexerNoViableAltException is created with messages (#4095) (target:python2, target:python3)
- Generate identical atn simulation output across targets to compare parsing functionality (atn-analysis, target:java, target:javascript, target:python2, target:python3, target:csharp, comp:doc, target:cpp, target:go, comp:testing)
python3 target
- Python LexerNoViableAltException is created with messages (#4095) (target:python2, target:python3)
- Generate identical atn simulation output across targets to compare parsing functionality (atn-analysis, target:java, target:javascript, target:python2, target:python3, target:csharp, comp:doc, target:cpp, target:go, comp:testing)
swift target
- Small tweaks to Swift.stg to allow throwing operations in actions (actions, target:swift, type:cleanup)
- Fix two Swift profiling bugs (atn-analysis, target:swift)
- Don’t specify a default type for the exported Swift package library (comp:build, target:swift)
- Package.swift: provide an option to link against ANTLR 4 statically (comp:build, target:swift)
- Bring back the Package.swift in the project's root (actions, comp:build, target:swift)
php target
- php composer install (comp:build, comp:testing, target:php)
- Fix PHP test template and improve docs about debugging (atn-analysis, comp:doc, target:php)
- Add ATN tracing support for PHP target (target:php)
dart target
Contributors
- 14 items: Terence Parr (parrt)
- 12 items: ericvergnaud
- 2 items: Ken Domino (kaby76)
- 2 items: Marcos Passos (marcospassos)
- 2 items: Jeremiah Boyle (j3r3miah)
- 2 items: Nikolay Edigaryev (edigaryev)
- 2 items: Jim Idle (jimidle)
- 1 items: Daniel Snider (danielsnider)
- 1 items: Jordan Rupprecht (rupprecht)
- 1 items: Sofyan-SU
- 1 items: Mykola (Nickolas) Pokhylets (nickolas-pohilets)
- 1 items: Robert Adam (Krzmbrzl)
- 1 items: HS (hs-apotell)
- 1 items: Chris Kolbu (nesevis)
- 1 items: Tony Arnold (tonyarnold)
- 1 items: Brad B (BradB132)
- 1 items: Eric Mutta (ericmutta)
- 1 items: acetousk
- 1 items: Chris (chris-miner)
- 1 items: @TT (1sand0s)
- 1 items: FireWolf (0xFireWolf)
- 1 items: Gunnlaugur Thor Briem (gthb)
- 1 items: Alex (sashashura)
- 1 items: Hervé Boutemy (hboutemy)
- 1 items: Rishabh Arya (rishabh-arya95)
4.11.1 (just fixes 4.11.0 release issue)
Just fixes 4.11.0 release issue. I forgot to change runtime tool version so it didn't say SNAPSHOT.
4.11.0
4.11.0 consist primarily:
- a major rebuild of the Go target by Jim Idle. Please see Go target doc for more information, as it now requires the go module stuff.
- huge internal refractoring of testing and various target speed improvements by Ivan Kochurkin
- Getting all targets to run on all operating systems using github actions by HS.
The details by type and target follow.
Issues fixed
- Disable failing CI tests in master (comp:build, comp:testing)
- Create accessor for Go-based IntervalSet.intervals (target:go)
- Grammar Name Conflict Golang with SPARQL issue (target:go, type:cleanup)
- Dependency declaration error in ANTLR 4.10.1 (comp:build)
- Drop old version of Visual Studio C++ (2013, 2015, 2017) (comp:build, target:cpp)
- Circular grammar inclusion causes stack overflow in the tool. (comp:tool, type:bug)
- Cpp, Go, JavaScript, Python2/3: Template rendering error. (code-gen, comp:runtime, target:java, target:javascript, target:python2, target:python3, target:go)
Improvements, features
- Augment error message during testing to include full cause of problem. (type:improvement, comp:testing)
- Include swift & tool verification in CI workflow (type:improvement, comp:build, cross-platform-issue, target:swift)
- Issue #3783: CI Check Builds (type:improvement, comp:build, cross-platform-issue, comp:testing)
- Parallel lock free testing, remove potential deadlocks, cache static data, go to descriptor via test (comp:runtime, type:improvement, comp:testing)
- update getting-started doc (type:improvement, comp:doc)
- Getting Started has error (type:improvement, comp:doc)
- new nuget directory for building ANTLR4 C++ runtime as 3 Nuget packages (type:improvement, comp:build, target:cpp)
- Add interp tool like TestRig (comp:tool, type:feature)
- Issue 3720: Java 2 Security issue (type:improvement, target:java)
- Cpp: Disable warnings for external project (type:bug, type:improvement, target:cpp)
- Fix Docker README for arm OS user (type:improvement, comp:doc)
Pull requests grouped by target
csharp target
- Runtime tests fixes (C++, Python, PHP, C#) (target:python2, target:python3, target:csharp, target:cpp, comp:testing, target:php)
- Constant folding for Python and other runtimes (code-gen, target:java, target:javascript, target:python2, target:python3, target:csharp, target:swift, target:cpp, target:go, target:dart, comp:performance, target:php)
cpp target
- Fix 2016 round 2 (type:bug, target:java, target:javascript, target:python2, target:python3, target:swift, target:cpp, target:go)
- Cpp: Link to threads library (comp:build, target:cpp)
- [C++] Remove libuuid dependency (comp:build, target:cpp, type:cleanup)
- Fix CMake syntax for variable expansion (comp:build, cross-platform-issue, target:cpp)
- Don't make class SementicContext::Empty final. (cross-platform-issue, target:cpp)
- new nuget directory for building ANTLR4 C++ runtime as 3 Nuget packages (type:improvement, comp:build, target:cpp)
- Runtime tests fixes (C++, Python, PHP, C#) (target:python2, target:python3, target:csharp, target:cpp, comp:testing, target:php)
- Cpp: Disable warnings for external project (type:bug, type:improvement, target:cpp)
- FindANTLR: Fix version RegEx (type:bug, comp:build, target:cpp)
- Constant folding for Python and other runtimes (code-gen, target:java, target:javascript, target:python2, target:python3, target:csharp, target:swift, target:cpp, target:go, target:dart, comp:performance, target:php)
- Improve ExternalProject cmake file (actions, comp:build, target:cpp)
- Windows specific fixes (comp:build, cross-platform-issue, target:cpp)
go target
- feat: Add a deprecation message to the existing v1 module (target:go, type:cleanup)
- Feature/gomod4110 (target:go, type:cleanup)
- Optimize go tests runner and renable CircleCI go tests (comp:build, target:go, comp:testing)
- fix: #2016 Fix Go template list reference, go runtime and got test te… (target:go, type:cleanup)
- Fix 2016 round 2 (type:bug, target:java, target:javascript, target:python2, target:python3, target:swift, target:cpp, target:go)
- doc: Start improving docs for #1374 (comp:doc, target:go, type:cleanup)
- fix: #2016 - Generate correct iGo code for lists in a grammar, such a… (grammars, target:go)
- fix: #2826 Go template is incorrect for dynamic scopes (type:bug, target:go)
- fix: #3758 Allow for string being a keyword and fix go template to us… (target:go, type:cleanup)
- feat: Reduce initial memory allocations for collections (parsers, target:go)
- Feature/newhash (target:go, comp:performance)
- fix: Fixes for https://github.com/antlr/antlr4/issues/3718 (type:bug, target:go, type:cleanup)
- Add Go accessor for IntervalSet.intervals (target:go)
- Ensure that only the tokens needed are fetched (target:java, target:go, comp:performance)
- Constant folding for Python and other runtimes (code-gen, target:java, target:javascript, target:python2, target:python3, target:csharp, target:swift, target:cpp, target:go, target:dart, comp:performance, target:php)
java target
- Fix 2016 round 2 (type:bug, target:java, target:javascript, target:python2, target:python3, target:swift, target:cpp, target:go)
- Add
@SuppressWarnings("CheckReturnValue")
to prevent error_prone lib errors. (target:java) - Fixing bug identified by https://github.com/antlr/antlr4/discussions/… (target:java, type:cleanup)
- Ensure that only the tokens needed are fetched (target:java, target:go, comp:performance)
- Issue 3720: Java 2 Security issue (type:improvement, target:java)
- Constant folding for Python and other runtimes (code-gen, target:java, target:javascript, target:python2, target:python3, target:csharp, target:swift, target:cpp, target:go, target:dart, comp:performance, target:php)
- Fix OSGi imports (comp:build, target:java)
javascript target
- Fix 2016 round 2 (type:bug, target:java, target:javascript, target:python2, target:python3, target:swift, target:cpp, target:go)
- add license prefix (target:javascript)
- Constant folding for Python and other runtimes (code-gen, target:java, target:javascript, target:python2, target:python3, target:csharp, target:swift, target:cpp, target:go, target:dart, comp:performance, target:php)
python2 target
- Fix 2016 round 2 (type:bug, target:java, target:javascript, target:python2, target:python3, target:swift, target:cpp, target:go)
- [py2] Fix SyntaxError due to F string (type:bug, target:python2)
- [Python 3] use build and twine to publish source and wheel (comp:build, target:python2, target:python3)
- Fix #3508: Document the $parser attribute and its use in target-agnostic grammars. (target:python2, target:python3, comp:doc)
- Runtime tests fixes (C++, Python, PHP, C#) (target:python2, target:python3, target:csharp, target:cpp, comp:testing, target:php)
- Constant folding for Python and other runtimes (code-gen, target:java, target:javascript, target:python2, tar...
4.10.1
Tiny update to fix build issue where java requirement for runtime was 11 not 1.8.
What's Changed
- [C++] Remove reference to antlrcpp:s2ws (#3656) by @jcking in #3657
- Update publishing instruction for Dart by @lingyv-li in #3655
- Prep 4.10.1 by @parrt in #3660
Full Changelog: v4.10.0...4.10.1
4.10 Major feature, code clean up, and bug fix release
ANTLR version 4.10
This is a very major release with a number of important changes. There have been many valuable contributions, but I welcome @KvanTTT and @jcking as recent "official" major ANTLR contributors. :)
WARNING: Generated 4.10 lexers and parsers are incompatible with code generated by previous versions of ANTLR. You must regenerate all of your code from grammars to use the new runtime. This is true of all targets (except probably javascript).
Repo branching structure
We have changed the branching structure of the repository. The default branch for this repo remains master
and it is the latest stable release with tags for the various releases; e.g., see release tag 4.9.3. We now do development work in branch dev
between releases and all pull requests should be derived from that branch. The dev
branch is merged back into master
to cut a release and the release state is tagged (e.g., with 4.10-rc.1
or 4.10
.) Visually our process looks roughly like this:
Targets such as Go that pull directly from the repository can use the default master
branch but can also pull from the active dev
branch:
$ go get github.com/antlr/antlr4/runtime/Go/antlr@dev
Developers certificate of origin
In order to bring ANTLR more in line with current standard standards for contribution processes, as of 4.10, ANTLR uses the Linux Foundation's Developer Certificate of Origin, DCO, version 1.1. See file https://github.com/antlr/antlr4/raw/master/developer-cert-of-origin.txt . It is simpler than the original contributors license agreement, which required programmers to sign the contributors.txt
file, which has now moved to file historical-contributors-agreement.txt .
Each commit in pull requests must have a "signature", which is simple as using -s
(not -S
) on the git commit command:
$ git commit -s -m 'This is my commit message'
Github's pull request process enforces the sig and gives instructions on how to fix any commits that lack the sig. See https://github.com/apps/dco for more info.
4.10-generated parsers incompatible with previous runtimes
ANTLR not only generates recursive-descent parsers; it generates a state machine called an augmented transition network (ATN) in serialized form as a bunch of integers stored in the generated parser and lexer files. This serialization format was changed for 4.10 to remove a size limit on the supported ATNs. See #3591.
The key point here is that we changed the version number stored inside the serialization format and so, in order to use this new version of ANTLR, you must regenerate all of your lexers and parsers using the 4.10 tool and then use the new runtime. Parsers generated with 4.10 or not compatible with previous versions of the runtime.
Increasing minimum java version
Going forward, we are using Java 11 for the source code and the compiled .class files for the ANTLR tool. The Java runtime target, however, and the associated runtime tests use Java 8 (bumping up from Java 7).
JavaScript target
The JS target has been substantially reworked.
Miscellaneous improvements
- Lexer rules can use the
caseInsensitive
option now. - Improved error messages
- We rebuilt the runtime testing rig and made continuous integration improvements; part of this was done to support more recent versions of Java
- We cleaned up the maven pom and brought it up to date (still has errors if somebody can make a suggestion.)
Changes report
The following report is generated by scripts/github_release_notes.py
.
Issues fixed
- C++ runtime: Version identifier macro ? (target:cpp, type:cleanup)
- Generating XPath lexer/parser (actions, type:bug)
- do we need this C++ ATN serialization? (target:cpp, type:cleanup)
- Incorrect type of token with number 0xFFFF because of incorrect ATN serialization (atn-analysis, type:bug)
- Clean up ATN serialization: rm UUID and shifting by value of 2 (atn-analysis, type:cleanup)
- The parseFile method of the InterpreterDataReader class is missing code: "line = br.readLine();" (type:bug, target:java)
- antlr.runtime.standard 4.9.3 invalid strong name. (type:bug, comp:build, target:csharp)
- Serialized ATN data element 810567 element 11 out of range 0..65535 (atn-analysis, type:cleanup)
- Go target, unable to check when custom error strategy is in recovery mode (target:go)
- Escape issue for characeters (grammars, type:bug)
- antlr4 java.lang.NullPointerException Antlr 4 4.8 (grammars, comp:tool, type:bug)
- UnsupportedOperationException while generating code for large grammars. (atn-analysis, type:cleanup)
- Add a more understandable message than "Serialized ATN data element .... element ... out of range 0..65535" (atn-analysis, type:cleanup)
- avoid java.lang.StackOverflowError (lexers, error-handling)
- Getting this error: Exception in thread "main" java.lang.UnsupportedOperationException: Serialized ATN data element out of range (atn-analysis, type:cleanup)
Improvements, features
- Updated getting started with Cpp documentation. (type:improvement, comp:doc)
- Escape bad words during grammar generation (code-gen, type:improvement)
- Implement caseInsensitive option (lexers, options, type:improvement)
- Some tool bugfixes (error-handling, comp:tool, type:improvement, type:cleanup)
Pull requests grouped by target
csharp target
- use ints not chars for C# (code-gen, atn-analysis, target:csharp)
- C# and Go runtime tests fixes on non-Windows OS (comp:runtime, target:csharp, target:go, comp:testing)
- C#, JavaScript, Go runtime tests performance improvements (target:javascript, target:csharp, target:go, comp:performance)
cpp target
- [C++] Remove more dynamic_cast usage (target:cpp)
- [C++] Introduce version macros (target:cpp, type:cleanup)
- [C++] Free ATNConfig lookup set in readonly ATNConfigSet (target:cpp, type:cleanup)
- [C++] Implement configurable PredictionContextMergeCache (atn-analysis, target:cpp, type:cleanup)
- Allow to switch off building C++ tests, needed if used as sub-project (comp:build, target:cpp)
- [C++] Minor improvements to PredictionContext (target:cpp, type:cleanup)
- [C++] Cleanup DFA, DFAState, LexerAction, and yet more performance improvements (target:cpp, comp:performance, type:cleanup)
- [C++] Avoid copying statically generated serialized ATNs (target:cpp, comp:performance)
- [C++] Add T::is for type hierarchy checks and remove some dynamic_cast (target:cpp, type:cleanup)
- [C++] Devirtualize hand rolled RTTI for performance (target:cpp, comp:performance)
- [C++] Refactor PredictionContext and yet more performance improvements (target:cpp, comp:performance)
- [C++] Fix bugs in SemanticContext (target:cpp, comp:performance)
- [C++] Refactor and optimize SemanticContext (atn-analysis, target:cpp, type:cleanup)
- [C++] Add ANTLR4CPP_PUBLIC attributes to various symbols (target:cpp, type:cleanup)
- Update editorconfig for c++ (target:cpp)
- [C++] Avoid using dynamic_cast where possible by using hand rolled RTTI (actions, target:cpp, type:cleanup)
- [C++] Fix generated Lexer static data constructor (target:cpp, type:cleanup)
- [C++] Force generated static data type name to titlecase (target:cpp, type:cleanup)
- [C++] Remove unused LexerATNSimulator::match_calls (target:cpp, type:cleanup)
- [C++] Switch to camel case for generated static data variable names (target:cpp, type:cleanup)
- [C++] Remove duplicate includes and remove unused includes (target:cpp, type:clean...
4.9.3 bug fix release
Issues fixed
- Swift Target Crashes with Multi-Threading ()
- JavaScript Runtime bug ()
- Go target, cannot use superClass for the lexer grammar! (type:bug, target:go)
- Python runtime is inconsistent with Java (target:python2)
- FunctionDef source extract using getText() (target:javascript)
- Provide .NET Framework target in the csharp nuget package (target:csharp)
- Go target for Antlr tool, type ",int8" => "int8" (target:go)
- Flutter/Dart web support (target:dart)
- Allow Antlr Javascript runtime to be loaded into Kindle Touch (target:javascript)
- Fix Go test suite (comp:build, target:go)
- Weird error (error-handling, comp:tool)
Improvements, features
- [C++] Use faster alternative to dynamic_cast when not testing inherit… (type:improvement, target:cpp)
- Stackoverflow after upgrading from 4.6 to 4.7 (error-handling, type:improvement)
Pull requests grouped by target
csharp target
cpp target
- [C++] Use faster alternative to dynamic_cast when not testing inherit… (type:improvement, target:cpp)
- [C++] Refactor Guid to use std::array instead of std::vector (target:cpp)
- Fix some thread sanitizer warnings in C++ runtime (target:cpp)
- Change utfcpp git url to use https (target:cpp)
- Add explanation about lifetime of parse tree to cpp-target.md#memory-management (target:cpp)
- Patch utfcpp build (comp:build, target:cpp)
- Revert "Cpp target: No building tests/samples for external utfcpp" (type:bug, target:cpp)
- Fix typo in ExternalAntlr4Cpp.cmake (target:cpp)
- [C++] Performance improvement in finally (target:cpp)
go target
- Fix for Issue 3319 (type:bug, target:go)
- [Go] Fix null pointer dereference (target:go)
- fix: use 32bit murmur3 same with java, implement array2dhashset which… (target:go)
- Fix tests for go runtime (target:go, comp:testing)
- Runtime(Go): Add LICENSE to module (target:go)
- Add
go.mod
to go runtime module (comp:build, target:go) - Making compatibility with actions and predicates in Go better (actions, target:go)
java target
- Upgrade com.ibm.icu:icu4j to latest (69.1) to avoid potential vulnerabilities it brings (target:java, unicode)
python2 target
- make Python2 runtime keep consistent with Java (target:python2)
swift target
- fix compiler error (target:swift)
- [Swift] Changes to Mutex-es to guard the staticly shared [DFA] (target:swift)
- Swift InterpreterDataReader and deserialize fixes (target:swift)
- Silence Swift compiler warnings in Swift runtime (target:swift)
- Fix Swift runtime ANTLRInputStream that can’t read Unicode scalars (target:swift)
php target
dart target
- [Dart] Workaround for windows build issue (target:dart)
- [Dart] Support Dart multiple platforms. (target:dart)
- [Dart] Add case changing char stream example (target:dart)
- [Dart] Fix crash when parsing high index options (target:dart)
- Configure dart debug flags through environment declaration (target:dart)
- Export recognizer class for dart target (target:dart)
- Enable dart non nullable by default (NNBD) (comp:runtime, target:dart)
Contributors
- 9 items: ericvergnaud
- 4 items: Justin King (jcking)
- 4 items: Larry Li (lingyv-li)
- 3 items: Ken Domino (kaby76)
- 3 items: Vladimir-Chan
- 3 items: Joaquín León (Joakker)
- 2 items: Terence Parr (parrt)
- 2 items: Ivan Kochurkin (KvanTTT)
- 2 items: Johan Appelgren (appel1)
- 2 items: skef
- 2 items: Yoshimasa Niwa (niw)
- 1 items: Steven Kalt (SKalt)
- 1 items: Martin van Wingerden (martinvw)
- 1 items: Rishuv Mehta (rmehta33)
- 1 items: Viveksharma48b (Gravity-I-Pull-You-Down)
- 1 items: XenoAmess (XenoAmess)
- 1 items: Yi-Hong Lin (ansiemens)
- 1 items: Jeffsky (jjeffcaii)
- 1 items: Rachid Lamouri (rachidlamouri)
- 1 items: ksyx
- 1 items: renzhentaxi
- 1 items: Yuxin Liu (Claire) (Yuxin45)
- 1 items: Marc Auberer (marcauberer)
- 1 items: Julian Bissekkou (JulianBissekkou)
- 1 items: Milan Aleksić (milanaleksic)
- 1 items: Nathanael Demacon (quantumsheep)
- 1 items: Mitar (mitar)
- 1 items: Sergii Kliuchnyk (redexp)
- 1 items: Michal Harakal (michalharakal)
- 1 items: Alexander Bigerl (bigerl)
- 1 items: Josua Jäger (JaggerJo)
- 1 items: Mike Lischke (mike-lischke)
- 1 items: b1f6c1c4
- 1 items: Damian Andrei (xTachyon)
- 1 items: Minjoo Sur (minjoosur)
- 1 items: Ricardo Canastro (canastro)
- 1 items: Renan (renancaraujo)
- 1 items: A. Hooper (ahooper)
- 1 items: IdkGoodName (IdkGoodName)
- 1 items: Niels Basjes (nielsbasjes)
4.9.2 bug fix release
Issues fixed
- CSharp and Java produce different results for identical input, identical tokens (target:csharp, type:bug)
Improvements, features
Moved away from travis-ci.com.
Pull requests grouped by target
csharp target
- fix a typo in the csharp-target doc (target:csharp)
- Issue 2693 (comp:build, target:csharp)
- Fix for https://github.com/antlr/antlr4/issues/3049 (comp:build, target:csharp)
- add script (comp:build, target:csharp)
- Update ll1 analyzer (target:csharp, target:javascript, target:python2, target:python3, type:bug)
cpp target
- Fixed ANTLRInputStream and ANTLRFileStream (target:cpp)
- Cpp target: allow building runtime with newer C++ standards (comp:build, target:cpp)
javascript target
- fix javascript import in example code (target:javascript)
- Fix javascript intervals (target:javascript)
- Update ll1 analyzer (target:csharp, target:javascript, target:python2, target:python3, type:bug)
python2 target
- Update ll1 analyzer (target:csharp, target:javascript, target:python2, target:python3, type:bug)
python3 target
- Fix TextIO compatibility with Python 3.6+ in LexerFile (target:python3)
- Fix 3052 (target:python3, type:bug)
- Update ll1 analyzer (target:csharp, target:javascript, target:python2, target:python3, type:bug)
swift target
- work around Swift crash where reading hashValue on SemanticContext.AN… (actions, target:swift)
- Fix swift warnings (target:swift)
Contributors
- 12 items: ericvergnaud
- 3 items: Ken Domino (kaby76)
- 1 items: Mike Lischke (mike-lischke)
- 1 items: 不是油条 (hackeris)
- 1 items: Karl Heinz Marbaise (khmarbaise)
- 1 items: Xingyu Xie (namasikanam)
- 1 items: Felix N (felixn)
- 1 items: Taras Sotnikov (tsotnikov)
- 1 items: Ivan Kochurkin (KvanTTT)
- 1 items: Kko (l215884529)