Live data from Hacker News

Drawing a circle, point-by-point, without floating point support

yurichev.com

41–42 of 42 posts

Re: Drawing a circle, point-by-point, without floating point support

#41
post #37

Earlier quoted context omitted.

Ah, now I get the confusion. Yeah, most of interpreters probably wouldn't have made the in-memory distinction between small ints and doubles. So the conversion would have to happen back and forth every time a bitwise operator would be applied. Nowadays the semantics if what happens are still the same, but things happen a bit more optimized by usually avoiding the round-trip to double when not necessary.

Isn't there even a formal specification that hot code maintains values or-ed with zero internally as integers? (I think, this had been originally introduced by Mozilla and propagated to other browsers to varying extent. This optimization allowed a significant speed up for things like EMScripten before WASM.)

Yes, asm.js, which by now has been abandoned and superseded by WebAssembly. And while Chrome never really supported asm.js, they added some optimizations that benefitted code written in that style.

I think that may also have been a problem with asm.js. While the code would work as is because it's just JS, you won't get any performance guarantees because the runtime could just do its own thing instead of doing ahead-of-time compilation to optimized code.

Re: Drawing a circle, point-by-point, without floating point support

#42
post #41

Earlier quoted context omitted.

Isn't there even a formal specification that hot code maintains values or-ed with zero internally as integers? (I think, this had been originally introduced by Mozilla and propagated to other browsers to varying extent. This optimization allowed a significant speed up for things like EMScripten before WASM.)

Yes, asm.js, which by now has been abandoned and superseded by WebAssembly. And while Chrome never really supported asm.js, they added some optimizations that benefitted code written in that style. I think that may also have been a problem with asm.js. While the code would work as is because it's just JS, you won't get any performance guarantees because the runtime could just do its own thing instead of doing ahead-o…

ASM is what I was looking for – thank you!
Post reply on HN