Reset-Branch-Index

(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.