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 dependencies #13

Merged
merged 340 commits into from
Feb 4, 2022
Merged

Merge dependencies #13

merged 340 commits into from
Feb 4, 2022

Conversation

rossberg
Copy link
Member

@rossberg rossberg commented Feb 4, 2022

The proposal currently depends on typed function references and typeful references in general. In addition, various examples require tail calls. This PR hence merges in both proposal repos as dependencies, as a prerequisite for merging the interpreter prototype in a follow-up.

rossberg and others added 30 commits March 31, 2019 00:48
* Rename elem/data.drop
* Reorder bulk instructions
* Rename interpreter AST ref constructors to match reftype repo
* Update interpreter README
… op proposal (#35)

Adds table.size, table.grow, table.fill to overview, spec, interpreter, and tests, as decided at recent CG meeting. Also adds a few more tests for table.get and table.set.

Also, change interpreter's segment encoding to match bulk ops proposal, addressing #18. (Not updated in spec yet, since corresponding spec text is still missing from bulk ops proposal.)
The data count section has a count that must match the number of data segments. If the data count section isn't present, then `memory.init` and `data.drop` cannot be used.

Fixes issue #73.
* Add definition of free index sets
* Simplify datacount side condition
* Explain convention about multiple occurrences of meta variables
The element segment binary format allows for `ref.null` as well as
`ref.func`.

TODO: text format
* Make types explicit in global/table/memory instances
* Allow global/table values/elements to be subtypes
* Simplify externval typing
* Remove passive segment func ref shorthand

* Drop passive keyword
* Fix expected trap messages.

The spec interpreter says "element segment dropped", rather than
"elements segment dropped".

* Fix "zero len, but dst offset out of bounds" test.

Fix this test to test what it's comment says it's testing.

* Add more tests for zero-length operations.

* Update the Overview text to reflect the zero-length at-the-end semantics.
Change the test generators to use `ref.func` and remove `passive`.

At some point we'll want to remove the generators, but for let's try to
maintain them.
Deploy keys can't be shared between repositories, so we'll have to
create a new one for each proposal.

We may want to switch to the instructions described here instead at some
point: https://docs.travis-ci.com/user/deployment/pages/
@rossberg rossberg requested review from slindley and fgmccabe February 4, 2022 13:45
Copy link
Collaborator

@slindley slindley left a comment

Choose a reason for hiding this comment

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

LGTM

@fgmccabe
Copy link
Collaborator

fgmccabe commented Feb 4, 2022

I am assuming that this PR does not include the hybrid iso-recursive type proposal.
It seems pretty clumsy to merge entire repos just to get the dependencies.

@rossberg
Copy link
Member Author

rossberg commented Feb 4, 2022

Right, recursive types are currently with the GC proposal, which is not needed here.

Including the dependencies has been our standard practice for proposal repos. Once a dependency is merged into the upstream spec, a sync will make the dependency obsolete.

Copy link
Collaborator

@fgmccabe fgmccabe left a comment

Choose a reason for hiding this comment

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

I am ok (somewhat reluctantly TBH) to let this go through.
Some (most) of my comments have no real bearing on stack switching so there is not much point in elaborating them here.

and heap_type =
FuncHeapType | ExternHeapType | DefHeapType of var | BotHeapType
and value_type =
NumType of num_type | VecType of vec_type | RefType of ref_type | BotType
Copy link
Collaborator

Choose a reason for hiding this comment

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

What is a BotType?

Copy link
Member Author

Choose a reason for hiding this comment

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

The bottom type. It only occurs internally.


* Refine the instruction `ref.func $f` to return a typed function reference

* Optionally add an instruction `func.bind` to create a closure
Copy link
Collaborator

Choose a reason for hiding this comment

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

I was under the impression that func.bind was not happening.

Copy link
Member Author

Choose a reason for hiding this comment

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

Yes, but I yet have to update the overview.

@fgmccabe fgmccabe merged commit c853851 into main Feb 4, 2022
@fgmccabe fgmccabe deleted the merge-deps branch February 4, 2022 18:24
Copy link
Member Author

@rossberg rossberg left a comment

Choose a reason for hiding this comment

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

Thanks.

and heap_type =
FuncHeapType | ExternHeapType | DefHeapType of var | BotHeapType
and value_type =
NumType of num_type | VecType of vec_type | RefType of ref_type | BotType
Copy link
Member Author

Choose a reason for hiding this comment

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

The bottom type. It only occurs internally.


* Refine the instruction `ref.func $f` to return a typed function reference

* Optionally add an instruction `func.bind` to create a closure
Copy link
Member Author

Choose a reason for hiding this comment

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

Yes, but I yet have to update the overview.

dhil added a commit to dhil/wasm-stack-switching that referenced this pull request Apr 12, 2024
Merge with WebAssembly/spec and WebAssembly/gc
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.