*Update on the Mu computer*

My little prototype is starting to look like a shell: archive.org/details/akkartik-2

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: github.com/akkartik/mu)

Show thread

*Update on Mu*

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.

archive.org/details/akkartik-2

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

Show thread

*Update on Mu*

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.

archive.org/details/akkartik-2

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

Show thread

3 months ago I built a little prototype text-mode browser for a tiny subset of Markdown. Today it's a prototype no longer; it has fairly thorough tests. See how I write tests for the rendering in a language that maps 1:1 to machine code:

akkartik.github.io/mu/html/app

This one is for you, @yrabbit πŸ™‚

Old demo: archive.org/details/akkartik-2

Repo: github.com/akkartik/mu

Show thread

*Update on the Mu computer's memory-safe language*

Mu now checks for most variable accesses if the variable is still live, and it's register hasn't been clobbered by some other variable. The extra-burdensome parts of programming in Mu are hopefully now not very burdensome.

Next up: testable syscalls for screen and keyboard. But I might take a break first. My RSI has been acting up.

github.com/akkartik/mu

Show thread

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

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: akkartik.name/akkartik-convivi. Repo: github.com/akkartik/mu)

Show thread

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 (en.wikipedia.org/wiki/E._E._Cu)

Show thread

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.

The Mu compiler summarized in one page: akkartik.github.io/mu/html/mu_

More details: akkartik.name/akkartik-convivi

Repo: github.com/akkartik/mu

(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.)

Show thread

*Programming in 2D text*

This evening I'm thinking of two ideas I've thought about several times before, but never together.

The first: Arjun Nair's github.com/batman-nair/IRCIS, an esoteric language (art for art's sake) that comes with a cool visualizer. Maybe all languages should.

The second is Dave Ackley's movablefeastmachine.org, a tiled processor for very finely grained distributed computation. Programming it is like playing with a cellular automaton.

*Update on the Mu computer's memory-safe language*

Arrays and product types are now done. Any remaining rough edges are working as intended πŸ˜„ Only hex literals, for example.

What's left? Actually making it safe.

Complexity outlay so far: 16k lines of code, but only 6.5k if you exclude tests. Tests get _very_ repetitive in machine code. Hopefully we won't need another 15k LoC.

Example program: akkartik.github.io/mu/html/app

(More details: akkartik.name/post/mu-2019-2. Repo: github.com/akkartik/mu)

Show thread

OMG, check out this "spiritual fork" of Mu that's designing not just the entire software stack to fit in a single person's head, BUT ALSO THE PROCESSOR.

github.com/grokthis/ucisc/blob

Still super early days. There's a nascent VM at github.com/grokthis/ucisc-ruby. Needless to say, I'll be contributing.

@vertigo @haitch @kragen@nerdculture.de @abecedarius @freakazoid

I'll be in Porto, Portugal on Mar 24 to present a paper on Mu at the Convivial Computing Salon: 2020.programming-conference.or

Hoping for some great conversation and disagreements.

Show thread

A brief timeline of the Mu computing stack

Jul 6, 2014: commit 0, tree-based interpreter for a statement-oriented language (github.com/akkartik/mu)

Jul 19, 2017: commit 3930, start of SubX machine code (akkartik.name/post/mu-2019-1)

Sep 20, 2018: started building SubX in SubX (mastodon.social/@akkartik/1007)

Jul 24, 2019: SubX in SubX done, commit 5461 (mastodon.social/@akkartik/1024)

Oct 2, 2019: started designing the Mu memory-safe language (akkartik.name/post/mu-2019-2)

Oct 29: started akkartik.github.io/mu/html/app

Show thread

I should probably highlight register names. Here's an updated screenshot.

(Yes, in Mu you manually allocate registers. Mu will eventually check your allocation.)

Show thread

*Update on the Mu computer's memory-safe language*

Basic language is done! Here's factorial. (Compare mastodon.social/@akkartik/1027.)

Still todo:
- user-defined types
- type checking and memory-safety

In other words, I'm about a third of the way there πŸ˜‚ More detailed todo list: lobste.rs/s/pv8jpr/what_are_yo

(More details on the Mu project: akkartik.name/post/mu-2019-1. Repo: github.com/akkartik/mu)

Show thread

*Update on the Mu computer's memory-safe language*

Still no type-checking or memory-safety, but we now have local variables.

akkartik.name/post/mu-2019-2
github.com/akkartik/mu

Show thread
Show older
Mastodon

Server run by the main developers of the project 🐘 It is not focused on any particular niche interest - everyone is welcome as long as you follow our code of conduct!