Skip to content
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

Merge with upstream #272

Merged
merged 26 commits into from
Dec 30, 2024
Merged

Merge with upstream #272

merged 26 commits into from
Dec 30, 2024

Conversation

dhil
Copy link
Member

@dhil dhil commented Dec 30, 2024

No description provided.

alexcrichton and others added 26 commits December 20, 2024 16:03
This was originally added long ago and this brings the method up-to-date
with the current pulley opcode set.
…gine (bytecodealliance#9877)

* bench-api: Allow recompiling with the same engine

* Enable Pulley in the bench API
* pulley: Add macro `CallN` instructions

This commit adds new macro instructions to assist with speeding up calls
between functions. Pulley's previous `Call` instruction was similar to
native call instructions where arguments/results are implicitly in the
right location according to the ABI, but movement between registers is
more expensive with Pulley than with native architectures. The `CallN`
instructions here enable listing a few arguments (only integer
registers) in the opcode itself. This removes the need for individual `xmov`
instructions into individual registers and instead it can all be done
within the opcode handlers.

This additionally enables passing the same argument twice to a function
to reside only in one register. Finally parallel-copies between these
registers are supported as the interpreter loads all registers and then
stores all registers.

These new instructions participate in register allocation differently
from before where the first few arguments are allowed to be in any
register and no longer use `reg_fixed_use`. All other arguments (and all
float arguments for example) continue to use `reg_fixed_use`.

Locally sightglass reports this change speeding up `pulldown-cmark` by
2-10%. On a `fib(N)` micro-benchmark it didn't help as much as I was
hoping that it was going to.

* Fix MSRV
This commit moves testing of x86_64-apple-darwin from `macos-13` macs
to the `macos-14` image which is newer. The hope is that these newer
images, being natively M1 machines, are faster to compile and less
flaky. A number of CI builds recently have failed due to seeming CI
issues with the older machines, so this'll hopefully keep the same
amount of testing while improving robustness.
* use trait_variant and async-func-in-trait instead of async-trait

* remove all async_trait::async_trait related to bindgen! proc_macro

* remove pub use async_trait::async_trait in __internal

* bless `component-macro` tests to reflect `async_trait` removal

Signed-off-by: Joel Dice <joel.dice@fermyon.com>

* add `trait-variant` exemption to supply-chain/config.toml

This exempts the `trait-variant` crate from vetting since it is published and
maintained by the rust-lang organization and is officially recommended by the
Rust project.

Signed-off-by: Joel Dice <joel.dice@fermyon.com>

---------

Signed-off-by: Joel Dice <joel.dice@fermyon.com>
Co-authored-by: Joel Dice <joel.dice@fermyon.com>
* Remove float canonicalization from components

This was removed from the spec quite awhile back so this catches up the
runtime to the spec where this is no longer required.

Closes bytecodealliance#9826

* Update tests
…alliance#9883)

* Fix build on 32-bit Windows; consolidate CI platform checks

This commit fixes the build of the `wasmtime` crate and CLI on 32-bit
Windows. This required adding some extra bits for trap handling and a
stub for "unimplemented" for unwind information registration. This then
additionally refactored our CI configuration to place all of the
cross-compile checks in one matrix instead of spread out across a few
jobs.

Closes bytecodealliance#9882

prtest:platform-checks

* Add "join" node in CI

* Who really knows yml syntax

* Remove dead checks

* Fix only-`runtime` build on Windows
* add async example

* fix bindgen bug to make CI happy

See bytecodealliance#9822 (comment)

* update test expectations

* remove async_trait
…ance#9887)

* Don't forcibly enable `gc` feature with cli-flags crate

Helps keep the `gc` feature out of the "min" build.

* Fix standalone build of wasmtime-cli-flags
Signed-off-by: linchizhen <jiayanbing@yeah.net>
* Documentation

* Add WASMTIME_LOG_NO_CONTEXT

When using trace logging for compiler debugging, the usual
'context': time, level, target, are just visual noise.

Add an environment variable to disable them.
The tool stack overflows in default configurations (Windows/CI).
…` parameter (bytecodealliance#9898)

* Add an instance method test

* Transform instance methods into static methods with a '__this' parameter
Signed-off-by: Jack Drogon <jack.xsuperman@gmail.com>
* ISLE: improve syntax BNF

* fixes
* pulley: Implement 16x8 arith.

* leverage 32-bit arithmetic

* fix
* pulley: Implement vector sqmul_round_sat

* parenthesize to bring out op. order
* get simd_i8x16_arith2 passing

* get simd_i64x2_arith2 passing

* get simd_i8x16_sat_arith passing

* get simd_i16x8_sat_arith passing
…9915)

* c-api: Enable debugger DWARF export for guest code

In order to allow source level debugging of hosted webassembly code in
C-based embeddings, we must enable the debug-builtins cargo feature when
building the C api.

* c-api test: assert that the debug info is created

Previously we were testing and confirming only that the options can be
set using the API, not that they actually have any effect.

In order to (simply) confirm that enabling debug information actually
created some debug information, we can somewhat hackily inspect the
generated GDB JIT descriptor to see that it's populated.
@dhil dhil merged commit 010c5c5 into wasmfx:main Dec 30, 2024
52 checks passed
@dhil dhil deleted the wasmfx-merge branch December 30, 2024 19:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.