From 1ea43e7412a96bda3729016df2c81bbb807f32e3 Mon Sep 17 00:00:00 2001 From: Dan Gohman Date: Wed, 29 Oct 2025 08:46:15 -0700 Subject: [PATCH] Add some rationale comments to Lime1.md. In the October CG meeting, there were some observations that some of Lime1's choices were not obvious. This PR adds some rational comments aiming to clarify these choices. --- Lime.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/Lime.md b/Lime.md index 51a2c42..23832ef 100644 --- a/Lime.md +++ b/Lime.md @@ -63,6 +63,14 @@ bulk-memory-opt is a subset of the [bulk-memory] feature that contains just the It does not include the table instructions, `memory.init`, or `data.drop`. +#### Rationale + +`memory.init` and `data.drop` require implementations to support passive data +segments, which entail significant new runtime complexity. + +The `table.*` instructions require implementations to support mutable tables, +which is not commonly needed in linear-memory-oriented languages. + ### call-indirect-overlong call-indirect-overlong is a subset of the [reference-types] feature that contains @@ -71,5 +79,13 @@ byte to an LEB encoding which may have an overlong encoding. It does not include the actual reference types. +#### Rationale + +Actual reference types imply significant new runtime complexity. + +The call-indirect overlong instruction encoding is expected to be very +easy to support in any decoder, and it does not entail any new +runtime complexity. + [bulk-memory]: https://github.com/WebAssembly/bulk-memory-operations/blob/master/proposals/bulk-memory-operations/Overview.md [reference-types]: https://github.com/WebAssembly/reference-types/blob/master/proposals/reference-types/Overview.md