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

[Merged by Bors] - Convert Codeblock variables to Sym #1798

Closed
wants to merge 3 commits into from

Conversation

raskad
Copy link
Member

@raskad raskad commented Jan 24, 2022

It changes the following:

  • Convert Codeblock variables to Sym

@github-actions
Copy link

Test262 conformance changes

VM implementation

Test result main count PR count difference
Total 87,200 87,200 0
Passed 40,828 40,828 0
Ignored 19,493 19,493 0
Failed 26,879 26,879 0
Panics 0 0 0
Conformance 46.82% 46.82% 0.00%

@codecov
Copy link

codecov bot commented Jan 24, 2022

Codecov Report

Merging #1798 (48251cc) into main (e92cff5) will decrease coverage by 0.02%.
The diff coverage is 73.23%.

Impacted file tree graph

@@            Coverage Diff             @@
##             main    #1798      +/-   ##
==========================================
- Coverage   55.51%   55.49%   -0.03%     
==========================================
  Files         201      201              
  Lines       17420    17390      -30     
==========================================
- Hits         9671     9650      -21     
+ Misses       7749     7740       -9     
Impacted Files Coverage Δ
boa/src/syntax/ast/node/mod.rs 76.27% <0.00%> (-0.66%) ⬇️
boa/src/syntax/ast/node/object/mod.rs 83.33% <0.00%> (+2.68%) ⬆️
boa/src/vm/code_block.rs 65.02% <0.00%> (-0.30%) ⬇️
boa_interner/src/lib.rs 50.00% <0.00%> (ø)
boa/src/bytecompiler.rs 57.81% <69.76%> (-0.17%) ⬇️
boa/src/vm/mod.rs 79.20% <100.00%> (-0.10%) ⬇️

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update e92cff5...48251cc. Read the comment docs.

@raskad
Copy link
Member Author

raskad commented Jan 25, 2022

Test Base PR %
Arithmetic operations (Compiler) 340.3±6.04ns 343.3±4.78ns -0.87%
Arithmetic operations (Execution) 1682.7±20.77ns 1721.6±23.07ns -2.26%
Arithmetic operations (Parser) 5.0±0.06µs 4.9±0.07µs +2.04%
Array access (Compiler) 720.0±8.92ns 891.9±11.64ns -19.27%
Array access (Execution) 9.0±0.13µs 9.2±0.13µs -2.17%
Array access (Parser) 10.4±0.13µs 10.5±0.12µs -0.95%
Array creation (Compiler) 1019.0±15.54ns 1204.3±12.84ns -15.39%
Array creation (Execution) 2.8±0.03ms 2.8±0.03ms 0.00%
Array creation (Parser) 11.5±0.14µs 11.8±0.14µs -2.54%
Array pop (Compiler) 2.5±0.03µs 2.8±0.04µs -10.71%
Array pop (Execution) 1169.5±15.82µs 1148.9±16.37µs +1.79%
Array pop (Parser) 124.3±1.77µs 120.6±1.54µs +3.07%
Boolean Object Access (Compiler) 600.6±9.59ns 763.7±9.85ns -21.36%
Boolean Object Access (Execution) 5.9±0.07µs 5.9±0.08µs 0.00%
Boolean Object Access (Parser) 12.3±0.14µs 12.4±0.14µs -0.81%
Clean js (Compiler) 1909.4±30.80ns 2.5±0.03µs -23.62%
Clean js (Execution) 1273.5±19.30µs 1278.8±17.91µs -0.41%
Clean js (Parser) 25.1±0.37µs 25.1±0.29µs 0.00%
Create Realm 337.8±1.26ns 292.6±3.77ns +15.45%
Dynamic Object Property Access (Compiler) 995.7±12.68ns 1171.4±15.58ns -15.00%
Dynamic Object Property Access (Execution) 6.0±0.08µs 6.0±0.08µs 0.00%
Dynamic Object Property Access (Parser) 9.3±0.11µs 9.3±0.10µs 0.00%
Fibonacci (Compiler) 1298.6±17.78ns 1568.1±22.27ns -17.19%
Fibonacci (Execution) 2.4±0.02ms 2.4±0.03ms 0.00%
Fibonacci (Parser) 14.2±0.17µs 13.9±0.15µs +2.16%
For loop (Compiler) 1123.5±14.69ns 1266.5±16.49ns -11.29%
For loop (Execution) 37.2±0.45µs 39.2±0.57µs -5.10%
For loop (Parser) 13.9±0.15µs 12.0±0.18µs +15.83%
Mini js (Compiler) 1880.4±28.71ns 2.5±0.04µs -24.78%
Mini js (Execution) 1173.3±15.53µs 1187.9±15.31µs -1.23%
Mini js (Parser) 22.1±0.27µs 21.8±0.22µs +1.38%
Number Object Access (Compiler) 555.6±7.66ns 674.5±8.88ns -17.63%
Number Object Access (Execution) 5.4±0.01µs 4.7±0.07µs +14.89%
Number Object Access (Parser) 9.7±0.11µs 9.8±0.10µs -1.02%
Object Creation (Compiler) 841.7±12.06ns 993.4±13.17ns -15.27%
Object Creation (Execution) 5.3±0.08µs 5.4±0.06µs -1.85%
Object Creation (Parser) 8.0±0.12µs 8.0±0.11µs 0.00%
RegExp (Compiler) 982.8±12.15ns 1118.1±15.53ns -12.10%
RegExp (Execution) 10.7±0.14µs 11.1±0.16µs -3.60%
RegExp (Parser) 8.7±0.11µs 8.8±0.10µs -1.14%
RegExp Creation (Compiler) 884.1±11.34ns 986.2±12.06ns -10.35%
RegExp Creation (Execution) 8.2±0.12µs 8.3±0.11µs -1.20%
RegExp Creation (Parser) 7.3±0.11µs 7.3±0.09µs 0.00%
RegExp Literal (Compiler) 976.4±11.65ns 1119.2±16.28ns -12.76%
RegExp Literal (Execution) 10.7±0.14µs 11.1±0.12µs -3.60%
RegExp Literal (Parser) 7.0±0.07µs 7.0±0.09µs 0.00%
RegExp Literal Creation (Compiler) 879.4±13.20ns 985.3±13.29ns -10.75%
RegExp Literal Creation (Execution) 8.2±0.15µs 8.4±0.12µs -2.38%
RegExp Literal Creation (Parser) 5.6±0.05µs 5.5±0.07µs +1.82%
Static Object Property Access (Compiler) 852.6±9.82ns 1016.6±13.54ns -16.13%
Static Object Property Access (Execution) 5.6±0.09µs 5.6±0.06µs 0.00%
Static Object Property Access (Parser) 8.5±0.11µs 8.7±0.09µs -2.30%
String Object Access (Compiler) 894.6±13.52ns 1053.1±14.91ns -15.05%
String Object Access (Execution) 7.6±0.12µs 7.5±0.08µs +1.33%
String Object Access (Parser) 12.0±0.17µs 12.1±0.16µs -0.83%
String comparison (Compiler) 1102.1±25.00ns 1474.8±20.05ns -25.27%
String comparison (Execution) 7.3±0.02µs 6.4±0.09µs +14.06%
String comparison (Parser) 9.4±0.12µs 9.7±0.06µs -3.09%
String concatenation (Compiler) 897.8±12.42ns 1121.3±12.31ns -19.93%
String concatenation (Execution) 5.3±0.08µs 5.4±0.07µs -1.85%
String concatenation (Parser) 6.5±0.08µs 6.6±0.09µs -1.52%
String copy (Compiler) 757.5±9.92ns 917.1±13.32ns -17.40%
String copy (Execution) 5.3±0.02µs 4.6±0.06µs +15.22%
String copy (Parser) 4.9±0.06µs 4.9±0.07µs 0.00%
Symbols (Compiler) 556.6±8.07ns 609.6±8.84ns -8.69%
Symbols (Execution) 4.2±0.05µs 4.4±0.01µs -4.55%
Symbols (Parser) 4.4±0.01µs 3.8±0.04µs +15.79%

@raskad raskad marked this pull request as ready for review January 25, 2022 00:31
@raskad raskad added this to the v0.14.0 milestone Jan 25, 2022
@raskad raskad added the Internal Category for changelog label Jan 25, 2022
@raskad raskad mentioned this pull request Jan 25, 2022
Copy link
Member

@Razican Razican left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm only missing the tests in boa_interner, and LGTM :)

boa/src/bytecompiler.rs Outdated Show resolved Hide resolved
@raskad raskad added enhancement New feature or request performance Performance related changes and issues vm Issues and PRs related to the Boa Virtual Machine. labels Jan 25, 2022
@Razican
Copy link
Member

Razican commented Jan 26, 2022

After this gets merged, the only thing left to do with the interner (at least for some time) is to benchmark all the backends to see if we should change it.

The current one was the fastest when the Interner was only in the parser, but that might have changed.

Copy link
Member

@jedel1043 jedel1043 left a 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! :)

@Razican
Copy link
Member

Razican commented Jan 29, 2022

bors r+

bors bot pushed a commit that referenced this pull request Jan 29, 2022
It changes the following:

- Convert `Codeblock` variables to `Sym`
@bors
Copy link

bors bot commented Jan 29, 2022

Pull request successfully merged into main.

Build succeeded:

@bors bors bot changed the title Convert Codeblock variables to Sym [Merged by Bors] - Convert Codeblock variables to Sym Jan 29, 2022
@bors bors bot closed this Jan 29, 2022
@bors bors bot deleted the interner-codeblock branch January 29, 2022 10:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request Internal Category for changelog performance Performance related changes and issues vm Issues and PRs related to the Boa Virtual Machine.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants