Rendered at 20:53:31 GMT+0000 (Coordinated Universal Time) with Cloudflare Workers.
bawolff 42 minutes ago [-]
> Dolphin isn’t on iOS, because you can’t do JIT compilation on iOS....Well, Apple has one exception to its JIT restrictions: web browsers. JavaScriptCore, WebKit’s JS engine, uses JIT compilation for its higher-performance tiers. So, if a JS function is called enough times, eventually it’ll be optimised and compiled into native machine code. The same is true for WebAssembly.
I was wondering about the why of the headline, and this is a really interesting answer. Such a beautiful way to get around restrictions. I wonder how applicable it is to other projects.
dag100 5 hours ago [-]
This is an incredible project for an undergraduate. Very impressive.
Interesting to note that Firefox is 25% slower than Chrome/Safari, I wonder why.
tmpz22 5 hours ago [-]
[flagged]
simonw 4 hours ago [-]
I'd hire an undergraduate who can produce this level of work with Claude.
uyyyyyyuyyyy 2 hours ago [-]
[dead]
humpttysidy 2 hours ago [-]
[dead]
koolala 4 hours ago [-]
What are you basing this statement on? The code comments read very human to me. Your the one hurting their chances of finding a job by falsely saying this.
godwinson__4-8 4 hours ago [-]
Every company they apply to will be leveraging LLMs. Time to get over it. No need to be grumpy old man about such things. Every generation has faced such foes. The old always yields to the new.
For the times they are a-changin'
2 hours ago [-]
godwinsonsucks 1 hours ago [-]
[dead]
mikepurvis 2 hours ago [-]
I've always really enjoyed Andrew Kelley's article about trying to statically recompile NES code from 2013 [1]. Basically he makes a ton of progress but gets hung up not just on the realities of the handwritten assembler of the era just not being all that great at mapping to higher level LLVM IR. In the conclusion he specifically calls out a JIT-type methodology as probably being the way to go, where you live-recompile the hot paths when you have the runtime data required to actually understand them, and don't worry about the parts you can't.
Of course it beats a native interpreter. WASM overhead is about 20%, interpreter overhead is about 1000%.
What's cool here is to have a GameBoy JIT runtime at all.
grashalm 3 hours ago [-]
It's two jits in total.
ahartmetz 7 minutes ago [-]
True, but the WASM JIT is pretty low overhead because WASM seems to be a good design for what it needs to do. It's what I was referring to with the 20% overhead figure.
milch 5 hours ago [-]
Very interesting article. Would've been fun to see the comparison between native interpreter & JIT-on-WASM on iOS as well
lightedman 2 hours ago [-]
Still doesn't beat a natively-coded emulator. I got several that run faster on a 166MHz non-MMX Pentium than this emulator does on my Core Ultra i9.
jonny_eh 3 hours ago [-]
So it's a JIT-in-JIT? JiJIT?
bebenebenebeb 5 hours ago [-]
[dead]
iberator 5 hours ago [-]
yet on real old hardware it would be 20x slower in real life.
same as all native javascript junk - its fast, but non usuable on older hardware
qweqwe14 3 hours ago [-]
Here's a nickel kid. Go buy yourself a real computer.
rixed 2 hours ago [-]
How much RAM would a nickel buy me?
switchbak 4 hours ago [-]
Good thing I'm not running games on my 4gb Pentium 4 then.
jonhohle 48 minutes ago [-]
Your code running on other people’s hardware is a privilege. Treat it with respect.
I was wondering about the why of the headline, and this is a really interesting answer. Such a beautiful way to get around restrictions. I wonder how applicable it is to other projects.
For the times they are a-changin'
Very cool to see something like that in action.
[1]: https://andrewkelley.me/post/jamulator.html
What's cool here is to have a GameBoy JIT runtime at all.