扩展库 / floatEnv

floatEnv

当前线程的浮点环境控制。

调整舍入模式、查询异常标志,并保存或恢复线程局部状态。

API

函数用途
getRounding / setRounding读取或设置四种舍入模式
getFlags / clearFlags / raiseFlags读取或操作五种异常标志
capture / hold保存状态;hold 同时屏蔽陷阱并清除标志
Snapshot.restore仅在创建快照的线程恢复

xlang

import floatEnv
floatEnv.Snapshot saved = floatEnv.capture()
floatEnv.setRounding(floatEnv.RoundingMode.downward)
// 在当前线程使用新的舍入模式
saved.restore()

状态属于 OS 线程,不能把快照带到其他线程恢复。hold() 先持有快照再改变环境;分配失败时保持原舍入模式和异常标志。C 范例可直接使用 xl run release/extlibs/floatEnv/examples/float_env_c.c,与包运行器及 XLang 范例同输出。模块级裸句柄入口不可从导入方访问,已有只编译负例;但 Snapshot(point) 仍受主线私有构造器缺陷阻断。Windows 聚焦门禁通过 C/XLang 分配边界和双语对照;默认门禁的无输出 AOT 核心通过后,公开范例构建因共享 xl6ValueDataSnapshotV1 缺符号失败,不能签收完整边界和发布级。Linux 严格 GCC、ASan/UBSan 与 XLang 门禁已有通过记录。C API 与异常路径注意事项见包内 README。