A Transactions Extension for Web Assembly
summary
Design and prototype of a WebAssembly transactions extension adds transactional types such as tstruct, transactional arrays and transactional linear memory, plus type-based access permissions and cast ops like Tref.cast.read and Tref.cast.write. A complete OAML reference implementation exists with most tests passing; a higher-performance port into Ben Titzer’s engine implements the opcodes and JIT paths and is nearly complete. Validator-level typing removes many runtime checks and a Wasm-to-Wasm optimizer eliminates redundant casts and can coalesce short transactions.
AI-written summary · about
chapters (16)
- 0:00Introduction
- 0:23Project overview
- 1:06Motivation for transactions
- 3:15Why WebAssembly
- 4:21Simple transactions extension
- 7:12ACID semantics
- 8:16Transactional scope
- 9:00Transactional memory
- 10:27Granularity and sets
- 11:11Heap access permissions
- 13:19Transactional structs example
- 15:07Design rationale
- 16:12Implementation status
- 18:40Q&A: undo and exceptions
- 20:48Q&A: optimizer improvements
- 21:52Closing remarks
related talks
01h 08mOn WebAssembly
43mMeet Your Future - WebAssembly
36mBringing honest computing to the WASM world
18mIndexed Types for a Statically Safe WebAssembly
01h 06mAs low-level as possible, but no lower
37mWebAssembly and How Web apps are Being Revolutionized
30mMechanising WebAssembly Well?
44mWebAssembly: the browser is now a real virtual machine
