WebAssembly / WebAssembly/threads

Make shared tables a validation failure

Open
#162 15 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
WebAssembly
Stars
767
Forks
54
PR merge metrics
No merged PRs in 30d

Description

Current Spec changes in Overview list this change to the limits type, which is shared between memories and tables:

The limits type now has an additional field specifying whether the linear memory or table is shared:

limits ::= {min u32, max u32?, share}
share  ::= unshared | shared

However, all operators, JavaScript API changes and spec tests describe only what happens with the shared WebAssembly memory, and I can't find any mentions of shared tables behaviour.

I'd like to understand what are the expectations for the implementer here - is this just a spec bug and these limits types are supposed to be split with only memlimits having a shared variant, or is it something we plan to support in the future on tables too, but is expected to throw a validation error meanwhile.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Read the Spec changes in Overview.md section first, then compare the documented operator, JavaScript API, and spec-test treatment of shared memories and tables. The work is done when the proposal clearly decides whether shared tables are rejected during validation or supported later, and the affected specification and tests reflect that decision.

Written by the indexing model from the issue text.

Assessment

Tech stack
wasm
Domain
compilers
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.