Another week, another instruction compiling, more refinements of the code-generator: https://mastodon.social/@akkartik/103157776545612964
First baby steps in compiling the Mu memory-safe systems language: empty function; primitive stmt; function call.
Mu’s translator is growing complex. Lots of book-keeping for entering/exiting scopes: https://mastodon.social/@akkartik/103053133325948545
Beginnings of a translator for a memory-safe language: http://akkartik.github.io/mu/html/apps/mu.subx.html. Just empty functions so far.
It’s surprisingly hard to do safe, efficient array initialization: https://www.joshmcguigan.com/blog/array-initialization-rust
I’ve mostly managed to stick to statically allocated arrays so far, but now I need real ASTs. Just leak memory for the first draft.
Now that feedback on the design has died down (https://news.ycombinator.com/item?id=21268252; https://lobste.rs/s/xtxlec), back to hacking.
Mu’s design is taking on a life of its own: http://akkartik.name/post/mu-2019-1
Seems useful to have a set of consistent lexical conventions. # for comments; . for lookup; / for metadata. e.g cat ~.conf.git.core.pager
But sometimes you do want a separation between dirs and files. So maybe the file system has both, but also supports treating files as dirs?
Thinking about https://zge.us.to/dirconf.html; what if cating a directory rendered its contents as a structured file?
After various attempts to grep for Tss and whatnot, current plan is to just try to binary-search writes to protected memory in the kernel.
Where does https://github.com/ozkl/soso first switch to Ring 3? I want to rip it out and just run everything in Ring 0.
An ergonomic syntax for machine code: numbers, metadata, strings, tests, blocks. https://mastodon.social/@akkartik/102825992961303855
@chameleon@super.seekrit.club The link you posted :p https://wiki.waifu.haus
@chameleon@super.seekrit.club Wow, somebody’s reading this! What’s up?! Nice site!
This should take a lot less code than an optimizing C compiler. There’ll be no optimizer, but lots of room for the programmer to optimize.
Next stop: a type- and memory-safe compiled language that can occupy C’s niche. Manual memory management. AND manual register allocation.
But everything takes too damn long with machine code. Enough fun and games. Resume climbing the ladder of abstraction.
It’s taken a year to get here. I want to take a break, do a Lisp interpreter for fun. Just so I can see a computer boot into a Lisp prompt.
But the syntax is nothing more than machine code (with good error messages).
So far I can: create Linux binaries; package them up with a kernel into a bootable image; run it on Qemu or Linode.
about me: I’m building a hobbyist computer. No C (eventually). Lots of tests. Reward curiosity. https://github.com/akkartik/mu#readme
@adiabatic@www.frogorbits.com Thank you for teaching me about Tauthon!
Today I was reminded of it by a long series of steps that began with an invitation from http://tilde.club. Web surfing at its best.
I’ve always loved the idea of twtxt, but had no idea so many people are using it.
I can’t abide Python, so I’m writing these messages using ‘echo’, for now..
Hello world!