Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Performance] Constants for Python runtime should be folded #3698

Closed
KvanTTT opened this issue May 7, 2022 · 2 comments
Closed

[Performance] Constants for Python runtime should be folded #3698

KvanTTT opened this issue May 7, 2022 · 2 comments

Comments

@KvanTTT
Copy link
Member

KvanTTT commented May 7, 2022

The problem

Consider the following grammar:

grammar Test;
e: T1 | T2 | T3;
T1: 't1';
T2: 't2';
T3: 't3';

For Python runtime the following code is generated for rule e:

def e(self):
    localctx = TestParser.EContext(self, self._ctx, self.state)
    self.enterRule(localctx, 0, self.RULE_e)
    self._la = 0 # Token type
    try:
        self.enterOuterAlt(localctx, 1)
        self.state = 0
        _la = self._input.LA(1)
        if not((((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << TestParser.T1) | (1 << TestParser.T2) | (1 << TestParser.T3))) != 0)):
            self._errHandler.recoverInline(self)
        else:
            self._errHandler.reportMatch(self)
            self.consume()
    except RecognitionException as re:
        localctx.exception = re
        self._errHandler.reportError(self, re)
        self._errHandler.recover(self, re)
    finally:
        self.exitRule()
    return localctx

The following constant expression is not folded during interpretation:

(1 << TestParser.T1) | (1 << TestParser.T2) | (1 << TestParser.T3)

In Java bytecode it's just 14. In this case these constant should be folded during generation.

How to check it?

I've created a benchmark: https://gist.github.com/KvanTTT/e3b355f7e321fe7f52e11ea1aa0ecbce#file-python_constant_folding_benchmark-py

It returns the following timings (python 3.8.5):

no_folding_const_refs_test: 1769 ns
no_folding_const_literals_test: 81 ns
folding: 84 ns

for the following methods:

def no_folding_const_refs_test():
    return (1 << C1) | (1 << C2) | (1 << C3) | (1 << C4) | (1 << C5) | (1 << C6) | \
        (1 << C7) | (1 << C8) | (1 << C9) | (1 << C10) | (1 << C11) | (1 << C12) | \
        (1 << C13) | (1 << C14) | (1 << C15) | (1 << C16)


def no_folding_const_literals_test():
    return (1 << 1) | (1 << 2) | (1 << 3) | (1 << 4) | (1 << 5) | (1 << 6) | \
        (1 << 7) | (1 << 8) | (1 << 9) | (1 << 10) | (1 << 11) | (1 << 12) | \
        (1 << 13) | (1 << 14) | (1 << 15) | (1 << 16)


def folding_test():
    return 0xFFFF

no_folding_const_refs_test works ~20 times slower than optimized versions. I vote for folding_test because it's the shortest code and it provides more shorter generated code.

Probably some other runtimes also don't perform constant folding (I know about Java and C#, they perform constant folding).

KvanTTT added a commit to KvanTTT/antlr4 that referenced this issue May 7, 2022
…ixes antlr#3699

Signed-off-by: Ivan Kochurkin <kvanttt@gmail.com>
KvanTTT added a commit to KvanTTT/antlr4 that referenced this issue May 7, 2022
…ixes antlr#3699

Signed-off-by: Ivan Kochurkin <kvanttt@gmail.com>
KvanTTT added a commit to KvanTTT/antlr4 that referenced this issue May 7, 2022
…ixes antlr#3699

Signed-off-by: Ivan Kochurkin <kvanttt@gmail.com>
KvanTTT added a commit to KvanTTT/antlr4 that referenced this issue May 7, 2022
…ixes antlr#3699

Signed-off-by: Ivan Kochurkin <kvanttt@gmail.com>
KvanTTT added a commit to KvanTTT/antlr4 that referenced this issue May 7, 2022
…ixes antlr#3699

Signed-off-by: Ivan Kochurkin <kvanttt@gmail.com>
KvanTTT added a commit to KvanTTT/antlr4 that referenced this issue May 8, 2022
…ixes antlr#3699

Signed-off-by: Ivan Kochurkin <kvanttt@gmail.com>
@amykyta3
Copy link
Contributor

amykyta3 commented May 8, 2022

Created a patch script that implements this optimization: https://gist.github.com/amykyta3/8285559e95074c4431c2836d78b36530

@KvanTTT
Copy link
Member Author

KvanTTT commented May 8, 2022

Thanks, but it should be (if it will) implemented via ANTLR tool like #3701

KvanTTT added a commit to KvanTTT/antlr4 that referenced this issue Jul 3, 2022
Go: getInlineTestSetWordSize 32 -> 64
Dart: get rid of BigInt
Swift: optimize TestSetInline
Python: fixes antlr#3698
JavaScript: fixes antlr#3699

Signed-off-by: Ivan Kochurkin <kvanttt@gmail.com>
KvanTTT added a commit to KvanTTT/antlr4 that referenced this issue Aug 30, 2022
Go: getInlineTestSetWordSize 32 -> 64
Dart: get rid of BigInt
Swift: optimize TestSetInline
Python: fixes antlr#3698
JavaScript: fixes antlr#3699

Signed-off-by: Ivan Kochurkin <kvanttt@gmail.com>
KvanTTT added a commit to KvanTTT/antlr4 that referenced this issue Aug 30, 2022
Go: getInlineTestSetWordSize 32 -> 64
Dart: get rid of BigInt
Swift: optimize TestSetInline
Python: fixes antlr#3698
JavaScript: fixes antlr#3699

Signed-off-by: Ivan Kochurkin <kvanttt@gmail.com>
@parrt parrt closed this as completed in 186c6c5 Sep 4, 2022
ericvergnaud pushed a commit to ericvergnaud/antlr4 that referenced this issue Sep 9, 2022
Go: getInlineTestSetWordSize 32 -> 64
Dart: get rid of BigInt
Swift: optimize TestSetInline
Python: fixes antlr#3698
JavaScript: fixes antlr#3699

Signed-off-by: Ivan Kochurkin <kvanttt@gmail.com>
Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>
parrt added a commit that referenced this issue Dec 21, 2022
* Fix CMake syntax for variable expansion

When using variables to compare (like in if clause) the variable
shouldn't be quoted. More details can be found at the link below:

https://cmake.org/cmake/help/latest/command/if.html#variable-expansion

Signed-off-by: HS <hs@apotell.com>
Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* initial commit

Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* renamed for clarity

Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* renamed for clarity

Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* able to locate antlr4 runtime using ts-node, missing types

Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* progressing

Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* able to 'run' a test. It fails but it compiles and resolves!

Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* reflect refactored runtime

Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* able to run RecursiveLexerRuleRefWithWildcardPlus_1 test locally

Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* passes LexerExec tests in IntelliJ

Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* make ATN private

Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* ignore same tests as JavaScript

Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* compiles Parser and Lexer bu local run fails

Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* ParserExec.TokenOffset test successful in IntelliJ !

Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* Progressing, passing 131 of 348 tests

Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* pass 327 tests out of 348

Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* more successful tests

Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* 333 successful tests out of 348

Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* all tests pass except 7 caused by #3868

Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* update getting-started doc

Signed-off-by: nicksxs <nicksxs@hotmail.com>
Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* add blank github action file for hosted CI

Signed-off-by: Terence Parr <parrt@antlr.org>
Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* update getting started document to say java 11

Signed-off-by: Terence Parr <parrt@antlr.org>
Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* Revert "update getting started document to say java 11"

This reverts commit 1df58f7.

Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* add C# book code links

Signed-off-by: Terence Parr <parrt@antlr.org>
Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* Add Jim/Ken to readme

Signed-off-by: Terence Parr <parrt@antlr.org>
Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* Update Swift Package to support static library

Add static library distribution in SPM

Signed-off-by: Hell_Ghost <dev.hellghost@gmail.com>
Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* Update Package.swift

Signed-off-by: Hell_Ghost dev.hellghost@gmail.com
Signed-off-by: Hell_Ghost <dev.hellghost@gmail.com>
Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* Add caching support for maven & dependencies. Also, include caching for
cpp builds using actions/ccache.

Builds are more reliable (avoids the archive.apache server which
intermittently reports timeouts) and also significantly improves the
overall builds times (down from 46 mins to 28 mins).

The slowest part of the build now is the Windows+cpp builds because
there is no reliable cache implementation yet. MacOS+cpp (65% cache hit) is
also relatively slow compared to Ubuntu+cpp (99% cache hit).

Signed-off-by: HS <hs@apotell.com>
Signed-off-by: Terence Parr <parrt@antlr.org>

# Conflicts:
#	.github/workflows/hosted.yml
Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* use snap to install go 1.19

Signed-off-by: Terence Parr <parrt@antlr.org>
Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* grr...install snap

Signed-off-by: Terence Parr <parrt@antlr.org>
Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* ugh. start snap

Signed-off-by: Terence Parr <parrt@antlr.org>
Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* ugh. start snap

Signed-off-by: Terence Parr <parrt@antlr.org>
Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* ugh. cant get snap to install go

Signed-off-by: Terence Parr <parrt@antlr.org>
Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* try downloading golang with curl

Signed-off-by: Terence Parr <parrt@antlr.org>
Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* Issue #3823: Temporarily disable a few tests on CI

The tests are currently failing. The underlying issues have been fixed
on dev and so the builds will be turned back with the next release.

Signed-off-by: HS <hs@apotell.com>
Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* update actions status badge

Signed-off-by: Terence Parr <parrt@antlr.org>
Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* update getting started document to say java 11

Signed-off-by: Terence Parr <parrt@antlr.org>
Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* Revert "update getting started document to say java 11"

This reverts commit 3591ee0.

Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* update getting-started doc

Signed-off-by: nicksxs <nicksxs@hotmail.com>
Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* make getValue visible to external profiler tools.

Signed-off-by: Terence Parr <parrt@antlr.org>
Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* Fix #3508: Document the $parser attribute and its use in target-agnostic grammars.

Signed-off-by: Ross Patterson <ross.patterson@gmail.com>
Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* Add accessor to IntervalSet for intervals

Signed-off-by: James Taylor <jamestaylor@apache.org>
Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* Remove libuuid dependency from C++ runtime

libuuid and its headers are not referenced anywhere, so remove it.

Signed-off-by: Bryan Tan <bryantan@technius.net>
Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* Add `@SuppressWarnings("CheckReturnValue")` to prevent error_prone lib errors.

Signed-off-by: Terence Parr <parrt@antlr.org>
Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* fix: Fixes for #3718

  o Implement collections with generics to solve hash collisions
  o Fix type casting in LL start parser simulation optimization
  o General minor tidy ups

Acknowledgements to @kaby76 for help with tracing errors

Signed-off-by: Jim.Idle <jimi@gatherstars.com>
Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* fix: #3718 Revert accidental keyboard error in Java target

Signed-off-by: Jim.Idle <jimi@gatherstars.com>
Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* fix: #3718 Correct DFAState index in Lexer ATN Simulator

Signed-off-by: Jim.Idle <jimi@gatherstars.com>
Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* fix: #3718 Fix go runtime test runners

With older versions of go, there was no good way to tell the compiler to use your local
development copy of a particular package instead of the one installed in GOPATH/src/...

However, we are now using modules, which allows us to tell the compiler that instead of
a module downloaded to GOPATH/pkg, to use a local copy on disk.

Hence this change removes the need to copy the whole of the go installation to a
tempoorary location, then put the antlr go runtime in to the go installation as if it was
part of the compiler. Hence the execution time for the go tests is now faster than before.

This works because when the generated code is placed in the temporary location, we create
a go.mod file for it, tell the module to replace the online module for the go runtime with
the local copy on disk, then ro a go mod tidy to add the dependencies from the code (which
avoids network access, so it is instant), which adds the ANTLR dependency itself (which is
then replaced at compile time).

All go runtime tests now pass.

Signed-off-by: Jim.Idle <jimi@gatherstars.com>
Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* Rm remote github actions; hosted seems to work

Signed-off-by: Terence Parr <parrt@antlr.org>
Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* install golang with curl; go was missing from dev

Signed-off-by: Terence Parr <parrt@antlr.org>
Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* fix: Rework of all Hash() and Equals() methods - implement generic collections

 - Implement new collections using generics that implement the functionality
   required by the Java runtime in a more idiomatic Go way.
 - Fix Hash() and Equals() for all objects in the runtime
 - Fix getConflictingAlts so that it behaves the same way as Java, using a
   new generic collection
 - Replaces the use of the array2DHashSet, which was causing unneeded memory
   allocations. Replaced with generic collection that allocates minimally
   (though, I think I can improve on that with a little analysis).

Jim Idle - jimi@idle.ws

Signed-off-by: Jim.Idle <jimi@gatherstars.com>
Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* fix: #3718 Correct DFAState index in Lexer ATN Simulator

Signed-off-by: Jim.Idle <jimi@gatherstars.com>
Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* feat: Reduce initial memory allocations for collections

  - Many small collections are created at runtime, the default allocation for
    maps, even though small, still requires memory. Specifying a very small
    initial allocation prevents unnecesary allocations and has no measurable
    effect on performance. A small incremental change.

Signed-off-by: Jim.Idle <jimi@gatherstars.com>
Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* fix: #3758 Allow for string being a keyword and fix go template to use escapedName

  - The go template was ignoring the use of escapedName in many places and was
    not consistenet with the Java version.
  - Added 'string' to the list of reserved words for the Go target

Signed-off-by: Jim.Idle <jimi@gatherstars.com>
Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* fix: #3758 Add go.sum to the repo

Signed-off-by: Jim.Idle <jimi@gatherstars.com>
Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* fix: #3758 Ensure that standard runtime extensions are included in go.mod

Signed-off-by: Jim.Idle <jimi@gatherstars.com>
Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* fix: #2826  Go template is incorrect for dynamic scopes

closes #2826
obviates PR #3101

Signed-off-by: Jim.Idle <jimi@gatherstars.com>
Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* fix: #2016 - Generate correct iGo code for lists in a grammar, such as `label+=arg+`

Signed-off-by: Jim.Idle <jimi@gatherstars.com>
Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* feat: Bump poms to use 4.11 Snapshot

Signed-off-by: Jim.Idle <jimi@gatherstars.com>
Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* turn off Golang test at circleci for now

Signed-off-by: Terence Parr <parrt@antlr.org>
Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* Replace smart-quote with single-quote in code examples

Signed-off-by: Tim McCormack <cortex@brainonfire.net>
Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* Augment error message during testing to include full cause of problem.

Signed-off-by: Terence Parr <parrt@antlr.org>
Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* Augment error message during testing to include full cause of problem. (round 2 to avoid null ptr)

Signed-off-by: Terence Parr <parrt@antlr.org>
Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* Cpp: Link to threads library

As detailed in #3708, it is necessary to link against the (p)threads
library in order to be able to use std::call_once without producing
linker errors.

Since this function is frequently used in ANTLR's cpp version, this
commit ensures that the respective library is always linked against in
order to avoid this error, even if downstream users are not explicitly
linking against an appropriate threads library.

Fixes #3708

Signed-off-by: Robert Adam <dev@robert-adam.de>

Co-authored-by: Bryan Tan <Technius@users.noreply.github.com>
Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* add test for #2016 and fix java.

Signed-off-by: Terence Parr <parrt@antlr.org>
Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* ensure all targets have the appropriate argument list for the template causing the problem.

Signed-off-by: Terence Parr <parrt@antlr.org>
Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* Fix other targets

Signed-off-by: Terence Parr <parrt@antlr.org>
Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* fix format

Signed-off-by: Terence Parr <parrt@antlr.org>
Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* add check that $args is a list

Signed-off-by: Terence Parr <parrt@antlr.org>
Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* change made by @lingyv-li to fix bug in DART exposed by this test.

Signed-off-by: Terence Parr <parrt@antlr.org>
Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* fix AssertIsList in multiple targets. Go doesn't pass test and has no AssertIsList so I'm dropping that test from the Go test suite.

How did a comment to the C++ runnerFor my future reference as to how to build things from the command line.

Signed-off-by: Terence Parr <parrt@antlr.org>
Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* C++ gets an exception with this test so I'm turning it off. See #3845

Signed-off-by: Terence Parr <parrt@antlr.org>
Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* feat: #3840 Move Go to version v4.11.0

Signed-off-by: Jim.Idle <jimi@gatherstars.com>
Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* feat: #3840 Create the v4 version of the Go runtime

Signed-off-by: Jim.Idle <jimi@gatherstars.com>
Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* feat: Create the v4 runtime layout for the Go runtime, ready for release tagging

Note that the vast majority of the changes here are just copying the runtime file in to
the /v4 subdirectory so that we can support legacy projects that use GOPATH only, as well
as users that can use go modules. At a later release, we will delete the default path, and move
the v4 subdirectory back to the top level. But, we cannot do that on this release.

Signed-off-by: Jim.Idle <jimi@gatherstars.com>
Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* Reenable go tests on CircleCI

Signed-off-by: Ivan Kochurkin <kvanttt@gmail.com>
Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* Fold constants in generated code for all runtimes

Go: getInlineTestSetWordSize 32 -> 64
Dart: get rid of BigInt
Swift: optimize TestSetInline
Python: fixes #3698
JavaScript: fixes #3699

Signed-off-by: Ivan Kochurkin <kvanttt@gmail.com>
Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* Use int literals instead of refs for Python and JavaScript

Update getMultiTokenAlternativeDescriptor test

fixes #3703

Signed-off-by: Ivan Kochurkin <kvanttt@gmail.com>
Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* update release doc for Go version numbers

Signed-off-by: Terence Parr <parrt@antlr.org>
Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* fix: #2016 Fix Go template list reference, go runtime and got test template for list labels

Signed-off-by: Jim.Idle <jimi@gatherstars.com>
Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* feat: Add a deprecation message to the existing v1 module

Signed-off-by: Jim.Idle <jimi@gatherstars.com>
Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* Split tool and runtime tests for GitHub workflow

Build only necessary modules for tests

Signed-off-by: Ivan Kochurkin <kvanttt@gmail.com>
Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* Remove not used methods from FileUtils (runtime tests)

Signed-off-by: Ivan Kochurkin <kvanttt@gmail.com>
Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* Update dependencies of antlr4-maven-plugin

Signed-off-by: Ivan Kochurkin <kvanttt@gmail.com>
Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* Update jUnit: 5.8.2 -> 5.9.0

Signed-off-by: Ivan Kochurkin <kvanttt@gmail.com>
Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* Fixes #3733; update ST4 so it uses proper ANTLR 3

Signed-off-by: Terence Parr <parrt@antlr.org>
Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* tweak doc

Signed-off-by: Terence Parr <parrt@antlr.org>
Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* Set to 4.11.0 not 4.11 in poms

Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* [maven-release-plugin] prepare release 4.11.0

Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* [maven-release-plugin] prepare for next development iteration

Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* Damn. java target said 4.10.2 not 4.11.0

Signed-off-by: Terence Parr <parrt@antlr.org>
Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* roll back to 4.11.0; made mistake

Signed-off-by: Terence Parr <parrt@antlr.org>
Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* roll back to 4.11.0; made mistake

Signed-off-by: Terence Parr <parrt@antlr.org>
Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* [maven-release-plugin] prepare release antlr4-master-4.11.0

Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* [maven-release-plugin] prepare for next development iteration

Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* use build and twine to publish source and wheel

Signed-off-by: Qijia Liu <liumeo@pku.edu.cn>
Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* tweak doc

Signed-off-by: Terence Parr <parrt@antlr.org>
Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* tweak c++ build script to make Mac binaries with cmake/make

Signed-off-by: Terence Parr <parrt@antlr.org>
Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* tweak release doc

Signed-off-by: Terence Parr <parrt@antlr.org>
Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* tweak code / doc related to bad previous release

Signed-off-by: Terence Parr <parrt@antlr.org>
Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* [maven-release-plugin] prepare release 4.11.1

Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* [maven-release-plugin] prepare for next development iteration

Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* clean up deploy c++ source script

Signed-off-by: Terence Parr <parrt@antlr.org>
Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* cleanup code generation

Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* don't initialize default param values twice

Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* add missing field

Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* update codegen template for 4.11.1

Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* support new param: Parser

Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* fix template for 4.11

Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* default export Listener and Visitor

Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* also default export parser and lexer

Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* all tests pass except 7 caused by #3868

Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* fix issues

Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* make it easy to break

Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* fix #3868

Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* ALL TESTS PASS!!!!

Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* cross fingers with CI

Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* try fixing broken go tests

Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* Try fix typescript CI

Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* disable cpp for now

Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* fix broken config

Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* try fix macos gh build

Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* improve speed by caching node_modules

Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* no longer using ts-node

Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* fix all tsc warnings

Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* try fix MacOS CI

Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* CI errors seem random, reactivate ubuntu

Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* Disable node_modules caching, which seems to randomly fail in CI

Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* don't delete symlink contents on windows (java bug with is SymbolicLink ?)

Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* fix broken windows CI

Signed-off-by: ERIC-WINDOWS\ericv <eric.vergnaud@wanadoo.fr>
Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* verify windows ci

Signed-off-by: ERIC-WINDOWS\ericv <eric.vergnaud@wanadoo.fr>
Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* Revert "verify windows ci"

This reverts commit 770d821.

Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* reinstate full CI

Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* manually merged

* manually merge

* fix merge

* fix broken template

* add template for invoking context list

* fix typo

* fix test templates

* Add code of conduct but with a different name since I do not like that name

Signed-off-by: Terence Parr <parrt@antlr.org>

* Update C# release instructions

* Tweak code of conduct

Signed-off-by: Terence Parr <parrt@antlr.org>

* Bring back the Package.swift in the project's root

Signed-off-by: Nikolay Edigaryev <edigaryev@gmail.com>

* swift-target.md: fix SPM installation instructions

Signed-off-by: Nikolay Edigaryev <edigaryev@gmail.com>

* the scope (parser or lexer) in @parser::header was dropped, so keep track of it and only include @Header in Listener and Visitor code

Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* drop workaround in favor of #3878

* drop cache usage since it fails in CI

* #3878 was missing some scenarios

* fix issue when deleting test folder

* fix warnings

* drop duplicate behavior

* drop alien 'abstractRecognizer' property

* drop alien property 'channels'

* fix various codegen issues

* change import

* restore js extensions, see microsoft/TypeScript#50501

* use consistent inheritance

* more API

* more API stuff

* fix typo

* fix typescript exports

* use ts-node to run typescript tests

* webpack runtime before linking

* fix exec paths on windows

Signed-off-by: ERIC-WINDOWS\ericv <eric.vergnaud@wanadoo.fr>

* fix failing tests

* fix a few import issues

* merge typescript-target with latest dev

* runs Java and JavaScript tests after merging typescript-target

* merge test template

* skip unsupported test

* fix template prototype

* fix missing merge

* bump typescript beta version after rebase

* update docs

* rollback unwanted changes

Signed-off-by: HS <hs@apotell.com>
Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>
Signed-off-by: nicksxs <nicksxs@hotmail.com>
Signed-off-by: Terence Parr <parrt@antlr.org>
Signed-off-by: Hell_Ghost <dev.hellghost@gmail.com>
Signed-off-by: Hell_Ghost dev.hellghost@gmail.com
Signed-off-by: Ross Patterson <ross.patterson@gmail.com>
Signed-off-by: James Taylor <jamestaylor@apache.org>
Signed-off-by: Bryan Tan <bryantan@technius.net>
Signed-off-by: Jim.Idle <jimi@gatherstars.com>
Signed-off-by: Tim McCormack <cortex@brainonfire.net>
Signed-off-by: Ivan Kochurkin <kvanttt@gmail.com>
Signed-off-by: Qijia Liu <liumeo@pku.edu.cn>
Signed-off-by: ERIC-WINDOWS\ericv <eric.vergnaud@wanadoo.fr>
Signed-off-by: Nikolay Edigaryev <edigaryev@gmail.com>
Co-authored-by: HS <hs@apotell.com>
Co-authored-by: nicksxs <nicksxs@hotmail.com>
Co-authored-by: Terence Parr <parrt@antlr.org>
Co-authored-by: Hell_Ghost <dev.hellghost@gmail.com>
Co-authored-by: Ross Patterson <ross.patterson@gmail.com>
Co-authored-by: James Taylor <jamestaylor@apache.org>
Co-authored-by: Bryan Tan <bryantan@technius.net>
Co-authored-by: Jim.Idle <jimi@gatherstars.com>
Co-authored-by: Tim McCormack <cortex@brainonfire.net>
Co-authored-by: Robert Adam <dev@robert-adam.de>
Co-authored-by: Bryan Tan <Technius@users.noreply.github.com>
Co-authored-by: Ivan Kochurkin <kvanttt@gmail.com>
Co-authored-by: Qijia Liu <liumeo@pku.edu.cn>
Co-authored-by: Nikolay Edigaryev <edigaryev@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants