cli/testfloat_expr_cli API

cli/testfloat_expr_cli 是 Berkeley TestFloat 向量文件的命令行运行器。它根据选项构建一个 TestFloatSpec,用 frontend/testfloat_expr 解析一个向量文件,针对 bin_float 执行,并打印摘要。通常以 floating-conformance --backend testfloat … 的方式调用它。参见教程和设计页面。

run

run(arguments) 执行一次调用并返回退出码。

pub fn run(Array[String]) -> Int

arguments[0] 是程序名,会被忽略。选项:

选项含义
--function NAMETestFloat 函数,例如 f64_mulAdd(必需)
--rounding NAME舍入模式,默认为 rnear_even
--tininess NAMEafter(默认)或 before
--exactroundToInt 及整数转换的 -exact 变体
--json打印一个 JSON 对象而非文本
--shard-count N、--shard-index I(也接受 = 形式)运行 N 个分片中的第 I 个
PATH恰好一个向量文件(必需)

这些名称由 TestFloatSpec::parse 解释。诸如 --function is required、a TestFloat vector path is required、only one TestFloat vector file is accepted per invocation、unknown option: … 或不支持的名称之类的错误会被打印并返回 2;文件的第一条解析诊断(source:line:1: message)也是如此。

文本输出打印函数、舍入、微小性(tininess)、计数 cases、selected cases、passed cases、failed cases,并为每个失败输出一行 failed ID: MESSAGE。JSON 输出包含键 function、rounding、tininess、exact、totalCases、selectedCases、passedCases、failedCases 和 failedIds。

返回值:用法、规格、文件或解析错误时为 2;有向量失败时为 1;否则为 0。

///|
test "testfloat runner usage errors" {
  inspect(@testfloat_expr_cli.run(["testfloat", "vectors.tv"]), content="2")
  inspect(
    @testfloat_expr_cli.run(["testfloat", "--function", "f64_mul", "--rounding", "rodd", "v.tv"]),
    content="2",
  )
}

完整公共接口

// Generated using `moon info`, DON'T EDIT IT
package "Luna-Flow/floating/cli/testfloat_expr_cli"

// Values
pub fn run(Array[String]) -> Int

// Errors

// Types and methods

// Type aliases

// Traits