You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
. This feature was not implemented in OCaml 5 only because initially OCaml 5 only ran on x86, where this feature was not available. There are no blockers to this feature being re-enabled.
In OCaml 5, since the runtime maintains the stacks, the stack limits are generous: #11238. Hence, the already scanned optimisation is much more useful than in OCaml 5 than in OCaml 4. So much so that it may be worth coming with a scheme to enable this feature in all the architectures and not just in those where bits can be stolen return addresses. One possibility is to have an extra word in every frame for the already scanned information. Since only a single bit is necessary for the already scanned information, the rest of the bits may be used for other purposes.
CC @stedolan and @jasigal, who has some OCaml programs that may benefit from this optimisation.
The text was updated successfully, but these errors were encountered:
OCaml 4 has "Already Scanned" optimisation to avoid rescanning stack frames that haven't changed. See
ocaml/runtime/roots_nat.c
Line 312 in 9eb434c
In OCaml 5, since the runtime maintains the stacks, the stack limits are generous: #11238. Hence, the already scanned optimisation is much more useful than in OCaml 5 than in OCaml 4. So much so that it may be worth coming with a scheme to enable this feature in all the architectures and not just in those where bits can be stolen return addresses. One possibility is to have an extra word in every frame for the already scanned information. Since only a single bit is necessary for the already scanned information, the rest of the bits may be used for other purposes.
CC @stedolan and @jasigal, who has some OCaml programs that may benefit from this optimisation.
The text was updated successfully, but these errors were encountered: