Nov 6, 2020
In the last 3 days I've written 68 tests for error messages in the Mu compiler, adding up to about 4.5k lines of machine code. Utterly tedious, mind-numbing work with lots of copy-pasta. Just what the doctor ordered.

(https://github.com/akkartik/mu)

permalink

* *
Oct 31, 2020
For a couple of years I've been building up a computing stack without metacircularity, where complex languages are consistently implemented in simpler languages.

For several months now I've been wrestling with a thorny problem in one corner of the core compiler which converts a safe language into unsafe machine code. Today I finally decided to stop agonizing over it, and write up the idea maze to the extent I've explored it.

https://github.com/akkartik/mu/issues/45

Comments and suggestions most appreciated! This is a fairly simple compiler as these things go, and I'd be happy to engage with anyone who wants to learn about these beasts in a realistic setting.

permalink

* *
Oct 27, 2020
My little prototype is starting to look like a shell

https://archive.org/details/akkartik-2min-2020-10-27

Promising in some ways, but I'm not sure how to support concurrency. Currently each operation completes before the next. I could allow "pipe stages" to continue to share data after they drop file handles on the stack, but there are problems: how often we refresh, how we kill processes from past refreshes, how we visualize file handle contents.

(More details: https://github.com/akkartik/mu)

permalink

* *
Oct 25, 2020
Beginnings of an experimental fork of Mu for 64-bit x86

Built in collaboration with @tekknolagi.

https://git.sr.ht/~akkartik/mu-x86_64

I'm not sure this is going to work out. Mu's syntax for 32-bit x86 machine code doesn't map cleanly to x86_64, for reasons outlined in the Readme. But the emulator works, and it has a nice regular subset of x86_64 including floating-point instructions. Comments and suggestions most appreciated.

Main project page: https://github.com/akkartik/mu

permalink

* *
Oct 20, 2020
This week in my postfix language and live-updating environment, I worked on a way to start from a raw computation, and extract functions from it as naturally as possible.

https://archive.org/details/akkartik-2min-20201020

(More details: https://github.com/akkartik/mu)

permalink

* *
Oct 11, 2020
My postfix language and its live-updating environment are starting to look promising. The environment can now expand multiple levels of function calls, laying out the state of the stack at each point. You can't edit a function at its call-site, but you can visualize its working in context.

https://archive.org/details/akkartik-2min-2020-10-10

Screenshot showing the history and evolution of a calculation in postfix, with the state of the stack after each step.

(More details: https://github.com/akkartik/mu)

permalink

* *
Oct 3, 2020
Detective story of the day

I've been stress-testing Mu's floating-point instructions for a few days using this ray-tracing tutorial.

It's been great; I've found 2 bugs so far.

Today I thought I found a third, in the floating-point reciprocal instruction.

Except it wasn't really. Read on.

permalink

* *
Oct 1, 2020
I just finished adding floating-point to Mu. Took 4 days. Floating-point is where the ugliness of x86 really becomes apparent.

permalink

* *
Sep 27, 2020
Update on stress-testing Mu

I'm continuing to play with my prototype postfix calculator. Who knows, it may even become Mu's mythical level-3 language[1].

Today's video demonstrates function definitions that look different from concatenative languages, and a visualization for drilling down into function calls. All in an environment that updates as you type, built up from machine code.

https://archive.org/details/akkartik-2min-2020-09-27

(More details: https://github.com/akkartik/mu)

[1] http://akkartik.name/post/mu-2019-1

permalink

* *
Sep 21, 2020
Some tweaks to my text-mode RPN calculator built up from machine code, thanks to lots of helpful comments on the Future of Coding community.

Visualizing the evolution of the stack in a postfix calculator using deterministic but random background colors.

Varying foreground rather than background colors.

An early version highlighting just the top of the stack.

Stress-testing the layout algorithm.

https://github.com/akkartik/mu/tree/main/linux/tile

Project page: https://github.com/akkartik/mu

permalink

* *
archive
projects
writings
videos
subscribe
Mastodon
RSS (?)
twtxt (?)
Station (?)