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

Revert "Introduce zed.Arena (#5118)" and "sort: Fix spill garbage collection bug (#5239)" #5278

Merged
merged 1 commit into from
Sep 16, 2024

Conversation

nwt
Copy link
Member

@nwt nwt commented Sep 14, 2024

This reverts commits ce9626e and 1ffe14f.

A zed.Value allocated by a zed.Arena holds an untyped pointer to the arena in zed.Value.a, hiding the arena from the garbage collector and requiring maintenance elsewhere of a typed pointer that lives as long as the zed.Value. Failure to do so reliably has so far led to three distinct panics not caught by automated tests, and more are likely to appear.

At the same time, arenas haven't produced the anticipated performance benefit, in part because they introduce new bottlenecks without obvious fixes.

In this light and given current priorities, time spent fixing arena bugs isn't well spent, so this change removes zed.Arena.

Closes #5150, #5154, #5259

…lection bug (#5239)"

This reverts commits ce9626e and
1ffe14f.

A zed.Value allocated by a zed.Arena holds an untyped pointer to the
arena in zed.Value.a, hiding the arena from the garbage collector and
requiring maintenance elsewhere of a typed pointer that lives as long as
the zed.Value.  Failure to do so reliably has so far led to three
distinct panics not caught by automated tests, and more are likely to
appear.

At the same time, arenas haven't produced the anticipated performance
benefit, in part because they introduce new bottlenecks without obvious
fixes.

In this light and given current priorities, time spent fixing arena bugs
isn't well spent, so this change removes zed.Arena.
@nwt nwt requested a review from a team September 14, 2024 06:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
2 participants