( 76543210 fedcba98 -- _____0__ _fe76dcb a9854321 ) sure be doin my head in

probably shouldn't be writing a bit-twiddling optimizer for just 39 bytes of opcode…


#uxn #uxntal

I was asked to send the event a "logo" of the #Uxntal programming language that read well in a small resolution.

The full Uxn mascot looked too busy, I thought about sending one of @rek's turnips that we use in the docs. But it didn't look too good next to the other fancy serious logos(unfortunately Go wasn't on the list to outderp it).

I sent this.
This is the one.

I'm working on a little #Uxntal optimisation algorithm that is fundamentally of little use, it's one of those "I can't help myself" things, but I think it is quite nice:

What it does is, where possible, eliminate stores and loads in an <addr> <store with keep> ... <load> sequence, regardless of the intervening sequence. So it disentangles the stack juggling needed to put the address at the top of the stack for the load from the other operations.

After that is done, I have another algorithm that can eliminate the store/load pairs altogether.

I'll explain more when I actually get it to work.

Programming at work -- which once was my favourite thing in the world -- has really been losing its shimmer for me lately.

It's not just the AI stuff -- it's the containers and tests and the CI and transpiling. It's having way more responsibility and deliverables and expectations. It's the legacy of massive projects that were so fun and interesting to build that are now peoples' full time jobs to use.

But this morning I drew a little pink square on a screen using #uxntal and that gave me little butterflies like the first time I figured out I could negative index arrays in python 1000 years ago.

starting on the noita demake with falling sand :D


#uxn #uxntal #falling-sand
I integrated my `yaku` #Uxntal assembler into my #Fortran to Uxnal compiler, so now I have a "real" compiler, which is not only quite satisfying but also an essential step for what I want to do next.

A while ago I started on a #Uxntal backend for my #Fortran source-to-source compiler.

The ultimate goal is to compile my #Funktal compiler into Uxntal, so that Funktal becomes a Uxn-native language. But that is still some way off.

As a detour, I created the necessary machinery to use Varvara devices in Fortran. It's now in a state that straight ports of `snake` and `bunnymark` work. I'm very happy about that.

#Uxntal has changed a little bit this week, macros can now be called using local scope bindings, think obj.macro_name()

It's a bit hard to explain in non-uxn terms, but it's as if an object's member could point to a macro that will be inlined where it's called. It's a little convenience, but it's comfy as hell, and I can't say I've ever came across this in the wild.

https://lists.sr.ht/~rabbits/uxn/%3C44[email protected]%3E

@hi Ive been studying the #uxn #uxntal yesterday , it is like more user friendly assembly? just for learning purpose? does it have some practical usage, today?