Description
Is your feature request related to a problem? Please describe.
We have a bunch of behaviours (mostly in the evaluator, but probably not only) that we'd like to get rid of, but can't because of backwards-compatibility.
A good middle-ground solution is to keep them, but add a warning to prevent people from accidentally relying on them.
We currently never do that because doing so would require adding a way to opt-out easily, and
- We don't really want to do it in a, ad-hoc fashion
- We don't have infrastructure to do it in a principled fashion.
Describe the solution you'd like
Some infrastructure (similar to the experimental-features
one?) allowing to declare warnings and expose a way to easily toggle them (or turn into hard errors) from the CLI or the configuration files.
Describe alternatives you've considered
- Allow breaking changes to the language (with something like [RFC 0137] Nix language versioning rfcs#137)
- Add warnings in a more ad-hoc way (just call
warn
) in a bunch of places
Additional context
Random sampling of things that we might want to get warning for:
- unexpected result due to paths stripping trailing / #10262
no-absolute-path-literals
experimental feature #8738- Remove the
no-url-literals
experimental feature #10048 - Make sure we can fix the parser's bad list/number interactions #8613
- Support hexadecimal and octal syntax for integers #7578
__curPos
keyword is undocumented #10036
Priorities
Add 👍 to issues you find important.