|
Revision tags: dev, v36.0.9, v44.0.1, v43.0.2, v36.0.8, v24.0.8, v44.0.0, v43.0.1, v42.0.2, v36.0.7, v24.0.7, v43.0.0, v42.0.1, v41.0.4, v42.0.0, v40.0.4, v36.0.6, v24.0.6 |
|
| #
8ec3ff3b |
| 12-Feb-2026 |
Michael McLoughlin <[email protected]> |
Cranelift: ISLE recursion check (#12474)
* add decl rec attribute
* implement recursion check
* add required `req` attributes
* document the `RecursionError` variant
* add required `req` attribu
Cranelift: ISLE recursion check (#12474)
* add decl rec attribute
* implement recursion check
* add required `req` attributes
* document the `RecursionError` variant
* add required `req` attributes to pully ISLE rules
* add `rec` to isle example
* use dfs for cycle detection
* document the `rec` attribute
* recursion safety comments
* "is permitted to be recursive"
* fix documentation of RecursionError variant
show more ...
|
|
Revision tags: v41.0.3, v41.0.2, v41.0.1, v36.0.5, v40.0.3, v41.0.0, v36.0.4, v39.0.2, v40.0.2, v40.0.1, v40.0.0 |
|
| #
ac3358b1 |
| 04-Dec-2025 |
Chris Fallin <[email protected]> |
Fix various broken links in docs. (#12125)
We've gotten a few one-off link-fix PRs, so in the Wasmtime meeting today we decided to just fix them all ourselves so we don't get these drive-by PRs anym
Fix various broken links in docs. (#12125)
We've gotten a few one-off link-fix PRs, so in the Wasmtime meeting today we decided to just fix them all ourselves so we don't get these drive-by PRs anymore (or at least not for a while, until links start to rot again).
This PR fixes all applicable broken links we could find via the `lychee` link-checker (thanks abrown for running that!). There are a few broken links in subrepositories that this doesn't fix. And the link-checker doesn't like links to subheaders on `.html` paths derived from `.md` files by mdbook -- mdbook doesn't support these (rust-lang/mdBook#167) but they render fine once published to the Web.
show more ...
|
|
Revision tags: v39.0.1, v39.0.0, v38.0.4, v37.0.3, v36.0.3, v24.0.5, v38.0.3, v38.0.2, v38.0.1, v37.0.2, v37.0.1, v37.0.0, v36.0.2, v36.0.1, v36.0.0, v35.0.0, v24.0.4, v33.0.2, v34.0.2, v34.0.1, v33.0.1, v24.0.3, v32.0.1, v34.0.0, v33.0.0, v32.0.0, v31.0.0 |
|
| #
1136192e |
| 03-Mar-2025 |
Bongjun Jang <[email protected]> |
chore: fix parenthesis balance (#10317)
parentheses are not balanced here
|
|
Revision tags: v30.0.2, v30.0.1, v30.0.0, v29.0.1, v29.0.0, v28.0.1 |
|
| #
48f8a9d3 |
| 13-Jan-2025 |
Julian Eager <[email protected]> |
ISLE: fix more glitches in BNF (#9973)
* ensure not to consume const-ident as ident
* fix <spec>
* add missing `resultc` keyword
* correct <instantiate>
* Revert "add missing `resultc` keyword"
ISLE: fix more glitches in BNF (#9973)
* ensure not to consume const-ident as ident
* fix <spec>
* add missing `resultc` keyword
* correct <instantiate>
* Revert "add missing `resultc` keyword"
This reverts commit e2529f0d678b239db9fb64832ca8c1300cd4d44f.
* add <spec-bv> syntax
* glitch
* bitvec width is optional
* distinguish <spec_bv> from <ident>
show more ...
|
| #
e8dee7e5 |
| 05-Jan-2025 |
Julian Eager <[email protected]> |
isle: BNF glitches (#9920)
* isle: BNF <int> glitch
such that it wouldn't match wildcard `_`
* fix `extern const` syntax
|
| #
af5a789b |
| 27-Dec-2024 |
Julian Eager <[email protected]> |
ISLE: improve syntax BNF (#9903)
* ISLE: improve syntax BNF
* fixes
|
| #
47a60e83 |
| 27-Dec-2024 |
Jack Drogon <[email protected]> |
fix typo (#9906)
Signed-off-by: Jack Drogon <[email protected]>
|
|
Revision tags: v28.0.0, v27.0.0 |
|
| #
bb886ffc |
| 14-Nov-2024 |
Karl Meakin <[email protected]> |
ISLE: Add proper bool type (#9593)
* ISLE: add proper booleans (expressions)
Copyright (c) 2024, Arm Limited.
Signed-off-by: Karl Meakin <[email protected]>
* ISLE: add proper booleans (pattern
ISLE: Add proper bool type (#9593)
* ISLE: add proper booleans (expressions)
Copyright (c) 2024, Arm Limited.
Signed-off-by: Karl Meakin <[email protected]>
* ISLE: add proper booleans (patterns)
Copyright (c) 2024, Arm Limited.
Signed-off-by: Karl Meakin <[email protected]>
* ISLE: add proper booleans (spec expressions)
Copyright (c) 2024, Arm Limited.
Signed-off-by: Karl Meakin <[email protected]>
* ISLE: replace opaque boolean constants
Copyright (c) 2024, Arm Limited.
Replace all occurences of `$true` and `$false` with `true` and `false`.
Signed-off-by: Karl Meakin <[email protected]>
* ISLE: remove `on_lhs` argument
Instead of threading `on_lhs` through all the calls to `translate_expr`, we can just set `is_partial` and `is_pure` on `root_flags` to true.
Copyright (c) 2024, Arm Limited.
Signed-off-by: Karl Meakin <[email protected]>
* ISLE: add proper booleans (language reference)
Copyright (c) 2024, Arm Limited.
Signed-off-by: Karl Meakin <[email protected]>
---------
Signed-off-by: Karl Meakin <[email protected]>
show more ...
|
|
Revision tags: v26.0.1, v25.0.3, v24.0.2 |
|
| #
859d38db |
| 04-Nov-2024 |
Karl Meakin <[email protected]> |
ISLE: update language reference (#9517)
The language specified in `language-reference.md` and the language recognised by `parser.rs` had drifted out of sync. Update the language reference to match t
ISLE: update language reference (#9517)
The language specified in `language-reference.md` and the language recognised by `parser.rs` had drifted out of sync. Update the language reference to match the actual language more closely.
Copyright (c) 2024, Arm Limited.
Signed-off-by: Karl Meakin <[email protected]>
show more ...
|
| #
4ee35532 |
| 31-Oct-2024 |
Karl Meakin <[email protected]> |
ISLE: Add block comments (#9529)
* ISLE: add block comments
Closes #3542
Copyright (c) 2024, Arm Limited.
Signed-off-by: Karl Meakin <[email protected]>
* ISLE: add comment syntax to language
ISLE: Add block comments (#9529)
* ISLE: add block comments
Closes #3542
Copyright (c) 2024, Arm Limited.
Signed-off-by: Karl Meakin <[email protected]>
* ISLE: add comment syntax to language reference
Copyright (c) 2024, Arm Limited.
Signed-off-by: Karl Meakin <[email protected]>
* ISLE: align definition of whitespace and newlines with wasm spec
The ISLE language is superficially similar to WebAssembly, so to reduce confusion I think it would help to copy the wasm spec where possible.
This is technically a breaking change, since `\x0C` (`\f`) will no longer be lexed as whitespace, but this character is exceedingly rare in practice.
Copyright (c) 2024, Arm Limited.
Signed-off-by: Karl Meakin <[email protected]>
---------
Signed-off-by: Karl Meakin <[email protected]>
show more ...
|
| #
a2025f42 |
| 30-Oct-2024 |
Karl Meakin <[email protected]> |
ISLE: remove Scheme-style boolean syntax (#9522)
The `#t` and `#f` syntax is misleading: they are actually integer expressions, not booleans, so `#t` represents the integer `1` but *not* the boolean
ISLE: remove Scheme-style boolean syntax (#9522)
The `#t` and `#f` syntax is misleading: they are actually integer expressions, not booleans, so `#t` represents the integer `1` but *not* the boolean `true`. They have been replaced by the named constants `$true` and `$false`, and not used anywhere except tests, so they can be removed without breaking any lowering/optimization code.
Copyright (c) 2024, Arm Limited.
Signed-off-by: Karl Meakin <[email protected]>
show more ...
|
|
Revision tags: v26.0.0, v21.0.2, v22.0.1, v23.0.3, v25.0.2, v24.0.1, v25.0.1, v25.0.0, v24.0.0, v23.0.2, v23.0.1, v23.0.0, v22.0.0, v21.0.1, v21.0.0 |
|
| #
0e9121da |
| 16-May-2024 |
FrankReh <[email protected]> |
Fix some typos (#8641)
* occurred
* winch typos
* tests typos
* cli typos
* fuzz typos
* examples typos
* docs typos
* crates/wasmtime typos
* crates/environ typos
* crates/cranelift typos
Fix some typos (#8641)
* occurred
* winch typos
* tests typos
* cli typos
* fuzz typos
* examples typos
* docs typos
* crates/wasmtime typos
* crates/environ typos
* crates/cranelift typos
* crates/test-programs typos
* crates/c-api typos
* crates/cache typos
* crates other typos
* cranelift/codegen/src/isa typos
* cranelift/codegen/src other typos
* cranelift/codegen other typos
* cranelift other typos
* ci js typo
* .github workflows typo
* RELEASES typo
* Fix clang-format documentation line
---------
Co-authored-by: Andrew Brown <[email protected]>
show more ...
|
|
Revision tags: v20.0.2, v20.0.1, v20.0.0, v17.0.3, v19.0.2, v18.0.4, v19.0.1, v19.0.0, v18.0.3, v18.0.2, v17.0.2, v18.0.1, v18.0.0, v17.0.1, v17.0.0, v16.0.0, v15.0.1 |
|
| #
b960adb8 |
| 23-Nov-2023 |
Brett Cannon <[email protected]> |
Fix broken link in ISLE language reference (#7577)
|
|
Revision tags: v15.0.0, v14.0.4, v14.0.3, v14.0.2, v13.0.1, v14.0.1, v14.0.0 |
|
| #
ef868a7a |
| 04-Oct-2023 |
Alphyr <[email protected]> |
riscv64: Further optimize constants loading (#7139)
* Further optimize RISCV constant loading
* Simplify existing rule
* Fix
* Bless missing tests
* Use right signedness for Imm20
|
|
Revision tags: minimum-viable-wasi-proxy-serve, v13.0.0, v12.0.2, v11.0.2, v10.0.2, v12.0.1, v12.0.0, v11.0.1, v11.0.0, v10.0.1, v10.0.0, v9.0.4, v9.0.3, v9.0.2, v9.0.1, v9.0.0, v6.0.2, v7.0.1, v8.0.1, v8.0.0 |
|
| #
b6bb6a19 |
| 18-Apr-2023 |
Alex Crichton <[email protected]> |
Add support for binary/octal literals to ISLE (#6234)
* Add support for binary/octal literals to ISLE
In a number of x64-changes recently some u8 immediates are interpreted as four bit-packed 2-bit
Add support for binary/octal literals to ISLE (#6234)
* Add support for binary/octal literals to ISLE
In a number of x64-changes recently some u8 immediates are interpreted as four bit-packed 2-bit numbers and I have a tough time going between hex and these bit-packed numbers. I've been writing `0xAA == 0b...` in comments to indicate the intent but I figured it'd be a bit clearer if the binary literal was accepted directly!
This is a minor update to the ISLE lexer to allow for binary `0b00...` and octal `0o00...` literals in the same manner as hex literals. Some comments in the x64 backend are then removed to use the binary literal syntax directly.
* Update ISLE reference for octal/binary
* Update ISLE tests for octal/binary
show more ...
|
| #
1dca793c |
| 21-Mar-2023 |
Alexa VanHattum <[email protected]> |
Add `partial` keyword to ISLE reference (#6076)
Noticed this was missing, tried to add based on the comments in https://github.com/bytecodealliance/wasmtime/pull/5392 (CC @jameysharp)
|
|
Revision tags: v7.0.0, v6.0.1, v5.0.1, v4.0.1, v6.0.0, v5.0.0, v4.0.0, v3.0.1, v3.0.0, v1.0.2, v2.0.2, v2.0.1, v2.0.0, v1.0.1, v1.0.0, v0.40.1, v0.40.0, v0.39.1, v0.38.3, v0.38.2, v0.39.0 |
|
| #
688168b4 |
| 29-Jun-2022 |
Waleed Dahshan <[email protected]> |
Fix a mistake in the language reference (#4352)
It is clear that the third rule does not contribute to the rewriting of the expression `(A (B (D 42)))` to `(C (D 42))` to `(E 42)`.
|
|
Revision tags: v0.38.1, v0.38.0 |
|
| #
82381759 |
| 08-Jun-2022 |
Trevor Elliott <[email protected]> |
Fix some typos in the isle language reference (#4248)
|
|
Revision tags: v0.37.0 |
|
| #
03793b71 |
| 02-May-2022 |
Chris Fallin <[email protected]> |
ISLE: remove all uses of argument polarity, and remove it from the language. (#4091)
This PR removes "argument polarity": the feature of ISLE extractors that lets them take
inputs aside from the va
ISLE: remove all uses of argument polarity, and remove it from the language. (#4091)
This PR removes "argument polarity": the feature of ISLE extractors that lets them take
inputs aside from the value to be matched.
Cases that need this expressivity have been subsumed by #4072 with if-let clauses;
we can now finally remove this misfeature of the language, which has caused significant
confusion and has always felt like a bit of a hack.
This PR (i) removes the feature from the ISLE compiler; (ii) removes it from the reference
documentation; and (iii) refactors away all uses of the feature in our three existing
backends written in ISLE.
show more ...
|
| #
c7e2c21b |
| 29-Apr-2022 |
Chris Fallin <[email protected]> |
ISLE language reference: move subsection to proper section. (#4087)
In #4072 I mistakenly put the subsection about if-let clauses in the
language doc just below the next section header, so it's in
ISLE language reference: move subsection to proper section. (#4087)
In #4072 I mistakenly put the subsection about if-let clauses in the
language doc just below the next section header, so it's in the wrong
section ("mapping to Rust"). This moves it back upward to where it
should be. Sorry about that!
show more ...
|
| #
5b7d56f6 |
| 28-Apr-2022 |
Chris Fallin <[email protected]> |
ISLE: add support for extended left-hand sides with `if-let` clauses. (#4072)
This PR adds support for `if-let` clauses, as proposed in
bytecodealliance/rfcs#21. These clauses augment the left-hand
ISLE: add support for extended left-hand sides with `if-let` clauses. (#4072)
This PR adds support for `if-let` clauses, as proposed in
bytecodealliance/rfcs#21. These clauses augment the left-hand side
(pattern-matching phase) of rules in the ISLE instruction-selection DSL
with sub-patterns matching on sub-expressions. The ability to list
additional match operations to perform, out-of-line from the original
toplevel pattern, greatly simplifies some idioms. See the RFC for more
details and examples of use.
show more ...
|
| #
eceb433b |
| 28-Apr-2022 |
Chris Fallin <[email protected]> |
Remove `=x` uses from ISLE, and remove support from the DSL compiler. (#4078)
This is a follow-up on #4074: now that we have the simplified syntax, we
can remove the old, redundant syntax.
|
|
Revision tags: v0.36.0, v0.35.3, v0.34.2, v0.35.2, v0.35.1, v0.35.0 |
|
| #
9dbb8c25 |
| 23-Feb-2022 |
Chris Fallin <[email protected]> |
Implicit type conversions in ISLE (#3807)
Add support for implicit type conversions to ISLE.
This feature allows the DSL user to register to the compiler that a
particular term (used as a constr
Implicit type conversions in ISLE (#3807)
Add support for implicit type conversions to ISLE.
This feature allows the DSL user to register to the compiler that a
particular term (used as a constructor or extractor) converts from one
type to another. The compiler will then *automatically* insert this term
whenever a type mismatch involving that specific pair of types occurs.
This significantly cleans up many uses of the ISLE DSL. For example,
when defining the compiler backends, we often have newtypes like `Gpr`
around `Reg` (signifying a particular type of register); we can define
a conversion from Gpr to Reg automatically.
Conversions can also have side-effects, as long as these side-effects
are idempotent. For example, `put_value_in_reg` in a compiler backend
has the effect of marking the value as used, causing codegen to produce
it, and assigns a register to the value; but multiple invocations of
this will return the same register for the same value. Thus it is safe
to use it as an implicit conversion that may be invoked multiple times.
This is documented in the ISLE-Cranelift integration document.
This PR also adds some testing infrastructure to the ISLE compiler,
checking that "pass" tests pass through the DSL compiler, "fail" tests
do not, and "link" tests are able to generate code and link that code
with corresponding Rust code.
show more ...
|
|
Revision tags: v0.33.1, v0.34.1, v0.34.0, v0.33.0, v0.32.1, v0.32.0 |
|
| #
5a765c65 |
| 30-Nov-2021 |
Chris Fallin <[email protected]> |
Add link to ISLE language reference to ISLE Cranelift integration doc.
|
| #
edef533d |
| 30-Nov-2021 |
Chris Fallin <[email protected]> |
Move ISLE docs into cranelift/isle/docs/ and update links.
|