One simple, not-very-offensive example is using `var` as a return type - a caller of the method must now analyze the body of the method (and methods it calls!) to determine return type. This wreaks havoc on public API stability, predictability of code, etc.
-
-
Show this thread
-
and now I'm working on a SPIR-V compiler and SPIR-V constantly screams "I EAT WHOLE PROGRAM ANALYSIS FOR *BREAKFAST*" so, *so* many errors depend on whole-program analysis :'(
Show this thread
End of conversation
New conversation -
-
-
oh yeah I picked this up real quickly in pre 1.0 Rust when thinking about language design ideas super important
Thanks. Twitter will use this to make your timeline better. UndoUndo
-
-
-
locality is a blessing. and not just for the computer, but for anyone having to read the code
Thanks. Twitter will use this to make your timeline better. UndoUndo
-
-
-
i think my first experience with the downsides of this was c++ template errors (i used haskell before c++, but they strongly encouraged type signatures on all your functions. i didn't get why until later)
Thanks. Twitter will use this to make your timeline better. UndoUndo
-
-
-
is it because it not only makes the compiler's job hard, but also makes the language harder to read for users?
Thanks. Twitter will use this to make your timeline better. UndoUndo
-
-
-
Oh, crap. (Speaking as a maintainer of a whole-program analysis that determines the validity of code using GC-movable pointers.)
-
I'm pretty sure the GC rooting analysis isn't a whole program analysis because functions are analyzed independently. ie at a call site for Foo(), the contents of Foo() are not analyzed.
- Show replies
New conversation -
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.
~ she/her ~
works on compilers (rust-gpu) at