mt-lang 0.3.27 → 0.3.30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +28 -3
- data/docs/index.html +2 -2
- data/docs/language-design.md +2 -2
- data/docs/language-manual.md +38 -2
- data/lib/milk_tea/base.rb +1 -1
- data/lib/milk_tea/core/c_backend/feature_detection.rb +8 -0
- data/lib/milk_tea/core/c_backend/runtime_helpers.rb +21 -0
- data/lib/milk_tea/core/c_backend.rb +4 -0
- data/lib/milk_tea/core/lowering/expressions.rb +4 -0
- data/lib/milk_tea/core/parser/declarations.rb +40 -5
- data/lib/milk_tea/core/parser.rb +12 -2
- data/lib/milk_tea/core/semantic_analyzer/expressions.rb +2 -2
- metadata +2 -5
- data/docs/self-host-contract.md +0 -1091
- data/docs/self-host-plan.md +0 -768
- data/docs/self-host-progress.md +0 -130
data/docs/self-host-progress.md
DELETED
|
@@ -1,130 +0,0 @@
|
|
|
1
|
-
# Self-Host Progress
|
|
2
|
-
|
|
3
|
-
Tracks implementation status against `docs/self-host-contract.md` §11.
|
|
4
|
-
|
|
5
|
-
Status: `[ ]` not started · `[~]` in progress · `[x]` done · `[-]` blocked
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## Phase 0: Foundation
|
|
10
|
-
|
|
11
|
-
| Step | Status | Module | Notes |
|
|
12
|
-
|------|--------|--------|-------|
|
|
13
|
-
| 1 | [ ] | `mtc.lexer.token_kinds` | |
|
|
14
|
-
| 2 | [ ] | `mtc.lexer.token` | |
|
|
15
|
-
| 3 | [ ] | `mtc.lexer.keywords` | |
|
|
16
|
-
| 4 | [ ] | `mtc.ast` | |
|
|
17
|
-
| 5 | [ ] | `mtc.semantic.types` | |
|
|
18
|
-
| 6 | [ ] | `mtc.ir` | |
|
|
19
|
-
| 7 | [ ] | `mtc.sexpr_dumper` | |
|
|
20
|
-
|
|
21
|
-
## Phase 1: Lexer
|
|
22
|
-
|
|
23
|
-
| Step | Status | Module | Notes |
|
|
24
|
-
|------|--------|--------|-------|
|
|
25
|
-
| 8 | [ ] | `mtc.lexer.lexer` | |
|
|
26
|
-
|
|
27
|
-
## Phase 2: Parser
|
|
28
|
-
|
|
29
|
-
| Step | Status | Module | Notes |
|
|
30
|
-
|------|--------|--------|-------|
|
|
31
|
-
| 9 | [ ] | `mtc.parser.state` | |
|
|
32
|
-
| 10 | [ ] | `mtc.parser.parser` | |
|
|
33
|
-
|
|
34
|
-
## Phase 3: Path Resolver
|
|
35
|
-
|
|
36
|
-
| Step | Status | Module | Notes |
|
|
37
|
-
|------|--------|--------|-------|
|
|
38
|
-
| 11 | [ ] | `mtc.loader.path_resolver` | |
|
|
39
|
-
|
|
40
|
-
## Phase 4: Semantic Analyzer
|
|
41
|
-
|
|
42
|
-
| Step | Status | Module | Notes |
|
|
43
|
-
|------|--------|--------|-------|
|
|
44
|
-
| 12 | [ ] | `mtc.semantic.scope` | |
|
|
45
|
-
| 13 | [ ] | `mtc.semantic.intrinsics` | |
|
|
46
|
-
| 14 | [ ] | `mtc.semantic.compile_time` | |
|
|
47
|
-
| 15 | [ ] | `mtc.semantic.type_compatibility` | |
|
|
48
|
-
| 16 | [ ] | `mtc.semantic.expressions` | |
|
|
49
|
-
| 17 | [ ] | `mtc.semantic.diagnostics` | |
|
|
50
|
-
| 18 | [ ] | `mtc.semantic.analyzer` | |
|
|
51
|
-
|
|
52
|
-
## Phase 4a: Control Flow
|
|
53
|
-
|
|
54
|
-
| Step | Status | Module | Notes |
|
|
55
|
-
|------|--------|--------|-------|
|
|
56
|
-
| 19 | [ ] | `mtc.semantic.control_flow.*` | |
|
|
57
|
-
|
|
58
|
-
## Phase 4b: Module Binder
|
|
59
|
-
|
|
60
|
-
| Step | Status | Module | Notes |
|
|
61
|
-
|------|--------|--------|-------|
|
|
62
|
-
| 20 | [ ] | `mtc.loader.binder` | |
|
|
63
|
-
|
|
64
|
-
## Phase 4c: Module Loader
|
|
65
|
-
|
|
66
|
-
| Step | Status | Module | Notes |
|
|
67
|
-
|------|--------|--------|-------|
|
|
68
|
-
| 21 | [ ] | `mtc.loader.module_loader` | |
|
|
69
|
-
|
|
70
|
-
## Phase 5: Lowering
|
|
71
|
-
|
|
72
|
-
| Step | Status | Module | Notes |
|
|
73
|
-
|------|--------|--------|-------|
|
|
74
|
-
| 22 | [ ] | `mtc.lowering.utils` | |
|
|
75
|
-
| 23 | [ ] | `mtc.lowering.lowering` | |
|
|
76
|
-
| 24 | [ ] | `mtc.lowering.async` | |
|
|
77
|
-
|
|
78
|
-
## Phase 6: C Backend
|
|
79
|
-
|
|
80
|
-
| Step | Status | Module | Notes |
|
|
81
|
-
|------|--------|--------|-------|
|
|
82
|
-
| 25 | [ ] | `mtc.c_backend` | |
|
|
83
|
-
|
|
84
|
-
## Phase 6a: Pretty Printer
|
|
85
|
-
|
|
86
|
-
| Step | Status | Module | Notes |
|
|
87
|
-
|------|--------|--------|-------|
|
|
88
|
-
| 26 | [ ] | `mtc.pretty_printer` | |
|
|
89
|
-
|
|
90
|
-
## Phase 7: Build & CLI
|
|
91
|
-
|
|
92
|
-
| Step | Status | Module | Notes |
|
|
93
|
-
|------|--------|--------|-------|
|
|
94
|
-
| 27 | [ ] | `mtc.build` | |
|
|
95
|
-
| 28 | [ ] | `mtc.build_cache` | |
|
|
96
|
-
| 29 | [ ] | `mtc.main` | |
|
|
97
|
-
|
|
98
|
-
## Phase 8: Bootstrap
|
|
99
|
-
|
|
100
|
-
| Step | Status | Check | Notes |
|
|
101
|
-
|------|--------|-------|-------|
|
|
102
|
-
| 8a | [ ] | Stage2 builds | |
|
|
103
|
-
| 8b | [ ] | `diff stage2.c stage3.c` empty | |
|
|
104
|
-
| 8c | [ ] | Stage2 self-builds to working binary | |
|
|
105
|
-
| 8d | [ ] | Test suite passes under stage2 | |
|
|
106
|
-
|
|
107
|
-
---
|
|
108
|
-
|
|
109
|
-
## Summary
|
|
110
|
-
|
|
111
|
-
| Metric | Count |
|
|
112
|
-
|--------|------:|
|
|
113
|
-
| Total steps | 29 |
|
|
114
|
-
| Done | 0 |
|
|
115
|
-
| In progress | 0 |
|
|
116
|
-
| Blocked | 0 |
|
|
117
|
-
| Remaining | 29 |
|
|
118
|
-
|
|
119
|
-
---
|
|
120
|
-
|
|
121
|
-
## Post-Fixed-Point
|
|
122
|
-
|
|
123
|
-
| Subsystem | Status | Notes |
|
|
124
|
-
|-----------|--------|-------|
|
|
125
|
-
| LSP server | [ ] | Deferred |
|
|
126
|
-
| DAP server | [ ] | Deferred |
|
|
127
|
-
| Bindgen | [ ] | Deferred |
|
|
128
|
-
| Imported bindings | [ ] | Deferred |
|
|
129
|
-
| Linter | [ ] | Deferred |
|
|
130
|
-
| Packages | [ ] | Deferred |
|