@akkartik I'm not sure what dynamic memory means, for example, drawing a line segment is a 40 some bytes routine, and I use 5 shorts of memory to keep stuff in memory while the routine happens:
@neauoire It's the equivalent of malloc in C or ALLOCATE in Forth. It's different from the stack in that you don't have rigid constraints on the order in which things are reclaimed.
I'm going over the Uxn opcodes now. I'm pretty sure you must have it for at least some esoteric purposes..
@akkartik And the 64kb+3 pages of ram: https://git.sr.ht/~rabbits/uxn11/tree/main/item/src/uxn11.c#L235
@akkartik I have LOVE installed on the pinebook, but anything remotely "animated" slows down to a crawl.
@neauoire I've been thinking about this thread today. As I've been spending more time in my note-taking app, my computer has been heating up. I'll probably soon need to dig into the memory footprint of pensive.love. Which makes me wonder what life is like in a parallel universe where I accepted the 16-bit restriction and went with Uxn.
@akkartik I'd prefer to see you build a 16-bit version of Mu based on your own vision of a dream cpu.
@neauoire I still miss Mu but nah, I'm done building things to build things for a while. Now I just want to build things.
@akkartik I totally understand.
Scoping uxn to be a year long project turned out to be a good idea, I haven't actually worked on uxn itself since last winter, and it paid itself over many times since in how it allowed me to actually get things done thereafter.
Well, in any case, if you're ever tired of your fancyful 32 bits, I'd be happy to help you figure out how to twist uxntal into fun hings.
Your chart is ready, and can be found here:
Things may have changed since I started compiling that, and some things may have been inaccessible.
In particular, the very nature of the fediverse means some toots may never have made it to my instance, in which case I can't see them, and can't include them.
The chart will eventually be deleted, so if you'd like to keep it, make sure you download a copy.
@ColinTheMathmo To my infinite regret, I accidentally delete-and-redrafted the wrong post so you can't tell what @neauoire is responding to up top. For future reference, here's the question that started this thread:
"On uxn do you find yourself more frequently running out of time or memory?"
@ColinTheMathmo That was the problem: I deleted the original by mistake. And it already had responses so I couldn't fix the issue.
Maybe just wire up https://merveilles.town/@akkartik/108777935677948998 and deal with a cycle? 😀
@ColinTheMathmo To clarify, I hit delete-and-redraft on the parent of the comment I intended. When I realized my mistake I didn't actually redraft the comment I deleted.
@akkartik I've updated the chart, but not done anything about tying in other toots.
I hope it's useful as it stands, but if I can do anything, don't hesitate to ask.
@akkartik No, I didn't think you were, I just thought I'd mention it in passing because many people see the "SVG" affix and assume it's static.
@akkartik I've been seeing the words garbage collection flying around all day on here, and I went to look it up and I don't understand what they mean.
Is uxn garbage collected?
@neauoire Likely not. It wouldn't work well with 64KB, and 64KB likely won't need it. Forth isn't GC'd.
@akkartik Is C garbage collected? Is garbage collection like, automatic freeing of memory when it hasn't been using for a while or something?
@neauoire Yeah exactly. C isn't, because you have to free() anything you malloc() when you don't need it. (And if you pick the wrong time to do it you can have strange bugs. A lot of Rust's goal is to avoid those strange bugs without runtime overhead. Mu avoided them with some runtime overhead.)
also i love the idea of someone building out a whole little virtual machine platform and never having learned what garbage collection is because they never needed it. <3
@technomancy Yeah, 20% in fairly pessimistic microbenchmarks, though I'm sure you could create worse ones.
@akkartik @technomancy @alderwick you put it's label anywhere in your program https://git.sr.ht/~rabbits/uxn/tree/main/item/projects/software/asma.tal#L46
PBP (and almost all ARM Linux devices except the top-of-line Qualcomm (mobile/desktop) and Ampere (server) chips) is a super-computer relative to the hardware humanity went to the moon with, but relative to the demands of the modern Linux desktop?.... well.... I'm preaching to the choir if I go on much more :)
Wild to think that my first Linux box, a Pentium 4 with 1GB of DDR-400 and an AGP GPU, ran Gentoo happily, incl. OpenOffice + KDE + Firefox.
the rough tl;dr is: in a language like C you call malloc() to get a block of heap ram at some given size, and have to remember to free() that ram later or it'll leak. in a language like, say, Lua, strings just "come into existence" as far as the developer is concerned, and the VM tracks its lifecycle (and calls free() for you when the string "dies")
Revel in the marvels of the universe. We are a collective of forward-thinking individuals who strive to better ourselves and our surroundings through constant creation. We express ourselves through music, art, games, and writing. We also put great value in play. A warm welcome to any like-minded people who feel these ideals resonate with them.