oracle/graal · error · ValueError

Unhandled Renaissance version for native-image benchmark fil

Error message

Unhandled Renaissance version for native-image benchmark filtering: {version}

What it means

Renaissance suite filtering for native-image keeps an explicit per-version removal list of benchmarks that cannot be native-image-generated. A version outside the known set (0.14.1, 0.15.0, 0.16.0, 0.16.1) reaches the trailing raise because no filter list is defined for it.

Source

Thrown at sdk/mx.sdk/mx_sdk_benchmark.py:4136

                del benchmarks["dec-tree"]
                del benchmarks["log-regression"]
                del benchmarks["naive-bayes"]
            return benchmarks

        if version in ["0.16.0", "0.16.1"]:
            del benchmarks["page-rank"]
            del benchmarks["neo4j-analytics"]
            del benchmarks["naive-bayes"]
            del benchmarks["movie-lens"]
            del benchmarks["log-regression"]
            del benchmarks["gauss-mix"]
            del benchmarks["dec-tree"]
            del benchmarks["db-shootout"]
            del benchmarks["chi-square"]
            del benchmarks["als"]
            return benchmarks

        raise ValueError(f"Unhandled Renaissance version for native-image benchmark filtering: {version}")

    def completeBenchmarkList(self, bmSuiteArgs):
        return sorted(bench for bench in _renaissanceConfig)

    def defaultSuiteVersion(self):
        return self.availableSuiteVersions()[-1]

    def availableSuiteVersions(self):
        return ["0.14.1", "0.15.0", "0.16.0", "0.16.1"]

    def renaissancePath(self):
        lib = mx.library(self.renaissanceLibraryName())
        if lib:
            return lib.get_path(True)
        return None

    def postprocessRunArgs(self, benchname, runArgs):
        parser = argparse.ArgumentParser(add_help=False)

View on GitHub (pinned to a66e9ccd1d)

Solutions

  1. Use one of the supported versions: --suite-version=0.16.1 (or another of 0.14.1/0.15.0/0.16.0).
  2. If you maintain the suite, add a branch for the new version listing benchmarks to exclude from native-image runs.
  3. Verify the version string matches exactly (no 'v' prefix, no trailing whitespace).

Example fix

# before
mx benchmark renaissance:... -- --native-image --suite-version=0.17.0   # -> ValueError

# after
mx benchmark renaissance:... -- --native-image --suite-version=0.16.1
Defensive patterns

Strategy: validation

Validate before calling

supported = {"0.14.1", "0.15.0", "0.16.0", "0.16.1"}
assert version in supported, (
    f"Renaissance native-image filtering unhandled for {version}; "
    f"use one of {sorted(supported)} or extend the filter table.")

Prevention

When it happens

Trigger: Running Renaissance native-image benchmarks with --suite-version=<newer version> (e.g. a freshly released Renaissance) that the suite has not been taught about.

Common situations: A new Renaissance release is added to suite.py libraries but the filtering table is not extended; users overriding the version on the command line.

Related errors


AI-assisted analysis of oracle/graal@a66e9ccd1d (2026-08-14). Data as JSON: /api/errors/c1220c5d3aba70b0. Report an issue: GitHub.