Pinned toot

Researching new ways to write software that make it easier for newcomers to understand rather than for insiders to maintain. Systems that build easy, reward curiosity.

Author of Mu: Using it to teach kids programming 1:1:

. Ethos: ship with all deps, gradually streamline their code for own situation, get ideas for improvements, send patches upstream. Implies: can't have too many deps!

gender theory, unendorsed idle thought Show more

its so sad google+ couldnt afford to run their instance anymore

So, because the existing X terminal emulators are kind of heavyweight, I wrote a new one yesterday and today. It compiles to just under 20 kilobytes, and I can run vi in it, although it needs some work. is the main code, but it also uses admu.c, admu.h, xshmu.c, and xshmu.h. Basically if you want to compile it just git clone the whole directory. It won't work without a 24-bit X server. cc @jason @anthk @brennen @benrob0329 @kelbot @bobstechsite @trashyfins

Spray painted my new bike frame and replaced the regulator and glass on the front passenger door.

It was a good day and I'm quickly recovering from a terrible week.

QOTD: 'For Lovecraft, if all horror can be explained by natural law, then the obvious inference is that natural law is horrific.'

My daughter has started a story and ‘Rebecca’ no longer has the greatest opening lines in literature.

But relying solely on that authority is no way to get buy-in. You don't get fanfics by cracking the whip of authoritah.

So I've been gradually figuring out narratives that help to build consistent rules that 1) get them through the GCE ‘A’ levels, 2) won't harm then too much whether they pursue a STEM degree or not, 3) help them understand the storyverse enough to write their own fanfics.

Tough, but so satisfying.

We also now have the ability to allocate new segments in virtual memory using mmap(). The first new segment I plan on is a 'trace' segment that tests can write to and make assertions on. Automated white-box testing:

Next up, once I have some tracing primitives: a dependency-injected interface for sockets so that we can write automated tests for a fake network.

@haitch @vertigo @kragen

'Modules' in machine code

SubX now supports code in multiple files. Segments with the same name get merged.

One subtlety: later code is *prepended* to earlier code. Gives us executable libraries with overrideable entrypoints.

$ git clone
$ cd mu/subx
$ ./subx translate *.subx -o out
$ ./out # run tests
$ ./subx translate *.subx apps/factorial.subx -o out
$ ./out; echo $?
120 # factorial(5)
$ ./out test # run tests

@haitch @vertigo @kragen

Someone on /r/debian is asking about why there isn't a package for Godot yet

They are literally waiting for Godot

I love it

software gripe Show more

@akkartik Oberon is an awesome source for ideas. I read WIrth's HOPL III paper on it (and Modula-2) this week, which is very nearly the only paper worth reading in the whole proceedings. I have the book but still haven't finished. @vertigo @haitch

devil went down to SF, looking for a soul to steal. he was in a bind because he was way behind, so he was willing to make a deal;
when he came across this young man selling a bad idea and hawking it hot. and the devil jumps up with a rambling TED talk and says, "boy lemme tell you what"

@akkartik @kragen @haitch That's an implementation detail; MS-DOS also had pipelines as of DOS 2.0 and later, but it lacked concurrency and flow control. Behind the scenes, COMMAND.COM handled pipelines using backing temporary files.

@akkartik I'm not sold on anything thsat recommends many different languages to basically treat successive transforms of an essentially equivalent graph. Proofs for every lttle lang seem way overkill to me, when you can reuse good old graph theory on any graph.
Then, that may be just me and my hammer seeing it all as nails. And linguistically oriented overengineering in a mathematical shape may also be somebody else's hammer. Different approaches, but I know which I'd follow.

@vertigo @kragen

I can't tell if I'm simply out of things to say, or not competent enough to say the things I still want to say, or whether there is any difference between the two 🤔

@akkartik You can definitely write a real compiler without a register allocator at all. I haven't written one myself! @haitch @vertigo @freakazoid

@akkartik If you just want enough of a compiler to reduce the code volume of a function call, you can do that with a fairly simple macro system. @vertigo @freakazoid

Show more

Follow friends and discover new ones. Publish anything you want: links, pictures, text, video. This server is run by the main developers of the Mastodon project. Everyone is welcome as long as you follow our code of conduct!