Email or username:

Password:

Forgot your password?
Devil Lu Linvega

I often get asked what other systems like Uxn there are out there, so I made a list or relevant small virtual machines and ISAs. Some people think that Pico-8 is its closest neighbor, but it's in fact quite distant:
forum.malleable.systems/t/smal

15 comments
Leonard Ritter

@neauoire not so far away from my UVM, the whole idea. in fact, UVM stands for universal virtual machine, and i have about the same goals.

Devil Lu Linvega

@lritter yeah, I think your UVM comes quite close to maxime chevalier's UVM too in terms of scale.
github.com/maximecb/uvm

Leonard Ritter

@neauoire mine does use libffi and is designed to be compiled - JITness comes through the multi-stage aspects. there's a strong focus on remaining C compatible.

WimⓂ️

@neauoire I've been working (slowly) on compiling Fortran to Uxn, and my conclusion is that the main barrier to do this in a usable way is the lack of support for malloc and free.
This has nothing to do with the number of instructions per se, or the memory size. Of course we can implement this in the machine code, but at a considerable cost in instructions and performance. I feel that a really frugal VM should support dynamic allocation because it allows better use of the memory.

Devil Lu Linvega

@wim_v12e oh yes, for sure, but that's not a uxn thing, that would have to be done as a System/expansion request.
wiki.xxiivv.com/site/varvara.h

WimⓂ️

@neauoire It is a Uxn thing in the sense that, to make it seamless (i.e. allow use of LDA/STA for dynamic memory), it needs VM modifications.

Justin Miller

@neauoire Wonderful resource. I’m looking forward to devouring that thread and then the rest of that site. Thanks!

Capital

@neauoire The Pico-8 comparison always feel like people conflating Uxn with Varvara. A "more accurate" comparison would be Uxn and the Lua VM that Pico-8 embeds.

However, the LVM isn't intended to be targeted directly and it's opcodes are an internal implementation detail that regularly breaks between versions. On the other hand, Uxn is a VM focused on long term stability, reimplantation, and portability.

(And, the same thing can be extended to Varvara and the Pico-8. Additionally, the Pico-8 is a whole IDE whereas Varvara is just the platform specification.)

I'm just kinda rambling to myself, but I get frustrated cause nobody actually compares the Pico-8 and the LVM to Varvara and Uxn. They just superficially (and often dismissively) state a vague similarity at a first glance.

@neauoire The Pico-8 comparison always feel like people conflating Uxn with Varvara. A "more accurate" comparison would be Uxn and the Lua VM that Pico-8 embeds.

However, the LVM isn't intended to be targeted directly and it's opcodes are an internal implementation detail that regularly breaks between versions. On the other hand, Uxn is a VM focused on long term stability, reimplantation, and portability.

Devil Lu Linvega

@capital Would it be alright if I paraphrased this and put it on xxiivv? I feel like you've answered in just a few words, the question really clearly.

DJ-Bauer

@neauoire Funnily enough I'm working also on a small virtual machine, but nothing really to show yet. It is based on the idea of mainly storing all your data on 16 stacks though so I am excited to see what direction this will go into or if it'll just crash into the wall

Devil Lu Linvega

@dbauer sounds fun :) why 16? is it like deep registers?

DJ-Bauer

@neauoire Yes, I wanna have some fun with string manipulation, since for example flipping a string would be very easy.
Also this sounds like a fun way to step into compiler-code generation and how it could be optimized
I literally pulled 16 out of thin air and thought, then I don't have to do much hex-number calculation in my head :P

Hiro Lynx 🐾♫🐧

@neauoire I just wanted to talk a little about the Gigatron TTL microcomputer¹: it has a 8-bit CPU made out of a handful of TTL logic chips, with 17 instructions (see picture). This hardware runs a virtual machine that emulates a 34 instructions CPU² to run the real programs :D It manages to do so and produces a VGA signal and a (very noisy) audio output, and it has a gamepad input too!

I got a kit and built it and I still marvel at it!

²: raw.githubusercontent.com/kerv
¹: gigatron.io/

@neauoire I just wanted to talk a little about the Gigatron TTL microcomputer¹: it has a 8-bit CPU made out of a handful of TTL logic chips, with 17 instructions (see picture). This hardware runs a virtual machine that emulates a 34 instructions CPU² to run the real programs :D It manages to do so and produces a VGA signal and a (very noisy) audio output, and it has a gamepad input too!

Devil Lu Linvega

@Hiro I've seen it before, it's a nice little kit :) Thanks for adding it to the thread, I'm sure others will find it interesting too who come across it.

Go Up