I'm a big fan of segmented stacks (or 'split stacks'), where stack frames are heap allocated, You can write recursive functions with less worry, and you get better tracebacks than TCO.
Go is the most popular language with this feature, to my knowledge: https://dave.cheney.net/2013/06/02/why-is-a-goroutines-stack-infinite
I'd assumed that LLVM didn't support this, but gollvm handles it fine! https://groups.google.com/g/golang-nuts/c/ivOZ-j6Zt2c/m/BUBX2Td9BgAJ
miniblog.
Related Posts
Today I learnt that you can mix HTML inline in markdown! For example, the following is valid.
Foo <hr/>
I'd assumed that you needed HTML separately, like ``` blocks, but no: https://spec.commonmark.org/0.31.2/#raw-html
Admittedly HTML is very restricted on most sites, but it's helpful for SSGs.
Today I learnt that Scheme (1975) is actually older than Common Lisp (1984)! I'd assumed that Scheme designs were a response to CL.
Many of the CL features were created earlier, in fairness. CL was standardising the feature set.
I've changed the difftastic slogan to " a structural diff that understands syntax".
Previously I just said "a diff that understands syntax", but users sometimes assumed it was just a diff with syntax highlighting. Hopefully this communicates the purpose better.