Superb discussion of the many types of UB in C/C++ and how to deal with them:
https://blog.regehr.org/archives/1520
(infinite loops is my fav oddball UB)
miniblog.
Related Posts
I've been iterating further on how Garden shows type errors.
For types in the standard library, I'm now showing "a String" but "an Int". I'm also doing basic syntax highlighting of the code excerpt.
What do you think?
What types should you infer when code is invalid?
In Garden, + only applies to integers. What should the type of "x" + "y" be?
(1) Int: This produces cascading errors.
(2) String: We've already emitted an error anyway.
(3) Bottom.
Opinions?
LLMs have been really helpful for me porting some JS projects to TS.
Since the types are erased and annotations are optional, I can go gradually and safely with more minimal human oversight.
(I'm not sure if it'll significantly help robustness, but it's lovely for navigation.)