Skip to content

[GR-63009] Added wasm polyglot isolate library. #11903

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Aug 7, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion docs/reference-manual/embedding/embed-languages.md
Original file line number Diff line number Diff line change
Expand Up @@ -758,6 +758,7 @@ Currently, the following languages are available as polyglot isolates:
|-------------------------------|----------------|
| JavaScript (`js-isolate`) | 23.1 |
| Python (`python-isolate`) | 24.1 |
| Wasm (`wasm-isolate`) | 25.0 |

We plan to add support for more languages in future versions.

Expand Down Expand Up @@ -1697,4 +1698,4 @@ public final class CHANGE_NAME_EngineFactory implements ScriptEngineFactory {
}
}
</code></pre>
</details>
</details>
1 change: 1 addition & 0 deletions sdk/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ This changelog summarizes major changes between GraalVM SDK versions. The main f

* GR-65561 Added `Context.Builder#apply`, `ContextBuilder#extendIO`, and `ContextBuilder#extendHostAccess` to enable composable Context configuration
* GR-64947 Added `Engine.storeCache(Path)` to manually store [auxiliary engine caches](https://github.com/oracle/graal/blob/master/truffle/docs/AuxiliaryEngineCachingEnterprise.md) when needed.
* GR-63009: The WebAssembly (Wasm) language is now available as a polyglot isolate.

## Version 24.2.0
* GR-54905 When using Truffle NFI with the Panama backend, native access must now be granted to the Truffle module instead of the NFI Panama module. Use the `--enable-native-access=org.graalvm.truffle` Java command line option to enable the native access for the NFI Panama backend.
Expand Down
4 changes: 2 additions & 2 deletions vm/ci/ci_common/common.jsonnet
Original file line number Diff line number Diff line change
Expand Up @@ -275,8 +275,8 @@ local devkits = graal_common.devkits;
# 2. Ensure the language is either:
# - already included in `ee_suites`, or
# - its suite is listed in `polyglot_isolate_ce_suites`.
local polyglot_isolate_languages = ['js', 'python'],
local polyglot_isolate_ce_suites = ['graal-js', 'graalpython'],
local polyglot_isolate_languages = ['js', 'python', 'wasm'],
local polyglot_isolate_ce_suites = ['graal-js', 'graalpython', 'wasm'],
local polyglot_isolate_mx_args = std.flattenArrays([['--suite', s] for s in polyglot_isolate_ce_suites]),

legacy_mx_args:: [], # `['--force-bash-launcher=true', '--skip-libraries=true']` have been replaced by arguments from `vm.maven_deploy_base_functions.mx_args(os, arch)`
Expand Down
8 changes: 8 additions & 0 deletions wasm/mx.wasm/mx_wasm.py
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,14 @@ class GraalWasmDefaultTags:
wasmbenchtest = "wasmbenchtest"
coverage = "coverage"

def mx_register_dynamic_suite_constituents(register_project, register_distribution):
if register_project and register_distribution:
isolate_build_options = []
meta_pom = [p for p in _suite.dists if p.name == 'WASM_POM'][0]
mx_truffle.register_polyglot_isolate_distributions(_suite, register_project, register_distribution,'wasm',
'src', meta_pom.name, meta_pom.maven_group_id(), meta_pom.theLicense,
isolate_build_options=isolate_build_options)


def wabt_test_args():
if not wabt_dir:
Expand Down
Loading