Nice to see my playground trending! All of this is essentially made possible by the blink engine by @jart: https://github.com/jart/blink/
Which is an x86-64-linux emulator written in a few kb of c code.
There is no Backend server, everything runs locally in the browser in a runtime that weights less than a screenshot of the website itself!
To implement it I modified the blink emulator to run as a C library, and compiled it into a Typescript + WASM module that exposes an emulator API. Then I built a regular web app on top of it.
show comments
gcr
Neat site!
This is a level lower than https://godbolt.org/ (the "Compiler Explorer") -- think of that site as turning C into assembly, and this site as watching the machine code actually run on virtual hardware.
show comments
Razengan
I always wondered/wanted to play with a language that comes between Assembly and C (in terms of power/control, granularity, and also ease of use):
* Be just like Asm in every way, but:
* Have standardized architecture-agnostic mnemonics that translate to CPU-specific ones: like something that stands for both MOV on Intel and LDR on ARM.
* Take care of common boilerplate like function call rituals, or the multiple instructions required for loading 64-bit numbers on ARM.
Basically a real language like the ones in "programming simulation" games.
show comments
201984
Pretty neat idea, but it evaluates the lzcnt instruction incorrectly, so it's possible others are wrong too. If you have access to a real x86_64 processor, you're probably better off just using it, and then you get the power of a full debugger with breakpoints in gdb.
Also, the "Guides" button and the "embed on your website" link on the main page are broken.
show comments
osa1
Is blink an interpreter for x86_64 instructions, or does it compile basic blocks to the host architecture?
I had a look at the source code but I'm not sure how it works. It looks a bit too small (50 kloc C + 6.6 kloc headers) to have code generators for all of the supported host architectures.
show comments
SilentM68
The Guides link does not work. Just stays at the same page.
LarsDu88
Is there a version of this for a simpler ISA like for the 6502 chip, the Gameboy chip, or straight up ARM?
show comments
runetech
Very nice and approachable! Almost makes me want to come back to assembly again ;-)
FilosofumRex
Is there GPU assembly (PTX) version available anywhere?
show comments
disqard
Very cool project! Thank You For Making And Sharing :)
Nice to see my playground trending! All of this is essentially made possible by the blink engine by @jart: https://github.com/jart/blink/ Which is an x86-64-linux emulator written in a few kb of c code.
There is no Backend server, everything runs locally in the browser in a runtime that weights less than a screenshot of the website itself!
To implement it I modified the blink emulator to run as a C library, and compiled it into a Typescript + WASM module that exposes an emulator API. Then I built a regular web app on top of it.
Neat site!
This is a level lower than https://godbolt.org/ (the "Compiler Explorer") -- think of that site as turning C into assembly, and this site as watching the machine code actually run on virtual hardware.
I always wondered/wanted to play with a language that comes between Assembly and C (in terms of power/control, granularity, and also ease of use):
* Be just like Asm in every way, but:
* Have standardized architecture-agnostic mnemonics that translate to CPU-specific ones: like something that stands for both MOV on Intel and LDR on ARM.
* Take care of common boilerplate like function call rituals, or the multiple instructions required for loading 64-bit numbers on ARM.
Basically a real language like the ones in "programming simulation" games.
Pretty neat idea, but it evaluates the lzcnt instruction incorrectly, so it's possible others are wrong too. If you have access to a real x86_64 processor, you're probably better off just using it, and then you get the power of a full debugger with breakpoints in gdb.
Also, the "Guides" button and the "embed on your website" link on the main page are broken.
Is blink an interpreter for x86_64 instructions, or does it compile basic blocks to the host architecture?
I had a look at the source code but I'm not sure how it works. It looks a bit too small (50 kloc C + 6.6 kloc headers) to have code generators for all of the supported host architectures.
The Guides link does not work. Just stays at the same page.
Is there a version of this for a simpler ISA like for the 6502 chip, the Gameboy chip, or straight up ARM?
Very nice and approachable! Almost makes me want to come back to assembly again ;-)
Is there GPU assembly (PTX) version available anywhere?
Very cool project! Thank You For Making And Sharing :)
A very good site and lots of good comments
got "wut" for trying to call popcnt, oh well.