package wax-lib

  1. Overview
  2. Docs
Libraries for Wax, a Rust-like syntax for WebAssembly

Install

dune-project
 Dependency

Authors

Maintainers

Sources

wax-0.1.0.tbz
sha256=41b580846af8d41bdf6c3f005f62e38feda3e60fe2e9e4aa440db34ce515a153
sha512=4b3a181fcc7d743194a8647260870fb5190770066a197bcc48104c2b77fd40c643228b795c2bcd6b29a120820e969eb42a37a9bcec98b3f608d13f152d9f6579

doc/wax-lib.conversion/Wax_conversion/Sink_let/index.html

Module Wax_conversion.Sink_letSource

module_ m rewrites the local declarations of every function body to be more idiomatic. Each let x : t; declaration is pushed inward as far as possible: down to the first instruction that uses x, and into the innermost block / branch that contains every use of x. A declaration whose first use is an initial assignment (let x : t; ... x = e;, with e not mentioning x) is fused into let x : t = e;.

This is meant as a cleanup of From_wasm.module_ output, which emits all locals as bare declarations at the top of the function body. The rewrite preserves runtime semantics: a bare declaration generates no code, so moving it never reorders any computation, and fusion only relabels an assignment that already sat at the chosen position.