2 bugfixes later, 10/12 example programs building correctly.
There's one known hole in my implementation: it doesn't support '\n' in string literals. Now may be the time to plug this gap.
https://github.com/akkartik/mu/blob/5030d67c85/subx/Readme.md
2 bugfixes later, 10/12 example programs building correctly.
There's one known hole in my implementation: it doesn't support '\n' in string literals. Now may be the time to plug this gap.
https://github.com/akkartik/mu/blob/5030d67c85/subx/Readme.md
First example program successfully translated!
4 programs now translating:
✓ ex1
✓ ex2
ex3
✓ ex4
ex5
ex6
✓ ex7
ex8
ex9
...
Sample run:
$ cat examples/ex1.subx |dquotes |assort |pack |survey |hex > a.elf
https://github.com/akkartik/mu/blob/294a15206329/subx/Readme.md
All phases are done and passing tests separately. However I haven't yet managed to actually put the final phase together with the rest to build any actual programs.
Here's what I have so far in the final phase: http://akkartik.github.io/mu/html/subx/apps/survey.subx.html
I've also started working on the next step: a simple list of steps for building a minimal Linux kernel to go with SubX. It's the final dependency.
All tests for the fifth and final phase are written, and detailed pseudocode has been sketched out (in classic waterfall fashion). That seems like 90% done. Is this when they say the remaining 90% kicks in? :)
Back on Mar 31 I estimated it would take 3-4 months. That makes the 'deadline' end-June or mid-July. Is this project somehow going to get delivered on schedule, in spite of missing all intermediate deadlines until now?!
Someone's been helping me. Is it possible adding more manpower to the project will help it get delivered on time?!
The previous phase took 7 weeks, but what's a factor of 7 between friends 😄
Some LoC stats (total, and excluding comments/tests):
Similarly, some executable sizes:
https://github.com/akkartik/mu/blob/6f28e4b66/subx/Readme.md
a) SubX now has sandbox branches where people can reimplement existing features.
b) I'll be publishing in-progress work. In the past wanting to keep HEAD passing tests has caused changes to accumulate for weeks at a time. Now they'll start getting feature branches like https://github.com/akkartik/mu/pull/23
Each PR at https://github.com/akkartik/mu/pulls now has context and instructions.
a) Packing mod/reg/rm operands, and scale/index/base operands into single bytes. (ETA: 2 days)
b) Handling string literals. (ETA: 1 week)
c) Support for labels. (ETA: ???. 3 months, if past history is any guide.)
Then: Goodbye C! Goodbye dependencies I don't understand! Hello, true collaboration.
https://github.com/akkartik/mu/blob/d0d0fdb37/subx/Readme.md
A sort of software-centered usesthis.com.
More details: https://github.com/akkartik/mu/tree/db8a9ab553/subx#a-few-hints-for-debugging
From http://erights.org via https://github.com/darius/squeam