Skip to content

Commit 523867d

Browse files
authored
chore: update ROADMAP.md
1 parent 241a064 commit 523867d

File tree

1 file changed

+7
-5
lines changed

1 file changed

+7
-5
lines changed

ROADMAP.md

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
## Roadmap - Self-hosted compiler
22

33
- [X] Check correct implementation of a trait.
4-
- [ ] `no_mangle` attribute.
4+
- [ ] `no_mangle` attribute to avoid function mangling.
5+
- [ ] `c_union` attribute to indicate that a struct should behave the same as a C union.
56
- [ ] Format command (`rivet fmt .`).
67
- [ ] Replace Python scripts with Rivet scripts.
78
- [ ] Explicit function/method overloading:
@@ -19,13 +20,13 @@
1920
- [ ] Constant-folding: `x := 2 * 2;` => `x := 4;`.
2021
- [ ] Optimize code, inline functions/methods annotated with `inline`,
2122
delete unused code, etc.
22-
- [ ] (Atomic) Reference-Counting for traits, boxed enums, strings and vectors.
23+
- [ ] (Atomic) Reference-Counting for traits, boxed enums, strings, vectors and structs.
2324
- [ ] Better support for embedded structs.
2425
- [ ] `undefined` for uninitialized variables: `x: [5]uint8 := undefined;`.
2526
- [ ] Disallow empty array literal (`x := []!; -> ERROR`).
2627
- [ ] Add `@is_flag_defined()` builtin function.
2728
- [ ] Generic support: `Struct<T> { f: T; }` => `Struct:<T>(f: @default(T))`.
28-
- [ ] Lambdas + Closures: `sum := |a: int32, b: int32| a + b;`.
29+
- [ ] Lambdas + Closures: `sum := |a: int32, b: int32| [my_inherited_var] a + b;`.
2930
- [ ] Anonymous structs: `my_obj := struct(my_field: 1, other_field: true, pwd: "abc");`.
3031
- [ ] `extern (C) import` for C interop:
3132
```swift
@@ -40,14 +41,15 @@
4041

4142
func xyz() { }
4243
```
44+
- [ ] Replace `c/libc` definitions by `extern (C) import` declarations.
4345
- [ ] `comptime` statement for compile-time execution (`CTE`):
4446
```swift
4547
comptime {
4648
my_func();
4749
}
4850

4951
func my_func() {
50-
console.println("executed in compile-time");
52+
console.writeln("executed in compile-time");
5153
}
5254
```
53-
- [ ] Replace `c/libc` definitions by `extern (C) import` declarations.
55+

0 commit comments

Comments
 (0)