Closed Bug 1782585 (wasm-multi-memory) Opened 2 years ago Closed 1 year ago

Implement multi-memory proposal

Categories

(Core :: JavaScript: WebAssembly, task, P3)

task

Tracking

()

RESOLVED FIXED
117 Branch
Tracking Status
firefox117 --- fixed

People

(Reporter: rhunt, Assigned: rhunt)

References

(Depends on 1 open bug, Blocks 1 open bug, Regressed 1 open bug)

Details

Attachments

(14 files, 1 obsolete file)

(deleted), text/x-phabricator-request
Details
(deleted), text/x-phabricator-request
Details
(deleted), text/x-phabricator-request
Details
(deleted), text/x-phabricator-request
Details
(deleted), text/x-phabricator-request
Details
(deleted), text/x-phabricator-request
Details
(deleted), text/x-phabricator-request
Details
(deleted), text/x-phabricator-request
Details
(deleted), text/x-phabricator-request
Details
(deleted), text/x-phabricator-request
Details
(deleted), text/x-phabricator-request
Details
(deleted), text/x-phabricator-request
Details
(deleted), text/x-phabricator-request
Details
(deleted), text/x-phabricator-request
Details

Implement the multi-memory proposal.

Assignee: nobody → rhunt

Depends on D170977

Depends on D170978

Attached file WIP: Bug 1782585 - wasm: Remove omitBoundsChecks. (obsolete) (deleted) —

Depends on D170979

Depends on D170982

Depends on D170983

Depends on D170984

Depends on D170986

Attachment #9319835 - Attachment description: WIP: Bug 1782585 - Remove omitBoundsChecks temporarily. → WIP: Bug 1782585 - wasm: Remove omitBoundsChecks.

Depends on D170987

Attachment #9319832 - Attachment description: WIP: Bug 1782585 - wasm: Add multi-memory feature flag. → Bug 1782585 - wasm: Add multi-memory feature flag. r?jseward
Attachment #9319833 - Attachment description: WIP: Bug 1782585 - wasm: Generalize validation to multiple memories. → Bug 1782585 - wasm: Generalize validation to multiple memories. r?jseward
Attachment #9319834 - Attachment description: WIP: Bug 1782585 - wasm: Generalize Instance to multiple memories. → Bug 1782585 - wasm: Generalize Instance to multiple memories. r?jseward
Attachment #9319836 - Attachment description: WIP: Bug 1782585 - wasm: Let active data segments specify multiple memories. → Bug 1782585 - wasm: Let active data segments specify multiple memories. r?jseward
Attachment #9319837 - Attachment description: WIP: Bug 1782585 - wasm: Generalize memory.size and memory.grow for multiple memories. → Bug 1782585 - wasm: Generalize memory.size and memory.grow for multiple memories. r?jseward
Attachment #9319838 - Attachment description: WIP: Bug 1782585 - wasm: Generalize memory.fill for multiple memories. → Bug 1782585 - wasm: Generalize memory.fill for multiple memories. r?jseward
Attachment #9319839 - Attachment description: WIP: Bug 1782585 - wasm: Generalize memory.init for multiple memories. → Bug 1782585 - wasm: Generalize memory.init for multiple memories. r?jseward
Attachment #9319840 - Attachment description: WIP: Bug 1782585 - wasm: Generalize memory.copy for multiple memories. → Bug 1782585 - wasm: Generalize memory.copy for multiple memories. r?jseward

This commit generalizes validation and execution of memory.discard
to be able to use non-zero memories.

Depends on D170985

Attachment #9319841 - Attachment description: WIP: Bug 1782585 - wasm: Generalize load/store instructions for multiple memories. → Bug 1782585 - wasm: Generalize load/store instructions for multiple memories. r?jseward
Attachment #9319842 - Attachment description: WIP: Bug 1782585 - wasm: Import multi-memory spec tests. → Bug 1782585 - wasm: Import multi-memory spec tests. r?jseward
Attachment #9319903 - Attachment description: WIP: Bug 1782585 - wasm: Update error messages in tests for bad index → Bug 1782585 - wasm: Update error messages in tests for bad index. r?jseward

A multi-memory spec test adds an assertion that we do not
decode more bytes than possible to fit in an i32 limit.

Depends on D171023

  • Rename the first two fields of Instance to specify they are only
    for memory 0
    • Rename MemoryInstanceData::memoryBase to 'base' to be less redundant and
      match the Instance::memory0Base field
    • Use allocateInstanceDataBytesN for memory instance data

Depends on D178559

Attachment #9319835 - Attachment is obsolete: true

There are some r+ patches which didn't land and no activity in this bug for 2 weeks.
:rhunt, could you have a look please?
If you still have some work to do, you can add an action "Plan Changes" in Phabricator.
For more information, please visit BugBot documentation.

Flags: needinfo?(rhunt)
Flags: needinfo?(jseward)
Flags: needinfo?(rhunt)
Flags: needinfo?(jseward)
Pushed by rhunt@eqrion.net: https://hg.mozilla.org/integration/autoland/rev/1e9f10a24170 wasm: Add multi-memory feature flag. r=jseward https://hg.mozilla.org/integration/autoland/rev/b0ca19fa93a7 wasm: Generalize validation to multiple memories. r=jseward https://hg.mozilla.org/integration/autoland/rev/c4922e51fe53 wasm: Generalize Instance to multiple memories. r=jseward https://hg.mozilla.org/integration/autoland/rev/587ec45047a7 wasm: Let active data segments specify multiple memories. r=jseward https://hg.mozilla.org/integration/autoland/rev/8d81c8737512 wasm: Generalize memory.size and memory.grow for multiple memories. r=jseward https://hg.mozilla.org/integration/autoland/rev/2bbad33c3331 wasm: Generalize memory.fill for multiple memories. r=jseward https://hg.mozilla.org/integration/autoland/rev/1c2a75aa8eb0 wasm: Generalize memory.init for multiple memories. r=jseward https://hg.mozilla.org/integration/autoland/rev/0123fad4d87a wasm: Generalize memory.copy for multiple memories. r=jseward https://hg.mozilla.org/integration/autoland/rev/33cdd2b0520b wasm: Generalize memory.discard for multiple memories. r=jseward https://hg.mozilla.org/integration/autoland/rev/472b79690226 wasm: Generalize load/store instructions for multiple memories. r=jseward https://hg.mozilla.org/integration/autoland/rev/d76be145040e wasm: Import multi-memory spec tests. r=jseward https://hg.mozilla.org/integration/autoland/rev/96e5b38b9f3e wasm: Update error messages in tests for bad index. r=jseward https://hg.mozilla.org/integration/autoland/rev/0ac5a0f4a53c wasm: Decode I32 limits as varU32. r=yury https://hg.mozilla.org/integration/autoland/rev/bd073b885af3 wasm: Cleanup instance data for multi-memory. r=yury https://hg.mozilla.org/integration/autoland/rev/728f4a4d08f5 apply code formatting via Lando
Regressions: 1842293
Blocks: 1842966
Depends on: 1835784
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: