-
Notifications
You must be signed in to change notification settings - Fork 44
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
Adapt to recent changes in haskell-wasm
#1069
Labels
Comments
RyanGlScott
added a commit
that referenced
this issue
Mar 25, 2023
This bumps the `haskell-wasm` submodule commit to SPY/haskell-wasm@4fb4da0 and adjusts the code in `crucible-wasm` accordingly. Part of #1069.
RyanGlScott
added a commit
that referenced
this issue
Mar 25, 2023
This bumps the `haskell-wasm` submodule commit to SPY/haskell-wasm@d61926e, which adds unary operators corresponding to the signed extension operators added in WebAssembly/spec#1144. I have added corresponding Crucible translations based on the WebAssembly reference interpreter. Part of #1069.
RyanGlScott
added a commit
that referenced
this issue
Mar 25, 2023
This bumps the `haskell-wasm` submodule commit to SPY/haskell-wasm@01e0ab8, which gives `Assertion` an additional `Int` argument representing a line number. We do not make use of this in `crucible-wasm`, so it is fine to ignore. Part of #1069.
RyanGlScott
added a commit
that referenced
this issue
Mar 25, 2023
This bumps the `haskell-wasm` submodule to include the changes from SPY/haskell-wasm@b1874df and SPY/haskell-wasm@b816e04, which change the `Block`, `Loop`, and `If` instructions to use a `BlockType` instead of a `ResultType`. This allows these instructions to have multiple result values, as described in this WebAssembly proposal: WebAssembly/spec#1145 To adapt the code on the `crucible-wasm` side, I have introduced a `getBlockResultType` function to convert from a `BlockType` to a `ResultType`, which is heavily inspired by a similar function in `haskell-wasm`. I have also factored out some code shared in common between `translateFunction` and `genInstruction`'s case for `Block` so that I do not have to conjure up a fresh `BlockType` in `translateFunction`. Part of #1069.
RyanGlScott
added a commit
that referenced
this issue
Mar 26, 2023
This bumps the `haskell-wasm` submodule commit to SPY/haskell-wasm@4fb4da0 and adjusts the code in `crucible-wasm` accordingly. Part of #1069.
RyanGlScott
added a commit
that referenced
this issue
Mar 26, 2023
This bumps the `haskell-wasm` submodule commit to SPY/haskell-wasm@d61926e, which adds unary operators corresponding to the signed extension operators added in WebAssembly/spec#1144. I have added corresponding Crucible translations based on the WebAssembly reference interpreter. Part of #1069.
RyanGlScott
added a commit
that referenced
this issue
Mar 26, 2023
This bumps the `haskell-wasm` submodule commit to SPY/haskell-wasm@01e0ab8, which gives `Assertion` an additional `Int` argument representing a line number. We do not make use of this in `crucible-wasm`, so it is fine to ignore. Part of #1069.
RyanGlScott
added a commit
that referenced
this issue
Mar 26, 2023
This bumps the `haskell-wasm` submodule to include the changes from SPY/haskell-wasm@b1874df and SPY/haskell-wasm@b816e04, which change the `Block`, `Loop`, and `If` instructions to use a `BlockType` instead of a `ResultType`. This allows these instructions to have multiple result values, as described in this WebAssembly proposal: WebAssembly/spec#1145 To adapt the code on the `crucible-wasm` side, I have introduced a `getBlockResultType` function to convert from a `BlockType` to a `ResultType`, which is heavily inspired by a similar function in `haskell-wasm`. I have also factored out some code shared in common between `translateFunction` and `genInstruction`'s case for `Block` so that I do not have to conjure up a fresh `BlockType` in `translateFunction`. Part of #1069.
RyanGlScott
added a commit
that referenced
this issue
Mar 27, 2023
This bumps the `haskell-wasm` submodule commit to SPY/haskell-wasm@4fb4da0 and adjusts the code in `crucible-wasm` accordingly. Part of #1069.
RyanGlScott
added a commit
that referenced
this issue
Mar 27, 2023
This bumps the `haskell-wasm` submodule commit to SPY/haskell-wasm@d61926e, which adds unary operators corresponding to the signed extension operators added in WebAssembly/spec#1144. I have added corresponding Crucible translations based on the WebAssembly reference interpreter. Part of #1069.
RyanGlScott
added a commit
that referenced
this issue
Mar 27, 2023
This bumps the `haskell-wasm` submodule commit to SPY/haskell-wasm@01e0ab8, which gives `Assertion` an additional `Int` argument representing a line number. We do not make use of this in `crucible-wasm`, so it is fine to ignore. Part of #1069.
RyanGlScott
added a commit
that referenced
this issue
Mar 27, 2023
This bumps the `haskell-wasm` submodule to include the changes from SPY/haskell-wasm@b1874df and SPY/haskell-wasm@b816e04, which change the `Block`, `Loop`, and `If` instructions to use a `BlockType` instead of a `ResultType`. This allows these instructions to have multiple result values, as described in this WebAssembly proposal: WebAssembly/spec#1145 To adapt the code on the `crucible-wasm` side, I have introduced a `getBlockResultType` function to convert from a `BlockType` to a `ResultType`, which is heavily inspired by a similar function in `haskell-wasm`. I have also factored out some code shared in common between `translateFunction` and `genInstruction`'s case for `Block` so that I do not have to conjure up a fresh `BlockType` in `translateFunction`. Part of #1069.
RyanGlScott
added a commit
that referenced
this issue
Mar 27, 2023
This bumps the `haskell-wasm` submodule commit to SPY/haskell-wasm@4fb4da0 and adjusts the code in `crucible-wasm` accordingly. Part of #1069.
RyanGlScott
added a commit
that referenced
this issue
Mar 27, 2023
This bumps the `haskell-wasm` submodule commit to SPY/haskell-wasm@d61926e, which adds unary operators corresponding to the signed extension operators added in WebAssembly/spec#1144. I have added corresponding Crucible translations based on the WebAssembly reference interpreter. Part of #1069.
RyanGlScott
added a commit
that referenced
this issue
Mar 27, 2023
This bumps the `haskell-wasm` submodule commit to SPY/haskell-wasm@01e0ab8, which gives `Assertion` an additional `Int` argument representing a line number. We do not make use of this in `crucible-wasm`, so it is fine to ignore. Part of #1069.
RyanGlScott
added a commit
that referenced
this issue
Mar 27, 2023
This bumps the `haskell-wasm` submodule to include the changes from SPY/haskell-wasm@b1874df and SPY/haskell-wasm@b816e04, which change the `Block`, `Loop`, and `If` instructions to use a `BlockType` instead of a `ResultType`. This allows these instructions to have multiple result values, as described in this WebAssembly proposal: WebAssembly/spec#1145 To adapt the code on the `crucible-wasm` side, I have introduced a `getBlockResultType` function to convert from a `BlockType` to a `ResultType`, which is heavily inspired by a similar function in `haskell-wasm`. I have also factored out some code shared in common between `translateFunction` and `genInstruction`'s case for `Block` so that I do not have to conjure up a fresh `BlockType` in `translateFunction`. Part of #1069.
RyanGlScott
added a commit
that referenced
this issue
Jun 22, 2023
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
We will eventually need to update the
haskell-wasm
submodule in order to bring in changes from SPY/haskell-wasm#21. Before we can do this, however, we must adapt to some breaking API changes on thehaskell-wasm
side. Here is what I have found so far:AnyFunc
was renamed toFuncRef
in SPY/haskell-wasm@4fb4da0, which affects this line incrucible-wasm
:crucible/crucible-wasm/src/Lang/Crucible/Wasm/Instantiate.hs
Line 420 in 5179065
The
resultType
field ofBlock
had its type changed fromResultType
toBlockType
in SPY/haskell-wasm@b1874df. Similar changes were applied to theresultType
ofLoop
andIf
in SPY/haskell-wasm@b816e04.crucible-wasm
is relying onResultType
being a list of types here:crucible/crucible-wasm/src/Lang/Crucible/Wasm/Translate.hs
Lines 438 to 439 in 7942801
And here:
crucible/crucible-wasm/src/Lang/Crucible/Wasm/Translate.hs
Lines 465 to 466 in 7942801
This means that we will need to convert the
BlockType
to aResultType
. We can take inspiration from howhaskell-wasm
does this here.The text was updated successfully, but these errors were encountered: