Author: Virgil Dupras <firstname.lastname@example.org>
Date: Mon, 4 Jul 2022 08:25:42 -0400
README: roadmap update
|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.
-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:
-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], 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] and you can read about its [technical details]. The
+system is capable of booting from a FAT16 volume which is currently read from a
+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
-* global variables
+* global variables (partial support now)
* for, while, switch, goto
-* string literals
* a few ops here and there
* 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])
* 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].