-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathFEATURES
31 lines (25 loc) · 1.12 KB
/
FEATURES
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Some feature/implementation differences between s1 and s2:
Superset of s1:
- s2 has gotos. (Won't be implemented in s1.)
- s2 has o8, o16, o32, diff.
- s2 has incr/decr and "+="-type operators.
- s2 allows negation for overflow types.
- s2 allows deftype names to shadow def names.
- s2 doesn't sanity-check template defs' types. (It should.)
- s2 supports 16-bit literals and defs.
Superset of s1, necessary to compile s3:
- s2 has quick-return expressions (error handling with unary "#")
Subset of s1:
- s2 disallows assignment except for top-level exprs.
- s2 disallows strinits nakedly in conditionals/swartch locations.
- s2 enum constructor type-checking/lookup is different.
- s2 disallows whole field lookup.
- s2 requires expression statements be void.
Some feature/implementation differences between s2 and s3:
Superset of s2, necessary to compile s4:
- s3 has generalized array indexing.
Some feature/implementation differences between s3 and s4:
Superset of s3, necessary to compile s5:
- s4 has foreach loops.
Feature/implementation differences (to speak of) between s4 and s5:
- (None.)