typestar

Memoria lineal en WebAssembly

Una corrida plana de bytes, direccionada con aritmética propia.

(module
  ;; Linear memory is a flat run of bytes; store and load move i32s
  ;; at byte addresses the code computes itself.
  (memory (export "mem") 1)

  (func (export "stash") (param $slot i32) (param $value i32)
    (i32.store
      (i32.mul (local.get $slot) (i32.const 4))
      (local.get $value)))

  (func (export "fetch") (param $slot i32) (result i32)
    (i32.load (i32.mul (local.get $slot) (i32.const 4)))))

Cómo funciona

  1. (memory (export "mem") 1) declara una página de 64 KiB.
  2. i32.store toma dirección y valor; los lugares van cada 4 bytes.
  3. i32.load lee de vuelta la misma cuenta de direcciones.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
12
Caracteres a escribir
391
Tokens
84
Ritmo de tres estrellas
65 tpm

Al ritmo de tres estrellas de 65 tokens por minuto, este intento toma unos 78 segundos.

Escribe este fragmento

Paso 1 de 4 en Memoria; paso 16 de 28 en Fundamentos del lenguaje.

← Anterior Siguiente →