@akkartik mhmm, it depends, I'd say time? But uxn just waits if a frame takes longer than expect so it's not really noticeable.

This week, people revealed in the mailing list that they were using fancy stashing techniques to spread logic over multiple frames, I realized that I was using the update vector for almost everything, and maybe I shouldn't do.. that-

I haven't written an application that was larger than 20kb yet, so not space.

@neauoire Do you use any dynamic memory? Like, lines.love is 40KB, but it usually allocates a few tens of MB.

With LÖVE I've been finding that CPU is plentiful -- as long as I don't use too much memory, overloading the GC.

@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 @akkartik AFAIK uxn is fully non-GC, but that's also because it is fully programmer-managed memory anyway out of that static 64KB block.

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")

@klardotsh @neauoire I think uxn not only doesn't have a GC, it has no heap allocation of any kind. There's no equivalent of Forth's ALLOCATE. Which means that if you limit the stack and load a small program, most of the 64KB can't ever be used.

(Which is totally fine! Great, even!)

@akkartik @klardotsh we tend do that sort of stuff in program-space instead of it being part of the assembler I think.

@neauoire @klardotsh Yeah, all heap allocation whether malloc or ALLOCATE has to happen at runtime. It doesn't matter what the source language is.

Follow

@neauoire @akkartik @klardotsh if we REALLY want to be pedantic, UXN is garbage collected in that the OS gives it a block of memory (which you keep) on VM boot and when you kill the VM the operating system reclaims the memory. Just part of why its so hard to pin down “low level” on modern machines/operating systems.

· · Web · 0 · 0 · 1
Sign in to participate in the conversation
Merveilles

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.