You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: rfcs/0137-nix-language-version.md
+6-2
Original file line number
Diff line number
Diff line change
@@ -39,12 +39,15 @@ where `<version>` is a released version of Nix the given file is intended to wor
39
39
# Arguments
40
40
[advantages]: #advantages
41
41
42
-
* (+) Encourages developing Nix to deal with changes to the Nix language in a principled manner.
42
+
* (+) Makes explicit what can be expected to work.
43
+
* (+) Enables communicating language changes systematically.
43
44
* (+) Backwards-compatible
44
45
* (+) Allows for gradual adoption: opt-in until semantics is implemented in Nix *and* the first backwards-incompatible change to the language is introduced.
45
46
* (+) Visually unintrusive
46
47
* (+) Self-describing and human-readable
47
48
* (+) Follows a well-known convention of using [magic numbers in files](https://en.m.wikipedia.org/wiki/Magic_number_(programming)#In_files)
49
+
* (-) May make the appearance that changing the language is harmless.
50
+
* (+) The convention itself is harmless and independent of the development culture around the language.
48
51
* (-) The syntax of the magic comment is arbitrary.
49
52
* (-) There is a chance of abusing the magic comment for more metadata in the future. Let's avoid that.
50
53
* (-) At least one form of comment is forever bound to begin with `#` to maintain compatibility.
@@ -91,4 +94,5 @@ where `<version>` is a released version of Nix the given file is intended to wor
91
94
# Future work
92
95
[future]: #future-work
93
96
94
-
Define semantics, that is, what exactly to do with the information given in the magic comment.
97
+
- Define semantics, that is, what exactly to do with the information given in the magic comment.
98
+
- Define rules deciding when a change to the language is appropriate to avoid proliferation and limit complexity of implementation.
0 commit comments