You need to run "make bootstrap" to avoid having part of the definition compiled against the stale definition of lambda.cmi. (I just checked that it works on your change: after a bootrsap, "make world", "make opt", "make opt.opt" work.) On Sat, Aug 8, 2015 at 5:50 AM, Bob Zhang wrote: > > Dear caml develpers, > > I am working on an experimental branch to pass more information from > typedtree to lambda to enable ocaml generate user readable javascript code( > https://github.com/bobzhang/ocaml/tree/master) (online-demo: > http://zhanghongbo.me/js-demo/) > > Here I get a segfault, after I change const_block: > Below is my minimal change: > > ``` > type pointer_info = > | NullConstructor of string > | NullVariant of string > | NAPointer > > type tag_info = > | Constructor of string > | Tuple > | Variant of string > | Record > | NA > > type structured_constant = > Const_base of constant > | Const_pointer of int * pointer_info > | Const_block of int * tag_info * structured_constant list > | Const_float_array of string list > | Const_immstring of string > ``` > Note that the enriched info is not used in ``emitcode``, now I get a > segfault in make world: > > ``` > ../../boot/ocamlrun ../../ocamlc -nostdlib -I ../../stdlib -c -w +33..39 > -warn-error A -bin-annot -g -safe-string -I ../../stdlib -I ../../utils -I > ../../typing -I ../../bytecomp -I ../../asmcomp extract_crc.ml > ../../boot/ocamlrun ../../ocamlc -nostdlib -I ../../stdlib -o extract_crc > dynlink.cma extract_crc.cmo > make[3]: *** [extract_crc] Segmentation fault: 11 > make[3]: *** Deleting file `extract_crc' > make[2]: *** [otherlibraries] Error 2 > make[1]: *** [all] Error 2 > ``` > > Any help is appreciated : ) > > -- > Regards > -- Hongbo Zhang >