Skip to content

[Native Image] Aux Cache effectively unusable #10790

Closed
@sgammon

Description

@sgammon

Describe the Issue

I have tried to use the Auxiliary Engine Cache with JavaScript and Python, and with preinitialization enabled, but I've run into a conflict with option policy:

(1) Many options in Truffle engines are still considered experimental
(2) Aux caching itself is considered experimental
(3) But, preinitialized contexts automatically and unconditionally disable experimental options

This results in a condition where, if aux caching is enabled, many other features in Truffle engines cannot be enabled, including critical features like CJS/ESM support for JavaScript.

If the user opts in to experimental options, no stability guarantee is possible anyway, so pre-initialized contexts should respect the user's decision and allow experimental options (if indicated by the user).

Using the latest version of GraalVM can resolve many issues.

GraalVM Version

java version "23.0.2" 2025-01-21
Java(TM) SE Runtime Environment Oracle GraalVM 23.0.2+7.1 (build 23.0.2+7-jvmci-b01)
Java HotSpot(TM) 64-Bit Server VM Oracle GraalVM 23.0.2+7.1 (build 23.0.2+7-jvmci-b01, mixed mode, sharing)

Operating System and Version

Linux 5.15.167.4-microsoft-standard-WSL2 #1 SMP Tue Nov 5 00:21:55 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux

Troubleshooting Confirmation

Run Command

(N/A)

Expected Behavior

I expect pre-initialized contexts and contexts cached through the Aux Engine to respect build-time flags and allowances of experimental options.

Actual Behavior

Preinitialized contexts unconditionally forbid experimental options.

Steps to Reproduce

  1. Activate Aux Cache
  2. Use Truffle engines with experimental features

Additional Context

No response

Run-Time Log Output and Error Messages

No response

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions