|
| 1 | +# SPDX-License-Identifier: PMPL-1.0-or-later |
| 2 | +# HAL (hal.science) deposit metadata for typed-wasm |
| 3 | +# Use this when submitting via https://hal.science/submit |
| 4 | +# |
| 5 | +# HAL accepts PDF upload + manual metadata entry. |
| 6 | +# This file documents the values to enter. |
| 7 | + |
| 8 | +title: "typed-wasm: Applying Database Query Type Safety to WebAssembly Linear Memory" |
| 9 | + |
| 10 | +authors: |
| 11 | + - name: "Jonathan D.A. Jewell" |
| 12 | + email: "j.d.a.jewell@open.ac.uk" |
| 13 | + affiliation: "The Open University" |
| 14 | + country: "United Kingdom" |
| 15 | + |
| 16 | +abstract: | |
| 17 | + WebAssembly (Wasm) linear memory is an untyped byte array shared across |
| 18 | + module boundaries. When independently compiled modules — potentially from |
| 19 | + different source languages — read and write the same memory regions, no |
| 20 | + existing type system covers the cross-module interface. We present |
| 21 | + typed-wasm, a type system that applies a 10-level type safety framework, |
| 22 | + originally developed for database query languages, to Wasm linear memory. |
| 23 | + The system treats contiguous memory segments as typed region schemas and |
| 24 | + load/store operations as typed projections verified against those schemas |
| 25 | + at compile time. We formalise the system in Idris 2 using Quantitative |
| 26 | + Type Theory (QTT), providing proofs of bounds safety, aliasing freedom, |
| 27 | + effect purity, lifetime validity, and linearity — all erased before code |
| 28 | + generation, yielding zero runtime overhead. Our principal contribution is |
| 29 | + multi-module schema agreement: a static verification that independently |
| 30 | + compiled Wasm modules agree on the layout, types, alignment, and |
| 31 | + invariants of shared memory regions — a property that no source-level |
| 32 | + type system, and no existing Wasm proposal, can express. |
| 33 | +
|
| 34 | +# HAL document type |
| 35 | +document_type: preprint # "preprint" or "conference paper" or "journal article" |
| 36 | + |
| 37 | +# HAL domain classification |
| 38 | +domains: |
| 39 | + - "info.info-pl" # Computer Science / Programming Languages |
| 40 | + - "info.info-se" # Computer Science / Software Engineering |
| 41 | + - "info.info-lo" # Computer Science / Logic in Computer Science |
| 42 | + |
| 43 | +keywords: |
| 44 | + - WebAssembly |
| 45 | + - type safety |
| 46 | + - dependent types |
| 47 | + - linear memory |
| 48 | + - multi-module verification |
| 49 | + - quantitative type theory |
| 50 | + - memory safety |
| 51 | + - formal verification |
| 52 | + - Idris2 |
| 53 | + |
| 54 | +language: en |
| 55 | + |
| 56 | +# File to upload |
| 57 | +file: typed-wasm.pdf # Compile typed-wasm.tex first |
| 58 | + |
| 59 | +# License for HAL deposit |
| 60 | +license: "CC-BY-4.0" # HAL prefers Creative Commons; PMPL for code, CC-BY for the paper text |
| 61 | + |
| 62 | +# Additional links |
| 63 | +software: "https://github.com/hyperpolymath/typed-wasm" |
0 commit comments