Jun 16, 2020
I spent the last few days implementing a 'byte' type in Mu.
For the most part, Mu is exclusively 32-bit. No long/short nonsense here. However, I do like strings. Eventually even UTF-8 strings. So, minimal byte support. Mostly they behave like 32-bit values. You can't store them on the stack. (Because x86 reasons.)
As a test, I built a little calculator app: http://akkartik.github.io/mu/html/linux/apps/arith.mu.html. This app also shows off multiple return values.
Read more: https://github.com/akkartik/mu
permalink
* *
Jun 7, 2020
Why do programming languages require us to specify what modules we use? I think that stuff is easy to deduce. Even in machine code.
https://archive.org/details/akkartik-2min-2020-06-07
permalink
* *
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.
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 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
* *