Jun 6, 2020
My text-mode paginator for text files implemented all the way up from machine code now supports a tiny subset of Markdown syntax.

Screenshot showing some rendered markdown side-by-side next to its source text

Mu's Readme as rendered by Mu's browser

The code is terribly ugly, and there are zero tests. But it did help flush out three bugs in Mu. Next steps:

  • Build out the compiler checks I missed the most.
  • Implement a fake screen and keyboard so I can write tests for this app.
  • Throw the app away and redo it right.

(Background. Repo.)

permalink

* *
May 30, 2020
It's amazing how much you can do layout-wise with just plain text. Pictured in this toot:

Alice in Wonderland by Lewis Carroll

Poems by e e cummings (https://en.wikipedia.org/wiki/E._E._Cummings)

permalink

* *
May 30, 2020
A new day, a new app

A text-mode paginator for text files. Think `more`, but no ncurses, no termbox, no libc, just Linux syscalls.

2-minute demo video:
https://archive.org/details/akkartik-2min-2020-05-29

App sources

Repo

permalink

* *
May 28, 2020
I'm starting to build some simple apps in Mu, my memory-safe language that translates 1:1 to machine code.

Today I built a program to print a file to screen:
http://akkartik.github.io/mu/html/linux/apps/print-file.mu.html

Experience report

Also:

All in all, this language isn't ready for others yet. I'm constantly inspecting the code generated by the translator.

permalink

* *
May 23, 2020
Tired: a chicken is just an egg's way of making another egg.

Wired: the Game of Life is just a glider's way of getting around.

Inspired: the rules of Conway's Game of Life are just the square root of a glider's way to achieve a 90°-rotation-then-flip.

permalink

* *
May 23, 2020
I'm back from a death march.

Mu is a safe language built in machine code, translating almost 1:1 to machine code. A key check is for use-after-free errors, using a second address type ("Bicycles for the mind have to be see-through", section 4.4)

I spent the last 2 months switching all of Mu's implementation to this scheme. It was a tough time. But now I know it works (with 10-15% slowdown), and Mu functions calling low-level libraries should behave unsurprisingly.

https://github.com/akkartik/mu

permalink

* *
Apr 20, 2020
Mu: the movie

https://archive.org/details/akkartik-2min-2020-04-20 (2 mins)

permalink

* *
Apr 19, 2020
I went through an intensive Forth phase a couple of years ago before embarking on SubX, but somehow missed this Chuck Moore talk at Strange Loop:

https://www.infoq.com/presentations/power-144-chip

I watched it today at 1.5x, and it still took me 2 hours to watch. I had to pause every couple of seconds to digest what I'd just heard. Fascinating.

Forth chips focus on power, and therefore tiny memories. It's a powerful justification for remaining in the nostalgic console aesthetic of the 80s.

permalink

* *
Apr 13, 2020
Yak shave of the day

My editor shows signs on the margins to indicate changes since last commit. I wanted it to show diffs from an arbitrary commit.

This feature request had been understandably refused a year ago: https://github.com/mhinz/vim-signify/issues/232

So I fixed it for myself, in 3 easy steps:

  1. Find a simpler version: 1650 => 900 lines.
  2. Delete even more code: -600 lines.
  3. Add the feature: +2 lines.

The final result only works for me. I believe we should share raw VimScript, not packages.

permalink

* *
Mar 23, 2020
The Mu compiler summarized in one page

Screenshot of part of mu_instructions.html

More details

Repo

(Brief update since there isn't much to report: I'm working on safe heap allocations as described in the paper. But it's slow going because of life and the need to unwind some past decisions.)

permalink

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