-
-
Notifications
You must be signed in to change notification settings - Fork 402
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
Start removing non-VM path #1747
Conversation
Codecov Report
@@ Coverage Diff @@
## main #1747 +/- ##
==========================================
+ Coverage 53.03% 56.30% +3.26%
==========================================
Files 200 200
Lines 17076 17049 -27
==========================================
+ Hits 9056 9599 +543
+ Misses 8020 7450 -570
Continue to review full report at Codecov.
|
Test262 conformance changesVM implementation
Fixed tests (783):
Broken tests (114):
|
Sadly we're seeing longer times on the VM run compared to the traditional execution. Looks like a lot of instructions are being churned out. This was expected, a lot of time is spent going back and forth between allocated objects. We haven't changed this so much here and have plans to improve that in future. I will label each instruction so the profiler shows which instruction is being used the most etc etc Here's some profiling results from https://github.com/boa-dev/boa/blob/main/boa/benches/bench_scripts/mini_js.js: VM branch
branch main
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've added some comments and suggestions. Some of them should probably be acted upon, others are just looking for more information :)
@@ -1 +0,0 @@ | |||
1 + 1 + 1 + 1 + 1 + 1 / 1 + 1 + 1 * 1 + 1 + 1 + 1; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The reason for this benchmark was that for very long operations, the parser could overflow or be very slow. Maybe we don't want to keep it, but we should probably open a discusión on useful benchmarks.
Co-authored-by: Iban Eguia <razican@protonmail.ch>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Agree with Razican's observations, other than those LGTM
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I did most of the required changes, created an issue to track the safety information in the Readable
trait, made it crate-only. I think it's ready to be merged, what do you think @RageKnify ?
Profile summary
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me! :)
bors r+ |
🕐 Waiting for PR status (Github check) to be set, probably by CI. Bors will automatically try to run when all required PR statuses are set. |
bors r+ |
🕐 Waiting for PR status (Github check) to be set, probably by CI. Bors will automatically try to run when all required PR statuses are set. |
Benchmarks: We definitely have a regression, but I think it's OK to merge.
|
bors r+ |
🕐 Waiting for PR status (Github check) to be set, probably by CI. Bors will automatically try to run when all required PR statuses are set. |
Yeah when I get some time I’d be interested to run the profiler and see what’s going on. |
This starts to remove the non-vm path