Advantages of error: (i) refuses to run with any type instability. It's sort of like the Rust compiler in that it guarantees certain behavior; (ii) does not flood the REPL output with messages as you just exit immediately.
Advantages of warning: (i) does not quit on the first instability, displays a warning for each unstable function throughout the stacktrace, which makes it easier to track down issues; (ii) allows you to run code without needing the allow_unstable function.
However, what should the default be? You can always set the default_mode yourself, or set it via Preferences.jl. If you have a particular point to would like to add you can comment it, otherwise please just vote using emojis (🎉 or 👀 )
This is a question for the community. What should be the default behavior of a
@stable
-ized function encountering type instability?default_mode="error"
)default_mode="warn"
)Comparison:
allow_unstable
function.However, what should the default be? You can always set the
default_mode
yourself, or set it via Preferences.jl. If you have a particular point to would like to add you can comment it, otherwise please just vote using emojis (🎉 or 👀 )