-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Bootstrap problem when moving Cont_tag to be after No_scan_tag #11182
Description
As things stand, we tag pointers to stacks in continuation objects to avoid them getting entangled with the GC; however if Cont_tag were after No_scan_tag then it looks like we could avoid this (making various bits of assembler and C code simpler).
However in my attempt to move the tags around, I could not bootstrap the compiler using the instructions in BOOTSTRAP.adoc. The commit I was attempting to bootstrap is here; this commit shuffles the tags such that Cont_tag is after No_scan_tag. I tried stepping through the make bootstrap commands and the problem arises at the $(MAKE) library-cross point with:
../runtime/ocamlrun ../ocamlc -strict-sequence -absname -w +a-4-9-41-42-44-45-48-70 -g -warn-error +A -bin-annot -nostdlib -principal -safe-string -strict-formats -nopervasives -c camlinternalFormatBasics.mli
This command causes a segmentation fault in intern_alloc_obj. I believe the problem is that the new runtime (with new tag conventions) is attempting to read a binary file produced with the old runtime (with old tag conventions).
I'm not exactly sure how to proceed to make the bootstrap work and so any advice on how best to achieve this would be welcome.