feat: 提取 oxide_builtins 独立 crate,泛型化 <H: VmHost>

This commit is contained in:
爱特每羊队
2026-06-25 22:38:23 +08:00
parent ffc0916a6b
commit 2f5d91bd48
72 changed files with 1983 additions and 1595 deletions
+35 -35
View File
@@ -18,41 +18,41 @@ pub fn bind_math(core: &Arc<KernelCore>, session: &KernelSession, global: &mut J
math,
sf,
sh,
("abs", crate::builtins::math::math_abs, 1),
("acos", crate::builtins::math::math_acos, 1),
("asin", crate::builtins::math::math_asin, 1),
("atan", crate::builtins::math::math_atan, 1),
("atan2", crate::builtins::math::math_atan2, 2),
("cbrt", crate::builtins::math::math_cbrt, 1),
("ceil", crate::builtins::math::math_ceil, 1),
("cos", crate::builtins::math::math_cos, 1),
("cosh", crate::builtins::math::math_cosh, 1),
("exp", crate::builtins::math::math_exp, 1),
("floor", crate::builtins::math::math_floor, 1),
("hypot", crate::builtins::math::math_hypot, 2),
("imul", crate::builtins::math::math_imul, 2),
("log", crate::builtins::math::math_log, 1),
("log10", crate::builtins::math::math_log10, 1),
("log2", crate::builtins::math::math_log2, 1),
("max", crate::builtins::math::math_max, 2),
("min", crate::builtins::math::math_min, 2),
("pow", crate::builtins::math::math_pow, 2),
("random", crate::builtins::math::math_random, 0),
("round", crate::builtins::math::math_round, 1),
("sign", crate::builtins::math::math_sign, 1),
("sin", crate::builtins::math::math_sin, 1),
("sinh", crate::builtins::math::math_sinh, 1),
("sqrt", crate::builtins::math::math_sqrt, 1),
("tan", crate::builtins::math::math_tan, 1),
("tanh", crate::builtins::math::math_tanh, 1),
("trunc", crate::builtins::math::math_trunc, 1),
("acosh", crate::builtins::math::math_acosh, 1),
("asinh", crate::builtins::math::math_asinh, 1),
("atanh", crate::builtins::math::math_atanh, 1),
("clz32", crate::builtins::math::math_clz32, 1),
("expm1", crate::builtins::math::math_expm1, 1),
("fround", crate::builtins::math::math_fround, 1),
("log1p", crate::builtins::math::math_log1p, 1),
("abs", oxide_builtins::math::math_abs::<crate::vm::Vm>, 1),
("acos", oxide_builtins::math::math_acos::<crate::vm::Vm>, 1),
("asin", oxide_builtins::math::math_asin::<crate::vm::Vm>, 1),
("atan", oxide_builtins::math::math_atan::<crate::vm::Vm>, 1),
("atan2", oxide_builtins::math::math_atan2::<crate::vm::Vm>, 2),
("cbrt", oxide_builtins::math::math_cbrt::<crate::vm::Vm>, 1),
("ceil", oxide_builtins::math::math_ceil::<crate::vm::Vm>, 1),
("cos", oxide_builtins::math::math_cos::<crate::vm::Vm>, 1),
("cosh", oxide_builtins::math::math_cosh::<crate::vm::Vm>, 1),
("exp", oxide_builtins::math::math_exp::<crate::vm::Vm>, 1),
("floor", oxide_builtins::math::math_floor::<crate::vm::Vm>, 1),
("hypot", oxide_builtins::math::math_hypot::<crate::vm::Vm>, 2),
("imul", oxide_builtins::math::math_imul::<crate::vm::Vm>, 2),
("log", oxide_builtins::math::math_log::<crate::vm::Vm>, 1),
("log10", oxide_builtins::math::math_log10::<crate::vm::Vm>, 1),
("log2", oxide_builtins::math::math_log2::<crate::vm::Vm>, 1),
("max", oxide_builtins::math::math_max::<crate::vm::Vm>, 2),
("min", oxide_builtins::math::math_min::<crate::vm::Vm>, 2),
("pow", oxide_builtins::math::math_pow::<crate::vm::Vm>, 2),
("random", oxide_builtins::math::math_random::<crate::vm::Vm>, 0),
("round", oxide_builtins::math::math_round::<crate::vm::Vm>, 1),
("sign", oxide_builtins::math::math_sign::<crate::vm::Vm>, 1),
("sin", oxide_builtins::math::math_sin::<crate::vm::Vm>, 1),
("sinh", oxide_builtins::math::math_sinh::<crate::vm::Vm>, 1),
("sqrt", oxide_builtins::math::math_sqrt::<crate::vm::Vm>, 1),
("tan", oxide_builtins::math::math_tan::<crate::vm::Vm>, 1),
("tanh", oxide_builtins::math::math_tanh::<crate::vm::Vm>, 1),
("trunc", oxide_builtins::math::math_trunc::<crate::vm::Vm>, 1),
("acosh", oxide_builtins::math::math_acosh::<crate::vm::Vm>, 1),
("asinh", oxide_builtins::math::math_asinh::<crate::vm::Vm>, 1),
("atanh", oxide_builtins::math::math_atanh::<crate::vm::Vm>, 1),
("clz32", oxide_builtins::math::math_clz32::<crate::vm::Vm>, 1),
("expm1", oxide_builtins::math::math_expm1::<crate::vm::Vm>, 1),
("fround", oxide_builtins::math::math_fround::<crate::vm::Vm>, 1),
("log1p", oxide_builtins::math::math_log1p::<crate::vm::Vm>, 1),
);
for (name, val) in [