Jun 13, 2019
Status update on self-hosting my new Assembly syntax
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?!
permalink
* *
May 20, 2019
My new Assembly syntax is now 4/5ths bootstrapped in itself. Just one phase left:
https://github.com/akkartik/mu/pull/34
The previous phase took 7 weeks, but what's a factor of 7 between friends 😄
Some LoC stats (total, and excluding comments/tests):
- hex: 1511/144
- pack: 7348/1054
- assort: 1318/284
- dquotes: 2694/497
Similarly, some executable sizes:
- hex: 22KB/3KB
- pack: 37KB/8KB
- assort: 22KB/5KB
- dquotes: 27KB/6KB
https://github.com/akkartik/mu/blob/6f28e4b66/subx/Readme.md
permalink
* *
Apr 26, 2019
I just had
an interesting chat with a contributor to SubX, my bootstrapped Assembly syntax. In response:
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.
permalink
* *
Mar 31, 2019
My new Assembly syntax is making progress towards being self-hosted. It can now create ELF binaries with data, opcodes and immediate/displacement operands. What's left:
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
permalink
* *
Mar 16, 2019
I just wrote up something about the way I tend to program: http://akkartik.name/post/four-repos.
A sort of software-centered usesthis.com.
permalink
* *
Jan 11, 2019
In the 12 days since my last update on
https://github.com/akkartik/mu/tree/db8a9ab553/subx:
- finished 6/10 primitives for completing phase 2 of the compiler. (Once phase 2 is done I'll be able to compile label-free SubX programs to ELF without needing C.) 2.3k lines, almost 2k of them tests or comments.
- a super elegant workflow for debugging SubX programs. SubX doesn't need an interactive debugger; its trace-based debugging support takes 55 LoC.
More details: https://github.com/akkartik/mu/tree/db8a9ab553/subx#a-few-hints-for-debugging
permalink
* *
Jan 3, 2019
"We do not influence the course of events by persuading people that we are right when we make what they regard as radical proposals. Rather, we exert influence by keeping options available when something has to be done at a time of crisis." — Milton Friedman
From http://erights.org via https://github.com/darius/squeam
permalink
* *
Dec 31, 2018
Want to get more regular with my status updates here. In the 7 days since my last on
https://github.com/akkartik/mu/blob/5a68894ca/subx/Readme.md:
Next up: compiling SubX in SubX. Phase 1 is done: translating text hex bytes into binary http://akkartik.github.io/mu/blob/5a68894ca/subx/apps/hex.subx.html. 1700 lines, but sub 200 lines/instructions excluding tests and comments.
Phase 2: packing operand bitfields into bytes.
Phase 3: translating labels. *That* will be interesting, without a hash table for strings.
permalink
* *
Nov 30, 2018
My assembly language hasn't had much syntax highlighting, and I'm playing with a use for all those colors: 4 types of comments!
It took some doing to make them look ok on my 256-color terminal, but also pass the WCAG contrast checker. (They barely do.) Tell me what you think.
What the different colors signify:
https://github.com/akkartik/mu/blob/c6f522007/subx/Readme.md
permalink
* *
Nov 26, 2018
Did you ever try to work through Jack Crenshaw's "Let's build a compiler"? Remember the early point where you add a line of code and "CONGRATULATIONS! You have just written a working compiler!"?
Well, I just ported that one line (and the page of helpers backing it) to my own assembly lang, and it only took me 2 months to do it 😂
In my defense: a) It's *thoroughly* unit-tested asm, and b) I had to rethink the design of a couple of OS syscalls to make them testable.
https://github.com/akkartik/mu/blob/3b6fcde4f/subx/Readme.md
permalink
* *