Fx8 is fixed-point arithmetic, no? Probably would need one of the engine devs to chime in but I was under the impression that the 8 is for 8 bits of decimal points, and 24 bits are used for the regular integer part.
Ohh, if I’m not mistaken then I guess you are talking about the compilation that happens to the code to result in binary.js so it’s a bunch of state machines and a “performance-killing” trampoline - I think it’s in the continuation-passing style so V8 can’t JIT compile/optimize/inline/etc. it well so it’s “very” slow compared to if it was just regular JS. And for that, I would definitely want the MakeCode team to speak about that instead but my guess it would be very hard to have a “synchronous” function emitted as-is while keeping the rest untouched.
Probably the only real solution is to implement more shims that handle intensive math so it doesn’t need to “bounce around” or something like that. Or compile natively something like @Kikketer’s native builds or implement the pxt64 bytecode interpreter (which I’ve been researching as well…
)