aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRunxi Yu <me@runxiyu.org>2024-12-01 22:00:40 +0800
committerRunxi Yu <me@runxiyu.org>2024-12-01 22:00:40 +0800
commit489289e85be1bd9c569e93f3b2daab44c8c1912f (patch)
treea6bb2c34e4d94d3811b8ffa4fa513dbf951378f3
parentreasoning: Explicitly mention unlocking as a candidate for nofail (diff)
downloade2-spec-489289e85be1bd9c569e93f3b2daab44c8c1912f.tar.gz
e2-spec-489289e85be1bd9c569e93f3b2daab44c8c1912f.tar.zst
e2-spec-489289e85be1bd9c569e93f3b2daab44c8c1912f.zip
Add a few more differences from C
-rw-r--r--README.md9
1 files changed, 9 insertions, 0 deletions
diff --git a/README.md b/README.md
index a849649..4024aa6 100644
--- a/README.md
+++ b/README.md
@@ -87,3 +87,12 @@ You may use `canfail` to be explicit about the reverse in function definitions,
or to override a function when calling it. In the latter case, if the function
does not define an `onfail` section, you must wrap it in a `try {...} onfail {...}`
block.
+
+## Other non-trivial differences from C
+
+1. Instead of `errno`, we use multiple return values to indicate errors where
+ appropriate.
+2. Minimize undefined behavior, and set stricter rules for
+ implementation-defined behavior.
+3. Support compile-time code execution.
+4. More powerful preprocessor?