(reset-branch-index) -> #f
Resets an internal counter used by the compiler to generate unique symbols for branches. Used when testing the compiler to ensure a compiler pass will generate the same branches each time.
Examples:
>> (compile '((if x "true" "false"))) :: ((usea 0 1) (ldu) (drop) (ldg x) (jf false-4) (ldc "true") (jmp done-3) false -4 (ldc "false") done-3 (retn)) >> (compile '((if x "true" "false"))) :: ((usea 0 1) (ldu) (drop) (ldg x) (jf false-6) (ldc "true") (jmp done-5) false -6 (ldc "false") done-5 (retn))
>> (compile '((if x "true" "false"))) :: ((usea 0 1) (ldu) (drop) (ldg x) (jf false-2) (ldc "true") (jmp done-1) false -2 (ldc "false") done-1 (retn)) >> (reset-branch-index) :: #f >> (compile '((if x "true" "false"))) :: ((usea 0 1) (ldu) (drop) (ldg x) (jf false-2) (ldc "true") (jmp done-1) false -2 (ldc "false") done-1 (retn))
Note that in the second example, the two runs are identical.