-
Notifications
You must be signed in to change notification settings - Fork 76
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
Locals x effects #2215
base: main
Are you sure you want to change the base?
Locals x effects #2215
Conversation
90a71c0
to
6634a71
Compare
I'm also going to put in this PR the re-enabling of tests disabled with the |
dae432c
to
5eddd1b
Compare
Could you or @stedolan add some description to this PR of how this works, and some indication of what invariants it relies on to work? It's unclear whether this supports e.g. pointers to locals on a parent's stack. |
Sure, I'll probably do this as comments in the code. |
cf4d38d
to
74e9015
Compare
74e9015
to
69f0be7
Compare
69f0be7
to
836c794
Compare
This provides support for local allocations in the presence of algebraic effects.
There aren't presently any clever optimisations, although care is taken to ensure that the code sequences generated by the OCaml compiler for local allocations remain unchanged. This is done by arranging for some of the per-stack locals state to be present at the root of
Caml_state
in addition to being stored in thestack_info
structures.Based on #2205.