2025-08-29 03:28:42 +09:00
|
|
|
// JIT HostCall PoC: math.* with native f64
|
|
|
|
|
// Run:
|
|
|
|
|
// NYASH_JIT_EXEC=1 NYASH_JIT_THRESHOLD=1 NYASH_JIT_HOSTCALL=1 \
|
|
|
|
|
// NYASH_JIT_EVENTS=1 NYASH_JIT_NATIVE_F64=1 \
|
2025-11-06 15:41:52 +09:00
|
|
|
// ./target/release/nyash --backend vm examples/jit_math_native_f64.hako
|
2025-08-29 03:28:42 +09:00
|
|
|
|
|
|
|
|
box Runner {
|
|
|
|
|
birth() {
|
|
|
|
|
// no-op constructor
|
|
|
|
|
}
|
|
|
|
|
calc_sin(x) {
|
|
|
|
|
local m
|
|
|
|
|
m = new MathBox()
|
|
|
|
|
return m.sin(x)
|
|
|
|
|
}
|
|
|
|
|
calc_min(a, b) {
|
|
|
|
|
local m
|
|
|
|
|
m = new MathBox()
|
|
|
|
|
return m.min(a, b)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static box Main {
|
|
|
|
|
main() {
|
|
|
|
|
local r, m, pi2
|
|
|
|
|
r = new Runner()
|
|
|
|
|
// pi/2 ≒ 1.5707963267948966
|
|
|
|
|
pi2 = 1.5707963267948966
|
|
|
|
|
print(r.calc_sin(pi2))
|
|
|
|
|
print(r.calc_min(3.0, 5.0))
|
|
|
|
|
return 0
|
|
|
|
|
}
|
|
|
|
|
}
|