21 Followers
27 Following
52 Posts

(🔊) Made a little harness to livecode vscode extensions.

Here I change the extension (local to the project) to treat notes in parens as a chord.

No more compile, close, re-open workflow. And that's assuming you've created the extension to begin with. I often make one-off short-lived things and having to manage an extension is annoying.

Now I can just have a .vscode-sandbox.js in each project and make useful little one-off things.

I made a game for GMTK with the goal of making a game that I would spend longer playing than building it. Here's my first 1M point run. (you'll notice there are still visual bugs to fix!)

You can play it here: https://sqrz.app

Sound on! 🔊

"Code lenses" in the space of live programming feel very relevant.

Lide (live language) dev log 6

Decided to spend some time on async - very rudimentary, but can call multiple functions at a time without blocking.

There are some experiments I want to perform where this behavior will be needed.

Plenty more attention deserved here.

Live language devlog 5 (working name "lide")

I've also been working on graceful error handling, runtime seamlessly continuing even when there are syntax errors. Here's a demonstration.

Also been investigating state management a lot and hoping to give a fun update about it soon.

Edit: And after posting this I see a bug where somehow it parsed the text draw improperly when the circle draw call was not closed- I'll need to investigate!

Live language dev log 4

Spent a bunch of time figuring out how to go about doing rust bindings / native functionality / live evaluation when there's an event loop involved! I'm effectively handing it off.

Here's the result! Both native window update and graphics updates.

Bonus also other lsp stuff, like references. And I put a bit of effort into improving syntax highlighting

Live language dev log 3:

New Feature: Tail-call optimization (yes i bet every language you use has it) fun to see it live. Also makes it obvious that memoization would help - so many repeated values!

Did a large refactor around using arenas and interning strings to reduce cloning, and now lock-free (had a lot of contention).

I have a cranelift JIT harness setup and plan to start migrating over from tree-walker soon, but a fair amount of work remaining here.

Live language devlog 2

The "once" keyword before any expression enables state preservation across changes. It can be arbitrarily nested and is based on the hash of the expression. So if you change the expression, it'll "reinitialize".

Notice the lines show the last evaluated value, while variables show their current value. So the lines that initialize "a" and "b" fields in the "state" variable are never re-evaluated during this video.

Some progress on the live language I'm working on. Lots of little issues that need to be fixed, and all kinds of missing features- but fun seeing it start to be a thing.