Posts by akkartik@mastodon.social
(DIR) Post #9vFzricHHF669pTdBI by akkartik@mastodon.social
2020-05-21T01:40:51Z
0 likes, 0 repeats
@nina I discovered another thing we share besides a love of bicycles: a dislike of copyright.https://blog.ninapaley.com/2010/11/06/driving-without-a-licenseCompare https://github.com/akkartik/mu/issues/6I hadn't realized this, but apparently there's dozens of us!https://en.wikipedia.org/wiki/License-free_software
(DIR) Post #9vMHB2hZgjlW7fVwem by akkartik@mastodon.social
2020-05-24T02:56:23Z
0 likes, 0 repeats
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.
(DIR) Post #9vWxIXqgQFC2PDdMi8 by akkartik@mastodon.social
2020-03-12T08:30:11Z
0 likes, 0 repeats
*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: http://akkartik.github.io/mu/html/apps/ex3.2.mu.html(More details: http://akkartik.name/post/mu-2019-2. Repo: https://github.com/akkartik/mu)
(DIR) Post #9vWxIYFqufKHfHPSwS by akkartik@mastodon.social
2020-03-24T04:05:42Z
0 likes, 0 repeats
The Mu compiler summarized in one page: http://akkartik.github.io/mu/html/mu_instructions.htmlMore details: http://akkartik.name/akkartik-convivial-20200315.pdfRepo: https://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.)
(DIR) Post #9vWxIYRYDAgSFYsoAy by akkartik@mastodon.social
2020-05-23T07:51:20Z
0 likes, 0 repeats
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 (http://akkartik.name/akkartik-convivial-20200515.pdf, section 4.4)I spent the last 2 months switching all of Mu's implementation to this scheme. It was a tough time: https://lobste.rs/s/vcx5vu/what_are_you_working_on_this_week#c_pm4guj. 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
(DIR) Post #9vWxIYjz6dQfAjVWuO by akkartik@mastodon.social
2020-05-29T06:09:26Z
0 likes, 1 repeats
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/apps/print-file.mu.htmlExperience report: https://github.com/akkartik/mu/commit/b22fa8afd8Also:- I fixed a bug in the process: https://github.com/akkartik/mu/commit/583a966d3e#diff-938a2cc4d3707f088f06fabfc140a9c6- I wished I already had clobbered-variable warnings.- I wished I had type checks.All in all, this language isn't ready for others yet. I'm constantly inspecting the code generated by the translator.
(DIR) Post #9vanV12c97WtWyYExE by akkartik@mastodon.social
2020-05-30T08:04:01Z
0 likes, 0 repeats
A new day, a new appA 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-29App sources: http://akkartik.github.io/mu/html/apps/browse.mu.htmlRepo: https://github.com/akkartik/mu
(DIR) Post #9vanV1R4gB5ykpzm52 by akkartik@mastodon.social
2020-05-31T01:25:18Z
0 likes, 1 repeats
It's amazing how much you can do layout-wise with just plain text. Pictured in this toot:Alice in Wonderland by Lewis CarrollPoems by e e cummings (https://en.wikipedia.org/wiki/E._E._Cummings)
(DIR) Post #9vxhVZdPz95wxwl6jw by akkartik@mastodon.social
2020-06-11T04:17:41Z
0 likes, 0 repeats
@kragen You got me to respond as well:https://news.ycombinator.com/item?id=23481720#23485141
(DIR) Post #9wKIxgbC5xZpQKJhVg by akkartik@mastodon.social
2020-06-06T23:25:44Z
0 likes, 0 repeats
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: http://akkartik.name/akkartik-convivial-20200606.pdf. Repo: https://github.com/akkartik/mu)
(DIR) Post #9wKIxh3CPpyipBQ4A4 by akkartik@mastodon.social
2020-06-07T22:45:56Z
0 likes, 0 repeats
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-07cc @s_ol
(DIR) Post #9wKIxj2uzqwT0tIs08 by akkartik@mastodon.social
2020-06-16T07:31:51Z
0 likes, 0 repeats
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/apps/arith.mu.html. This app also shows off multiple return values.Read more: https://github.com/akkartik/mucc @s_ol
(DIR) Post #9wKIxjN7mj6a1Yl0Uq by akkartik@mastodon.social
2020-06-18T17:43:52Z
0 likes, 0 repeats
*Update on the Mu computer's memory-safe language*Mu now checks all function calls.Pass in the wrong type = error.Save a result to the wrong type = error.Save a result to the wrong register = error.There are automated tests for error messages.I estimate this change protects against 60% of the most common mistakes. Checking the most recent variable in a register should provide another 20%. And I hopefully have TODOs for the remainder to gradually whack away.https://github.com/akkartik/mu
(DIR) Post #9wKIxjsJuk3haJLv7Y by akkartik@mastodon.social
2020-06-22T01:34:48Z
0 likes, 0 repeats
*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.https://github.com/akkartik/mu
(DIR) Post #9yfMPsyPMU5fdxnvP6 by akkartik@mastodon.social
2020-08-24T00:04:00Z
0 likes, 0 repeats
@alcinnz I've been debating this at https://lobste.rs/s/tmzyrk/clean_start_for_web
(DIR) Post #9yflSq2PEJxiGJB9ZA by akkartik@mastodon.social
2020-08-30T22:04:18Z
1 likes, 1 repeats
My brain is exploding after playing with https://github.com/nakst/flip. I've been looking for years for a simple pedagogical OS that boils things down to their essence and is yet easy to get running on any computer.I've always had a question in my mind about how to bootstrap the OS. I knew about BIOS but vaguely considered it "cheating" when compared to the "purer" way of working within the processor's ISA. But I'm starting to realize that BIOS is _part of the ISA_.Mu will soon drop Linux. Watch.
(DIR) Post #9z3dK0iV43aV72VpwW by akkartik@mastodon.social
2020-09-11T08:29:49Z
0 likes, 1 repeats
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:http://akkartik.github.io/mu/html/apps/browse/main.mu.html#L81This one is for you, @yrabbit 🙂Old demo: https://archive.org/details/akkartik-2min-2020-05-29Repo: https://github.com/akkartik/mu
(DIR) Post #9z43ZolDsl2ZTNz4wy by akkartik@mastodon.social
2020-09-11T23:26:52Z
0 likes, 0 repeats
@sir My list:- bracketed-paste- camel-case-motion- Fugitive, exclusively for :Gdiff, which in turn is exclusively for "revert this hunk".I can't help feeling Fugitive is a violation of our rule.I used to rely on signify as well, but it has now been 'depackaged': https://mastodon.social/@akkartik/103994830568601931. One day I'll do the same for Fugitive.
(DIR) Post #9z6q9pcXLYMEgH503U by akkartik@mastodon.social
2020-09-13T04:27:59Z
0 likes, 0 repeats
@reto This is an old debate that doesn't bear rehashing. Certainly there's room for both sides. Vim and IDEs are both good. But *trying to turn Vim into an IDE* is not as good as either. You lose the snappy responsiveness of Vim and the seamless UX of IDEs. And too many plugins destabilize Vim.Also, one correction: nobody uses grep to jump to definitions. We Unix hands use crags, which Vim integrates with out of the box.@sir
(DIR) Post #9zEhqyAq4ov1KzIZOa by akkartik@mastodon.social
2020-09-16T22:01:55Z
0 likes, 1 repeats
Nice summary of the small web by @soapdog: https://twitter.com/soapdog/status/1306187476969705473One implication: in the vein of being the change you want to see in the world, all us 'enlightened' folks need to play with a lot more bespoke browsers and user agents and protocols. It's the only way to carve out an oasis in the desert of monopolies and winner-takes-all.I recently replaced the link to my email everywhere on my website with one to this 'contact' page: http://akkartik.name/contact