Live data from Hacker News

Uxn

100r.co

21–30 of 102 posts

Re: Uxn

#21
post #8

Great, although the VM should really migrate to being RISC-V based, now that we finally have a proper standard ISA.

On the inside (guest) or outside (host)? On the host side, yeah if there isn't an RV version you should definitely write one (they do helpfully provide docs explicitly for that purpose). On the guest side, I seriously doubt that it's a good fit; RISC-V is designed for hardware and this is designed for emulation, which makes for different design choices.

Re: Uxn

#22

Noob developer here. From what I understand this can only run on emulators. If I have a system powerful enough to run an emulator why would I want to use this? I understand being able to run this on old consoles. But what about modern computers?

Uxn runs on its own VM, so each emulator emulates this VM, just like every java implementation emulates the JVM, etc. In other words, the emulator isn't designed for any specific physical machine to begin with.

Re: Uxn

#23

Noob developer here. From what I understand this can only run on emulators. If I have a system powerful enough to run an emulator why would I want to use this? I understand being able to run this on old consoles. But what about modern computers?

The idea is that it's a standard and stable runtime environment.

100 years from now we'll still be able to run NES games, but running old windows programs may be nearly impossible. uxn is trying to be like the NES in that regard, but for more general use cases than just games. Write a uxn program once, and it can run anywhere, any time (on any device that can host uxn).

Re: Uxn

#24

Noob developer here. From what I understand this can only run on emulators. If I have a system powerful enough to run an emulator why would I want to use this? I understand being able to run this on old consoles. But what about modern computers?

someone already said but it's an emulator the way java vm or python vm are emulators. they emulate a computer architecture and environment that is uniform across different hardware types.

in the uxn case the different hardware types include small raspberry pis, Nintendo DS, etc. So having the baseline be really simple means knowing the code you've written for uxn will run on all these different hardware types.

You can also build a CPU that runs uxn code directly on hardware (I assume).

if you are a user then the only reason you'd run uxn on modern powerful hardware is if there is an app written for it that you wanted to use. Just like java, or python, or rust.

For a developer, grabbing uxn might be an aesthetic or political choice, like the language, or you want to target low power hardware use cases.

Re: Uxn

#25
post #9

Earlier quoted context omitted.

why that reaction? what impact does one or the other entail?

well, if i wanted to emulate this on some tiny piece of hardware, as one does. Little endian is generally a lot more amenable to emulation, since math of almost all kinds of done LSB-to-MSB

I don't think you can emulate it on a tiny piece of hardware; the smallest full Uxn/Varvara implementation I've seen so far is the GameBoy Advance, which has 384KiB of RAM. On the other hand, you've previously been able to emulate some pretty astonishing things on pretty astonishing hardware.

There are a lot of minor things in Uxn and Varvara that make them hard to emulate efficiently. Extensive use of self-modifying code, memory-mapped I/O, and using a stack instruction set, for example.

I'm interested to hear how you'd redesign Uxn/Varvara to be easy to emulate on some tiny piece of hardware; of everyone in the world, you're probably the best person to answer that question. Little-endian, check. What else?

Re: Uxn

#26
post #8

Great, although the VM should really migrate to being RISC-V based, now that we finally have a proper standard ISA.

On the inside (guest) or outside (host)? On the host side, yeah if there isn't an RV version you should definitely write one (they do helpfully provide docs explicitly for that purpose). On the guest side, I seriously doubt that it's a good fit; RISC-V is designed for hardware and this is designed for emulation, which makes for different design choices.

I actually think Uxn and Varvara are a lot better suited to hardware than to emulation. RISC-V, however, includes a lot of concessions to hardware implementation that just add headaches to code generation and emulation, though not quite to the level of the MuP21.

Re: Uxn

#28
post #4

Related. Others? Tal is the programming language for the Uxn virtual machine (2021) - https://news.ycombinator.com/item?id=39575102 - March 2024 (18 comments) Virtualizing Uxn - https://news.ycombinator.com/item?id=37091091 - Aug 2023 (4 comments) The Uxn Ecosystem - https://news.ycombinator.com/item?id=36734445 - July 2023 (54 comments) The Uxn Ecosystem - https://news.ycombinator.com/item?id=36642390 - July 2023 (2…

I don't want to go to Chel-C - https://news.ycombinator.com/item?id=31705239 - June 2022 (124 comments) is sorta-related, since it's a rebuttal.

Thanks! In addition to looking like a good post, that is a first-class internet pun: https://www.youtube.com/watch?v=XvRQDsH0Yho.

Re: Uxn

#29
post #25
post #9

Earlier quoted context omitted.

well, if i wanted to emulate this on some tiny piece of hardware, as one does. Little endian is generally a lot more amenable to emulation, since math of almost all kinds of done LSB-to-MSB

I don't think you can emulate it on a tiny piece of hardware; the smallest full Uxn/Varvara implementation I've seen so far is the GameBoy Advance, which has 384KiB of RAM. On the other hand, you've previously been able to emulate some pretty astonishing things on pretty astonishing hardware. There are a lot of minor things in Uxn and Varvara that make them hard to emulate efficiently. Extensive use of self-modifying…

LE is all i'd ask for. I bet I could get it to run on an 8008 even without that change, but LE would make it easier to emulate :)

Stack-based actually helps (registers suck up RAM fast). Self-mod does not matter to emulators. It would for a JIT, but that is a separate story.

Post reply on HN