Skip to content

[oscars-integration] compare test262 results for oscars integration vs main - #5517

Draft
shruti2522 wants to merge 6 commits into
boa-dev:dev/oscars-gcfrom
shruti2522:test262-integration
Draft

[oscars-integration] compare test262 results for oscars integration vs main#5517
shruti2522 wants to merge 6 commits into
boa-dev:dev/oscars-gcfrom
shruti2522:test262-integration

Conversation

@shruti2522

Copy link
Copy Markdown
Contributor

follow up #5480

To get the test262 suite cleanly passing on this branch and reach expected conformance, we first need baseline of the regressions. currently re enabled the test262 CI workflow. This allows us to compare our CI results against main and strategically fix the actual failures introduced by the integration

@github-actions github-actions Bot added the Waiting On Review Waiting on reviews from the maintainers label Sep 10, 2026
@github-actions github-actions Bot added this to the v0.23 milestone Sep 10, 2026
@github-actions github-actions Bot added C-Tests Issues and PRs related to the tests. C-Actions Pull requests that update Github Actions code labels Sep 10, 2026
@jedel1043

jedel1043 commented Sep 10, 2026

Copy link
Copy Markdown
Member

I also tried running the tests locally, but on every run the tests got slower and slower after every completed test. Might be either a memory leak problem or a memory fragmentation problem? Could be good to run an execution test with Miri to see what's happening there

@github-actions github-actions Bot added C-Dependencies Pull requests that update a dependency file C-GC Issue related to garbage collection labels Sep 11, 2026
@shruti2522

Copy link
Copy Markdown
Contributor Author

I also tried running the tests locally, but on every run the tests got slower and slower after every completed test. Might be either a memory leak problem or a memory fragmentation problem? Could be good to run an execution test with Miri to see what's happening there

there was indeed a memory leak happening, traced the Gc lifecycle and found that the heap was split into two isolated thread-locals in context.rs, with one for alloc() and a totally different one for gc_collector().

Also, boa_gc::force_collect() was marked a no-op, thus the memory was never actually being swept during the entire test run. Fixed it by unifying the thread-locals into a single MutationContext::global() and implemented the sweep phase for force_collect

While digging into this, I also tracked down a big memory leak in oscars. Added non_root_count to count internal references, since it was missing in the mark sweep branded collector

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

C-Actions Pull requests that update Github Actions code C-Dependencies Pull requests that update a dependency file C-GC Issue related to garbage collection C-Tests Issues and PRs related to the tests. Waiting On Review Waiting on reviews from the maintainers

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants