-
-
Notifications
You must be signed in to change notification settings - Fork 35
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
[VM/eval] Fix pending issues, add unit-tests & cleanup #968
Conversation
First successful CI build after 1,234,567 tries! 🎉 |
…repid` option (generate Bytecode without error-line tracking)
…r syntactic sugar)
As unbelievable as this sounds, this mega-PR is to be considered complete. 🎉 So, until a monster emerges and devours it all, let's say it's... ...ready to merge! 🚀 |
Congratulations! I did not have the time to look at this and I am pretty sure I will not read everything (it is really long!). But I will at least take a look at certain parts which interest me - maybe arithmetic - decimal vs. floating point, maybe a few bytecode optimizations (will compare to FastVM/minivm and to the approaches in recent Python release bytecode changes and maybe even compared to JIT in clover), maybe even some "reactiveness", etc. |
Description
This PR ended up being far more important than initially planned but it was for a very good reason: there were deep-hidden issues that could not have been solved but via a very radical approach.
So, what does this PR do?
->
,=>
,|
(and any combinations thereof) ❗opStorl
), which was only limited to the now-obsolete optimizer and not even in use beforeBasically, pure bliss! lol 🎉 (seriously now: you cannot imagine how satisfied I am after all of this work!)
Apart from the fixes mentioned below and some general cleanup, this PR - inspired by the awesome work by @RickBarretto - will also attempt to add thorough tests that verify the very important job of the VM's evaluator + AST, as well as revisit previously-written Rosetta Code examples, rewrite any that need rewriting & add the ones that are valid - and perform well enough with the latest version - to our CI builds (= to be executed as part of the Tester tool). 🚀
=>
syntactic sugar #799switch
not always processed correctly #817Type of change