Skip to content
Closed
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
8 changes: 4 additions & 4 deletions bazel/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -541,22 +541,22 @@ config_setting(

config_setting(
name = "wasm_v8",
values = {"define": "wasm=v8"},
define_values = {"wasm": "v8"},
)

config_setting(
name = "wasm_wamr",
values = {"define": "wasm=wamr"},
define_values = {"wasm": "wamr"},
)

config_setting(
name = "wasm_wasmtime",
values = {"define": "wasm=wasmtime"},
define_values = {"wasm": "wasmtime"},
)

config_setting(
name = "wasm_disabled",
values = {"define": "wasm=disabled"},
define_values = {"wasm": "disabled"},
)

# This config setting enables Universal Header Validator and disables
Expand Down
4 changes: 2 additions & 2 deletions bazel/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -734,8 +734,8 @@ Note not all extensions can be disabled.

To enable a specific WebAssembly (Wasm) engine, you'll need to pass `--define wasm=[wasm_engine]`, e.g. `--define wasm=wasmtime` to enable the [wasmtime](https://wasmtime.dev/) engine. Supported engines are:

* `v8` (the default included engine)
* `wamr`
* `v8` (default included engine)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I thought we decided to exclude v8 from the default build.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If V8 is not part of the default build, which builds would it be included in, and would those be covered by test runs?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changing the default build is similar to deprecating the extensions, so we needs a heads up IMO and could keep both for a release. Or we could just drop it. @mpwarres should we try JIT WAMR instead of interpreter one? It seems like you can't have both of them so we should make a choice now.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

IIRC the issue with JIT WAMR was that it is not supported for Arm. Would it be feasible to have the amd64 build use WAMR JIT but use the interpreter for arm64?

Sorry for the dumb question but I am still unclear whether we will still have CI test runs exercising V8 after it is dropped from the default build. IMO continuing to run Envoy WasmFilter tests with V8 is desirable to avoid bitrot.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

currently the compile-time-options ci test against the non-default wasm engines

* `wamr` (default included engine)
* `wasmtime`

If you're building from a custom build repository, the parameters need to prefixed with `@envoy`, for example
Expand Down
5 changes: 4 additions & 1 deletion bazel/envoy_select.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -175,8 +175,11 @@ def envoy_select_wasm_v8_bool():
# Selects the given values depending on the Wasm runtimes enabled in the current build.
def envoy_select_wasm_wamr(xs):
return select({
"@envoy//bazel:wasm_v8": [],
"@envoy//bazel:wasm_wamr": xs,
"//conditions:default": [],
"@envoy//bazel:wasm_wasmtime": [],
"@envoy//bazel:wasm_disabled": [],
"//conditions:default": xs, # implicit default (wamr)
})

# Selects the given values depending on the Wasm runtimes enabled in the current build.
Expand Down
3 changes: 3 additions & 0 deletions changelogs/current.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -49,5 +49,8 @@ new_features:
:ref:`RouteAction.rate_limits<envoy_v3_api_field_config.route.v3.RouteAction.rate_limits>` fields will be ignored. However,
:ref:`RateLimitPerRoute.rate_limits<envoy_v3_api_field_extensions.filters.http.ratelimit.v3.RateLimitPerRoute.rate_limits>`
will take precedence over this field.
- area: wasm
change: |
Enabled WAMR runtime in the default build in the "fast interpreter" mode.

deprecated: