Since the author is here and reading comments: when viewing this page in dark mode, some of the text is black-on-black. Specifically the "if" in "Compiling if-expressions, finally" and the "jcc" and "jmp" in "jcc and jmp implementations"
Ah, that is unfortunate. Someone submitted a PR on GitHub. Since it doesn't work, I'll revert it.
Why does scheme have explicit booleans? Does this improve performance or is it just for clarity?
I am doing this for clarity. I could have used nil as the false value and not-nil as the true values. Except for wasting pointer space, I don't think it really matters ¯\_(ツ)_/¯