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

Adapt to recent changes in haskell-wasm #1069

Closed
RyanGlScott opened this issue Mar 20, 2023 · 0 comments · Fixed by #1072
Closed

Adapt to recent changes in haskell-wasm #1069

RyanGlScott opened this issue Mar 20, 2023 · 0 comments · Fixed by #1072
Labels

Comments

@RyanGlScott
Copy link
Contributor

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 the haskell-wasm side. Here is what I have found so far:

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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant