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

excessive mutator activity between regional collections #753

Open
WillClinger opened this issue May 12, 2016 · 1 comment
Open

excessive mutator activity between regional collections #753

WillClinger opened this issue May 12, 2016 · 1 comment

Comments

@WillClinger
Copy link
Member

The regional collector allows excessive mutator activity between regional collections on the following benchmark:

../../../larceny --regional --annoy-user --r7rs --program srfi-128-benchmark.sps

This is probably related to the assignment-intensive style in which the sample implementation for SRFI 128 is written, but the regional collector is supposed to preserve its invariants regardless of what the mutator does.

The bug may be harmless for that particular benchmark, because the assignment (inside the code for make-hasher) always stores a fixnum, and it may be that it's just some kind of accounting bug in which some part of the regional collector is using accounting appropriate for the generational collector (which ignores such assignments) instead of the regional collector. But it's definitely a bug, and it could be a serious bug.

@WillClinger
Copy link
Member Author

Here's another possible explanation: vector-map is probably being called with a vector that's too long to fit within a single region. The regional collector's invariants are guaranteed only if every object fits within a single region. We haven't yet changed Larceny's representations to make that possible for long vectors.

If that's the explanation, and it probably is, then it's still a bug but it's a well-understood bug, which is a lot less scary than some unknown bug in the regional collector. I'm downgrading the priority to minor.

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

No branches or pull requests

1 participant