WebAssembly y WASI
WebAssembly apoyo en el operativo LLVM El compilador es actualmente un objetivo de emisión de objetos, no una plataforma de aplicaciones alojada.
Nivel declarado actual
La matriz canónica Gate 14 declara wasm32-wasi en estos niveles:
| Capacidad | Estado |
|---|---|
| Análisis y comprobaciones semánticas. | apoyado |
| LLVM Emisión de infrarrojos | apoyado |
| Emisión de objetos | apoyado |
| Bibliotecas seed estáticas o dinámicas | no soportado |
| Executable/module enlace | no soportado |
| Ejecución alojada | no soportado |
| Servicios de tiempo de ejecución WASI | no implementado |
| FFI, programador y artefactos de paquete | no soportado |
El humo objetivo más amplio del compilador también ejerce wasm32-freestanding IR y emisión de objetos. Ese humo no establece un navegador estable ABI, enlaces de JavaScript, tiempo de ejecución de comandos WASI ni contrato de módulo ejecutable.
Emitiendo un objeto
Utilice el compilador directo para la capacidad declarada actualmente:
seed/compiler/llvm/build/seed \
--target wasm32-wasi \
--emit-object app.o \
app.sd
LLVM IR se puede inspeccionar sin vincular:
seed/compiler/llvm/build/seed \
--target wasm32-wasi \
--emit-llvm app.ll \
app.sd
Estos comandos sólo producen artefactos del compilador. Actualmente, el repositorio no promete que app.o pueda vincularse y ejecutarse como un comando WASI.
No definido actualmente
El compilador operativo aún no define un contrato WebAssembly estable para:
- funciones seed exportadas o alteración de nombres;
- funciones de host importadas;
- JavaScript/browser pegamento;
- ayudantes de asignación de memoria lineal;
- propiedad
string,bytes, oshared_bytescruzar el límite del módulo; - Argumentos WASI, entorno, archivos, relojes, aleatoriedad, sockets o subprocesos;
seed runo--rundirecto a través de Wasmtime;- WebAssembly artefactos del paquete o reutilizables
.sdibibliotecas.
No reutilice las exportaciones de ayuda, las convenciones pointer/length ni los comandos de ejecución de la documentación del compilador reemplazado como comportamiento actual.
Requisitos de cierre
WebAssembly se convierte en un objetivo de aplicación solo cuando su fila de matriz declarada se expande y está respaldada por pruebas de vinculación, ejecución y servicios de tiempo de ejecución. ABI, propiedad en todo imports/exports, diagnósticos y artefactos de paquete. Hasta entonces, descríbalo precisamente como LLVM IR/object apoyo.
La fila de capacidad autorizada es seed/compiler/llvm/tests/GATE14_TARGET_MATRIX.tsv; El trabajo planificado pertenece a seed/compiler/llvm/ROADMAP.md.