{"record":{"id":"c1220c5d3aba70b0","repo":"oracle/graal","slug":"unhandled-renaissance-version-for-native-image-ben","errorCode":null,"errorMessage":"Unhandled Renaissance version for native-image benchmark filtering: {version}","messagePattern":"Unhandled Renaissance version for native-image benchmark filtering: (.+?)","errorType":"exception","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"sdk/mx.sdk/mx_sdk_benchmark.py","lineNumber":4136,"sourceCode":"                del benchmarks[\"dec-tree\"]\n                del benchmarks[\"log-regression\"]\n                del benchmarks[\"naive-bayes\"]\n            return benchmarks\n\n        if version in [\"0.16.0\", \"0.16.1\"]:\n            del benchmarks[\"page-rank\"]\n            del benchmarks[\"neo4j-analytics\"]\n            del benchmarks[\"naive-bayes\"]\n            del benchmarks[\"movie-lens\"]\n            del benchmarks[\"log-regression\"]\n            del benchmarks[\"gauss-mix\"]\n            del benchmarks[\"dec-tree\"]\n            del benchmarks[\"db-shootout\"]\n            del benchmarks[\"chi-square\"]\n            del benchmarks[\"als\"]\n            return benchmarks\n\n        raise ValueError(f\"Unhandled Renaissance version for native-image benchmark filtering: {version}\")\n\n    def completeBenchmarkList(self, bmSuiteArgs):\n        return sorted(bench for bench in _renaissanceConfig)\n\n    def defaultSuiteVersion(self):\n        return self.availableSuiteVersions()[-1]\n\n    def availableSuiteVersions(self):\n        return [\"0.14.1\", \"0.15.0\", \"0.16.0\", \"0.16.1\"]\n\n    def renaissancePath(self):\n        lib = mx.library(self.renaissanceLibraryName())\n        if lib:\n            return lib.get_path(True)\n        return None\n\n    def postprocessRunArgs(self, benchname, runArgs):\n        parser = argparse.ArgumentParser(add_help=False)","sourceCodeStart":4118,"sourceCodeEnd":4154,"githubUrl":"https://github.com/oracle/graal/blob/a66e9ccd1d7bf2552883939aa0788dfd0e294aab/sdk/mx.sdk/mx_sdk_benchmark.py#L4118-L4154","documentation":"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.","triggerScenarios":"Running Renaissance native-image benchmarks with --suite-version=<newer version> (e.g. a freshly released Renaissance) that the suite has not been taught about.","commonSituations":"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.","solutions":["Use one of the supported versions: --suite-version=0.16.1 (or another of 0.14.1/0.15.0/0.16.0).","If you maintain the suite, add a branch for the new version listing benchmarks to exclude from native-image runs.","Verify the version string matches exactly (no 'v' prefix, no trailing whitespace)."],"exampleFix":"# before\nmx benchmark renaissance:... -- --native-image --suite-version=0.17.0   # -> ValueError\n\n# after\nmx benchmark renaissance:... -- --native-image --suite-version=0.16.1","handlingStrategy":"validation","validationCode":"supported = {\"0.14.1\", \"0.15.0\", \"0.16.0\", \"0.16.1\"}\nassert version in supported, (\n    f\"Renaissance native-image filtering unhandled for {version}; \"\n    f\"use one of {sorted(supported)} or extend the filter table.\")","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Pin the Renaissance suite version in benchmark scripts.","When adding a new Renaissance version, add its native-image exclusion list in the same commit.","Validate the version string early (exact match, no prefixes)."],"tags":["graalvm","benchmark","renaissance","native-image","mx"],"backgroundTag":null,"analyzedSha":"a66e9ccd1d7bf2552883939aa0788dfd0e294aab","analyzedAt":"2026-08-14T13:58:47.161Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}