You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Nov 3, 2021. It is now read-only.
Bulk-memory-operations changes instantiation so that application of data and element segments are equivalent to executing a sequence of memory/table.init instructions before the start function is executed. This implies that an error during these steps should generate a runtime error, instead of a linking error. Here's an example of a test change caused by this [1] [2].
I don't think this is a huge deal in practice, but it means that an implementation that enables bulk-memory-operations can no longer pass the original spec-test suite, as it will emit runtime errors instead of linking errors for those tests.
I'm not sure the best course of action here. Does it make sense to loosen the required behavior for implementations upstream so they can emit link or runtime errors and still pass the tests?
There wasn't a strong feeling that this was an issue in the last in-person CG meeting (2-2020), with the rationale that we previously haven't cared much about the kind of error emitted by operations. Closing this then.
Bulk-memory-operations changes instantiation so that application of data and element segments are equivalent to executing a sequence of memory/table.init instructions before the start function is executed. This implies that an error during these steps should generate a runtime error, instead of a linking error. Here's an example of a test change caused by this [1] [2].
I don't think this is a huge deal in practice, but it means that an implementation that enables bulk-memory-operations can no longer pass the original spec-test suite, as it will emit runtime errors instead of linking errors for those tests.
I'm not sure the best course of action here. Does it make sense to loosen the required behavior for implementations upstream so they can emit link or runtime errors and still pass the tests?
[1]
bulk-memory-operations/test/core/data.wast
Line 173 in 1e29660
[2] https://github.com/WebAssembly/spec/blob/e3a3c12f51221daaa901691e674d7ff990029122/test/core/data.wast#L161
The text was updated successfully, but these errors were encountered: