I added some more traces, this time in linearscan.js, and got this output when the Tachyon/Tachyon (i.e. the bootstrapped Tachyon) was compiling fib:
... insertCondErrorIR errorName=TypeError insertErrorIR errorName=TypeError errorCtor=box $t_27 = load_box $t_25, $t_26 Generating IR for: "runtime/strings.js" Generating IR for: "runtime/ffi.js" Generating IR for: "runtime/rtinit.js" Performing IR lowering for: "object layout source" Performing IR lowering for: "FFI wrapper source" Performing IR lowering for: "runtime/utility.js" Performing IR lowering for: "runtime/primitives.js" Performing IR lowering for: "runtime/strings.js" Performing IR lowering for: "runtime/ffi.js" Performing IR lowering for: "runtime/rtinit.js" Generating machine code for: "object layout source" unhandledQueue.enqueue(current.split(nextRegPos - 1)); pos=11 this.startPos()=10 unhandledQueue.enqueue(current.split(nextRegPos - 1)); pos=11 this.startPos()=11 *** RUN-TIME ERROR *** SplitError: position '11' happens at the beginning of the interval
Earlier in the trace, when Tachyon/V8 was compiling the Tachyon source code, the trace was:
... insertCondErrorIR errorName=TypeError insertErrorIR errorName=TypeError errorCtor=box $t_27 = load_box $t_25, $t_26 Generating IR for: "runtime/strings.js" Generating IR for: "runtime/ffi.js" Generating IR for: "runtime/rtinit.js" Performing IR lowering for: "object layout source" Performing IR lowering for: "FFI wrapper source" Performing IR lowering for: "runtime/utility.js" Performing IR lowering for: "runtime/primitives.js" Performing IR lowering for: "runtime/strings.js" Performing IR lowering for: "runtime/ffi.js" Performing IR lowering for: "runtime/rtinit.js" Generating machine code for: "object layout source" unhandledQueue.enqueue(current.split(freeUntilPos[reg])); pos=16 this.startPos()=4 unhandledQueue.enqueue(current.split(freeUntilPos[reg])); pos=16 this.startPos()=4 unhandledQueue.enqueue(current.split(freeUntilPos[reg])); pos=16 this.startPos()=4 unhandledQueue.enqueue(current.split(freeUntilPos[reg])); pos=16 this.startPos()=4 unhandledQueue.enqueue(current.split(freeUntilPos[reg])); pos=16 this.startPos()=4 ...
If I understand correctly, the two traces should be the same (since "object layout source" is the same).
Marc