Elide ejecuta estos lenguajes desde un único binario:
| Lenguaje | Estado | Se ejecuta como | Iniciar con | Interoperabilidad |
|---|---|---|---|---|
| JavaScript | Compatible | Script | elide app.js, elide -s CODE | Python: --interop; WASM: sin opción |
| TypeScript | Compatible | Script, sin tipos | elide app.ts, elide -l ts -s CODE | Como JavaScript |
| Python | Experimental | Python 3.13 | elide app.py, elide python -m MOD | JavaScript: --interop |
| WebAssembly | Experimental | Comando WASI Preview 1 | elide app.wasm (_start o _main) | Desde JS/TS, sin opción |
| Java, Kotlin | Compatible | Compilado, se ejecuta en el JDK incluido | elide run Main.kt, proyectos elide.pkl | Ninguna |
| Pkl | Compatible | Configuración | Manifiestos elide.pkl | Ninguna |
elide info lista los lenguajes de su binario; elide setup python añade Python. Páginas por lenguaje:
JavaScript y TypeScript, Python, Java y Kotlin,
WebAssembly.
Python llama a JavaScript
# sum.py
from elide import js
print(js("[1,2,3].reduce((a,b)=>a+b,0)"))elide --interop python sum.py6JavaScript importa Python
# mod.py
def greet(name):
return f"hello {name}"// main.mjs
import mod from "./mod.py";
console.log(mod.greet("elide"));elide --interop main.mjshello elideLa exportación default es el módulo de Python. Use una entrada .mjs.
Sin --interop
Cada programa ejecuta solo su lenguaje de entrada, más WebAssembly en JS/TS. Las llamadas entre lenguajes fallan:
| Programa | Error |
|---|---|
sum.py | ValueError: polyglot language 'js' not found |
main.mjs | Cannot import 'mod. |
Pase --interop solo a los programas que hacen llamadas entre lenguajes. Con --interop, los hilos de Python fallan
con Creating threads is not allowed.
JavaScript y WebAssembly
import { add } from "./math.wasm";
console.log(add(1, 2));Las importaciones de .wasm y la API WebAssembly funcionan en todos los programas de JavaScript y TypeScript. Cuando
Python está instalado, los módulos que usan instrucciones SIMD fallan con Vector instructions are not enabled.
En el REPL
El REPL comparte valores entre lenguajes sin --interop; consulte REPL interactivo.