Rek & Devine
Go slow and fix things
From Hundred Rabbits to ~rabbits/uxn
Hey Wim, Thank you so much for the ideas, I've made lots of changes based on your suggestions, here's some of these changes, I hope it makes it easier for students to grasp. --- After the first example it might be good to add an example of the stack annotation: > #01 DUP ADD #03 MUL program ------------------- > 01 01 02 02 06 stack
From Hundred Rabbits to ~rabbits/uxn
Hey Felix, Thanks for the all excellent ideas, I've tried to add correction to each one, here's some of the changes I've made: --- The very first line of the very first example already uses the relative padding and structure definition idiom - I wonder whether it would be easier to keep the first example simpler by using plain "#" literals instead. > I've had feedback about the examples pulling both direction, some have said the example is too simple, others that it is too easy, so I've
From Hundred Rabbits to ~rabbits/uxn
Since some of the emails bounce because they include HTML, I'll repost them. This one is from Snufkin: -------------- Thank you very much for improving the documentation! Suggestions: 1. I think that all the example snippets should be self contained, for example the fib example should be something that can be cut and pasted as a unity: #0007 fib ( 000d )
From Hundred Rabbits to ~rabbits/uxn
Hi! Felix has mentioned that the current docs are not complete or exhaustive enough, and I'd like to improve that. GOAL: A structured description of each language feature. Right now, the docs is this page(and sub pages): https://wiki.xxiivv.com/site/uxntal It's already pretty long and does not include the opcode reference, which is on its own page. The way I structured it was to work from the Hello World example at the top, followed by a table of all the runes
From Hundred Rabbits to ~rabbits/uxn
I didn't write a specification for macros, only implemented a sketch so someone(hey Alex!) could try it out, as it is something they thought they needed for their project. But in the end, I wasn't super happy with the complexity it added to the assembler, and ultimately, after a bit of code review, macros were not the right tool to do what the person asking for macro variables wanted to do. It's less about making uxntal powerful, and more about helping folks who write software in it find a way to do what they want to do, in a fun way. What would a formal or semi-formal specification look like? I've looked up language specs and what turns up is all pretty complicated academic-looking things that there is no way in hell I would be able to write.
From Hundred Rabbits to ~rabbits/uxn
The idea is that when a macro name doesn't include a star, there's no matching happening, but the macro definition order becomes very important, and after spending a whole day playing with this, I'm starting to worry that this might lead to more errors than it solves. I got tripped by macros overwriting others defined later, it will "fail" quietly, if a macro name is made of of another macro with a wildcard. I can raise a warning when defining a macro that would automatically be ignored from being caught by another macro, but even the barest implementation of this system, is teetering on implementation complexity beyond what I was hoping from at the start. The uxnrepl has an implementation of the system that works, so you can poke at it and see what it feels like for these various cases. It might
From Hundred Rabbits to ~rabbits/uxn
Hey everyone! A topic that has been coming up a lot lately is how to pass a variable through a macro. After a bit of chatting with folks interested, we've come up with something that affords just enough to pass a single variable, and allow for representing literal immediate runes internally entirely in macros. The idea is to allow something like a wildcard in macro names: %add2-to-* { #0002 ;* ADD2 } Would match any keyword that begins with "add-", and allow to inject that name anywhere in the macro where "*" is found, so:
From Hundred Rabbits to ~rabbits/horadric
After a few more hours puzzling on this, I found a fewer rules that can resolve to fac(5), in 10 rules, if I keep the boundary as a rule, it's even smaller, I've tried to start off from a more standard input like: fib n^5, but I haven't been able to cut it down shorter than 11 rules yet. :: mul n^5 > :: mul z i > mul x i :: mul i > mul :: mul x y > mul y z res :: mul y > mul i n :: mul x > mul :: mul > fac :: fac res > fac x :: fac n > fac y
From Hundred Rabbits to ~rabbits/horadric
I was trying to find an implementation of factorial in Fractran and I couldn't find one, so I went ahead and implemented it. I feel like it might be possible to optimize it further, but I'm running out of ideas. 429/1001, 13/143, 910/195, 143/65, 13/39, 437/221, 57/38, 665/437, 29/19, 667/203, 13/29, 4485/527 Recipe: :: mul z i > mul x i :: mul i > mul :: mul x y > mul y z res :: mul y > mul i :: mul x > mul
From Hundred Rabbits to ~vdupras/duskos-discuss
Looking forward to reading the article! With a title like "Collapse OS, may be our only salvation" I can already imagine the eye-rolls. I hope the rest of the article is not too preachy, haha. The timing is good, Americans(and those who rely on tech centralized in America) are beginning to taste the ending of an age. Dll On 2025-03-24 06:37, Rett Berg wrote: > Looks like it's coming March 26 and is titled "The best programming > language for the end of the world" -- "Once the grid goes down an old > programming language called Forth -- and a new operating system called > Collapse OS -- may be our only salvation"