commit 077c0f357402032abc4978e7f5e20ca310a3d628
parent 58babc79e80d34c770cf2626cce419c44aa95862
Author: Virgil Dupras <hsoft@hardcoded.net>
Date: Mon, 4 Jul 2022 08:25:42 -0400
README: roadmap update
Diffstat:
M | README.md | | | 36 | ++++++++++++++++++++++++++++-------- |
1 file changed, 28 insertions(+), 8 deletions(-)
diff --git a/README.md b/README.md
@@ -79,7 +79,7 @@ type are simple Forth words.
## Roadmap
-Here's the plan so far:
+The high level roadmap for Dusk OS is:
1. Have a 32-bit Forth written in x86 run on top of of a Linux system.
2. Create a pseudo C compiler that is partly written in Forth and has the
@@ -92,24 +92,41 @@ Here's the plan so far:
## Status
-Currently working on step 2 of the roadmap. The C compiler has a fair chunk of
-the language implemented already. You can see a sample of what it compiles in
-`fs/tests/cc/test.c`. Its technical documentation is at `fs/doc/cc.txt`. What's
-missing currently is:
+Current roadmap status is discussed on a [mailing list thread][7], but here's
+the summary: the C compiler is advancing well, bare metal too. You can see the
+kind of code that Dusk is capable of compiling and executing at
+[fs/tests/cc/test.c][8] and you can read about its [technical details][9]. The
+system is capable of booting from a FAT16 volume which is currently read from a
+RAM drive.
+
+The roadmap advances with a series of "milestones" subprojects requiring Dusk
+OS to advance in multiple areas at the same time. The current milestone is to
+port Collapse OS' "blkpack" tool to Dusk OS C (with the broader milestone, of
+course, to port the whole of Collapse OS' C code to Dusk). For this goal to
+be reached, the subitems that are still needed are:
+
+* Implement the "write" part of FAT16, which is currently read-only. Maybe in
+ Dusk C, that would be fun.
+* Implement scanf().
+* Implement getline().
+* Copy/paste blkpack.c and fire it up.
+* Probably fix many compiler bugs.
+
+In a general way, here's the list of things missing from Dusk C for it to be
+consider a "real" C compiler:
* ops width depending on type (everything is dword)
* struct, union
* typedefs
-* global variables
+* global variables (partial support now)
* for, while, switch, goto
-* string literals
* floats
* a few ops here and there
* preprocessing
* the check phase (anything that is currently understood by the parser is
compiled no matter how nonsensical).
* the stdlib (but it's going to be significantly different than a regular C
- stdlib, see `fs/doc/cc.txt`)
+ stdlib, see [fs/doc/cc.txt][9])
* probably countless bugs
So, there's a fair chunk of work left, but there's also a lot that's already
@@ -154,3 +171,6 @@ You might be interested in [this thread from the mailing list][5].
[4]: https://sr.ht/~vdupras/duskos/lists
[5]: https://lists.sr.ht/~vdupras/duskos-discuss/%3C87czew8rir.fsf%40valley.vpn%3E
[6]: https://www.gnu.org/software/mtools/
+[7]: https://lists.sr.ht/~vdupras/duskos-discuss/%3C1a6b5f15-a54a-4f28-8b7c-a9da2009a4c5%40www.fastmail.com%3E
+[8]: https://git.sr.ht/~vdupras/duskos/tree/master/item/fs/tests/cc/test.c
+[9]: https://git.sr.ht/~vdupras/duskos/tree/master/item/fs/doc/cc.txt