forked from antlr/antlr4
-
Notifications
You must be signed in to change notification settings - Fork 2
Merge from the latest ANTLR (duplicated to resolve conflicts) #12
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
Closed
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Prior to this change, the runtime and generated code was using panic() and recover() to perform error checking and reporting. This is extremely expensive and just not the way to do it. This change now uses goto, and explicit checking for error state after selected calls into the runtime. This has greatly improved parser performance. Using the test code provided by a recent performance issue report, the parse is now twoice as fast as the issue raised was hoping for. Signed-off-by: Jim.Idle <jimi@idle.ws>
* Add missing methods typing Signed-off-by: hdpnguyen <hieu.dac.phuong.nguyen@mgm-tp.com> * Fix PR comments Signed-off-by: hdpnguyen <hieu.dac.phuong.nguyen@mgm-tp.com> --------- Signed-off-by: hdpnguyen <hieu.dac.phuong.nguyen@mgm-tp.com> Co-authored-by: hdpnguyen <hieu.dac.phuong.nguyen@mgm-tp.com> Signed-off-by: Jim.Idle <jimi@idle.ws>
* do not modify String.prototype in js package Signed-off-by: Jon Harris <harris.jb@gmail.com> * remove notice file that is no longer relevant Signed-off-by: Jon Harris <harris.jb@gmail.com> --------- Signed-off-by: Jon Harris <harris.jb@gmail.com> Signed-off-by: Jim.Idle <jimi@idle.ws>
Github action for upload was upgraded to v3 recently and the release is unstable causing too many uploads to fail. Downgrading back to previous version hasn't made significant improvement either. Since the artifacts aren't exactly used by any chained job, failures for uploading the artifact can be ignored. The artifacts are used mostly for the purpose for debugging and so if needed the user can trigger specific build again to get the artifact. Signed-off-by: HS <hs@apotell.com> Signed-off-by: Jim.Idle <jimi@idle.ws>
Signed-off-by: Jim.Idle <jimi@idle.ws>
Interfaces require two pointer lookups for functions and when used as Generic, they require three. This change therefore yields a small performance upgrade. This change also corrects one or two copmarisons that were using pointer comparison instead of Equals() and were bugs in the code I inherited. Signed-off-by: Jim.Idle <jimi@idle.ws>
Signed-off-by: Jim.Idle <jimi@idle.ws>
…lace Signed-off-by: Jim.Idle <jimi@idle.ws>
Signed-off-by: Jim.Idle <jimi@idle.ws>
Signed-off-by: Jim.Idle <jimi@idle.ws>
… a single type and therefore a pointer Signed-off-by: Jim.Idle <jimi@idle.ws>
Signed-off-by: Jim.Idle <jimi@idle.ws>
Too much emulation of the Java runtime structure means that many structs are being called via interfaces, which introduces and extra look up. When you add that lookup to call via a pointer and then even an extra lookup for generics, then it becomes significant. This seems like a big commit but it is all just changing the one type declaration. This now allows us to get rid of the stupid getters and setters that just clutter the code and are not idiomatic of Go anyway. Signed-off-by: Jim.Idle <jimi@idle.ws>
Go does not use Getters and Setters unless there is some very good reason such as copy on read or write. They can stop the compiler from inlining things so they are now gone from ANTConfigSet, whihc is no longer an interface. Signed-off-by: Jim.Idle <jimi@idle.ws>
Like other struct implementations, this was hidden by an interface that did not need to be there. the only difference between a lexer and parser config is the Hash/Equals and extra methods that only the lexer calls. Signed-off-by: Jim.Idle <jimi@idle.ws>
Signed-off-by: Jim.Idle <jimi@idle.ws>
Signed-off-by: Jim.Idle <jimi@idle.ws>
…f DFA collections Signed-off-by: Jim.Idle <jimi@idle.ws>
Also corrects the formatting of some of the files as this can create false compares in git. Signed-off-by: Jim.Idle <jimi@idle.ws>
…er look Signed-off-by: Jim.Idle <jimi@idle.ws>
…in some cases Signed-off-by: Jim.Idle <jimi@idle.ws>
…each run Signed-off-by: Jim.Idle <jimi@idle.ws>
Another small gain, but for one good parser this goes from 90ms to 64ms (for 16 large files) so it won't make a lot of difference for poor parser, but good ones will see a nice kick here Signed-off-by: Jim.Idle <jimi@idle.ws>
o Uses reflection to check that the tree structure is all correct o Disables test that uses superClass as this basically doesn't work/isn't a concept in Go. Signed-off-by: Jim.Idle <jimi@idle.ws>
Signed-off-by: Ahmad Tameem <ahmad.tameem97@gmail.com>
Signed-off-by: Adrian Jutrowski <adrian.jutrowski@gmail.com>
…mpacted Signed-off-by: Adrian Jutrowski <adrian.jutrowski@gmail.com>
…require Signed-off-by: Adrian Jutrowski <adrian.jutrowski@gmail.com>
…ntlr#4109) * [Cpp] CMake: use variables for specifying install paths consistently This allows overriding them if needed when the system uses different paths than usual (e.g. Haiku, which uses "develop/headers" for includes instead of "include"). Use the standard variable ${CMAKE_INSTALL_INCLUDEDIR} as the base path for the include directory. Signed-off-by: Joachim Mairböck <j.mairboeck@gmail.com> * [Cpp] CMake: include GNUInstallDirs unconditionally to have CMAKE_INSTALL_DOCDIR available Signed-off-by: Joachim Mairböck <j.mairboeck@gmail.com> --------- Signed-off-by: Joachim Mairböck <j.mairboeck@gmail.com>
Signed-off-by: cyqw <cyqw@163.com>
…e-testsuite Signed-off-by: cyqw <cyqw@163.com>
Signed-off-by: cyqw <cyqw@163.com>
Signed-off-by: cyqw <cyqw@163.com>
Signed-off-by: cyqw <cyqw@163.com>
Signed-off-by: cyqw <cyqw@163.com>
Signed-off-by: cyqw <cyqw@163.com>
Signed-off-by: cyqw <cyqw@163.com>
Signed-off-by: cyqw <cyqw@163.com>
Signed-off-by: cyqw <cyqw@163.com>
Signed-off-by: cyqw <cyqw@163.com>
Signed-off-by: cyqw <cyqw@163.com>
Signed-off-by: cyqw <cyqw@163.com>
…use LexerATNSimulator use wrong edges to match token Signed-off-by: cyqw <cyqw@163.com>
Signed-off-by: cyqw <cyqw@163.com>
Signed-off-by: cyqw <cyqw@163.com>
Signed-off-by: cyqw <cyqw@163.com>
Signed-off-by: cyqw <cyqw@163.com>
Signed-off-by: Alex Snaps <alex@wcgw.dev>
# Conflicts: # historical-contributors-agreement.txt
Author
|
Hi @alexsnaps, I also addressed this comment: #4 (comment) I am quite committed to refactoring some things here and finally making the Rust target official, though it will take a while... |
|
Out of curiosity: why was this closed? Is #4 the right PR to track? |
Author
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Resolves the conflicts in #4
Feel free to close it. If it would help speed things up, I’m happy to help