-
Notifications
You must be signed in to change notification settings - Fork 21
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
FWIW, you can generally copy what's in the Overview pretty directly.
This PR is now just missing validation and execution changes. |
b3bba67
to
e5fa979
Compare
All comments addressed. The Execution and Validation section are still not complete. I updated these for just |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some more suggestions for tweaks.
Before continuing to spell out execution and validation, I'd merge the multi-memory repo into this one, so that you don't have to redo everything later (with merge conflicts everywhere). (And please merge it without squashing commits, otherwise we'll have to resolve possible conflicts over each time.) I'd also suggest doing all that in a separate PR.
Sure thing. However the multi-memory repo itself looks like its fairly out of date with upstream, resulting is a fair amount of conflicts. Would you be able update the multi-memory repo first? (I tried myself and there were a fair few conflicts.. let me know if you would rather I try to take care of that too). |
Ah sorry. Instead of the multi-memory repo, you could merge the wasm-3.0 branch from the main repo, which already contains it, plus various other proposals (it is the staging ground for merging phase-4 proposals and is up-to-date with main). |
I'm having a little trouble with the wasm-3.0 branch merge for reasons that look unrelated to memoy64. I think the reason is because i'm already caught up with the latest |
Done, merged spec/main into wasm-3.0. |
I'm most of the way through the rebase onto wasm-3.0. Would you be OK with land this change here on main and then I can cherry pick it over to my wasm-3.0 branch once that lands? Any other feedback on the content of this PR? |
document/core/text/types.rst
Outdated
|
||
Abbreviations | ||
............. | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That is left a bit vague, intended to be applicable to a specific syntactic class (which currently only appears in the Latex source :) ) and otherwise "clear from context". As mentioned in my SpecTec presentation last week, I'd like to remove the handwaviness and make this more precise, but that doesn't have super-high priority.
The merge of main with upstream/wasm-3.0 is now complete. See https://github.com/WebAssembly/memory64/tree/wasm-3.0. This PR should now be on top of memory64/wasm3.0. Should I close this one and open another one, or first push and change the target branch to wasm-3.0? |
I'd avoid reopening a PR if possible. If you can rebase it, that seems highly preferable. |
I updated `instructions.rst` and make a start on `types.rst` but could use some help on how to parameterize `limits` on the index type.
This PR has now been updated to target the local wasm-3.0 branch. The validation and execution sections still only contain updates for |
document/core/exec/instructions.rst
Outdated
|
||
12. Assert: due to :ref:`validation <valid-memory.copy>`, a value of :ref:`value type <syntax-valtype>` |I32| is on the top of the stack. | ||
12. Let :math:`\X{it}_{min}` be ....? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
12. Let :math:`\X{it}_{min}` be ....? | |
12. Let :math:`\X{it}_{\X{min}}` be ....? |
And similarly in other places. Or perhaps name this one just plain "it"?
I would say "... be the :ref:minimum <aux-idxtype-min>
of ...` and then define that as a convention in the syntax section for index types.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done. Although I'm not sure how you would me to define aux-idxtype-min
itself. Right now I've described it in prose but I imagine it warrants some kind of formal notation.
In addition to addressing feedback I also updated all he instruction validation rules. AFAIK, that just leaves the completion of the execution section (in addition to any remaining feedback). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In addition to addressing feedback I also updated all he instruction validation rules.
Hm, I only see an update to memory.copy. Did you perhaps forget to push?
|
||
21. Execute the instruction :math:`\MEMORYCOPY~x~y`. | ||
24. Execute the instruction :math:`\MEMORYCOPY~x~y`. | ||
|
||
.. math:: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The formal rule here still needs the equivalent adjustments as the text.
I looked into updated the formal rules for |
The execution rules shouldn't actually need the side conditions on what the different it's are concretely. Execution does not depend on that, and we know that they match up due to validation. Leaving out the side conditions means the types exist, but we don't care what they are (here). You can in fact do the same in the text, that is, remove the lookup of the memory types and just amend the existing type assertions on the operands to something like "Assert: due to :ref: and so on. |
Do what should the stack look line in the memory.copy execution rules? Can I just refer directly to |
Yes, it would be just a variable in the pattern match. |
All execution rules updated. I think that everything now % feedback. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM % comments
This is just a start. I've made some updates to
instructions.rst
andtypes.rst
but could use some pointers so uploading now to get feedback.