Elide führt diese Sprachen aus einem einzigen Binary aus:
| Sprache | Status | Läuft als | Starten mit | Interop |
|---|---|---|---|---|
| JavaScript | Unterstützt | Skript | elide app.js, elide -s CODE | Python: --interop; WASM: ohne Flag |
| TypeScript | Unterstützt | Skript, Typen entfernt | elide app.ts, elide -l ts -s CODE | Wie JavaScript |
| Python | Experimentell | Python 3.13 | elide app.py, elide python -m MOD | JavaScript: --interop |
| WebAssembly | Experimentell | WASI-Preview-1-Befehl | elide app.wasm (_start oder _main) | Aus JS/TS, ohne Flag |
| Java, Kotlin | Unterstützt | Kompiliert, läuft auf dem mitgelieferten JDK | elide run Main.kt, elide.pkl-Projekte | Keine |
| Pkl | Unterstützt | Konfiguration | elide.pkl-Manifeste | Keine |
elide info listet die Sprachen in Ihrem Binary auf; elide setup python fügt Python hinzu. Seiten je Sprache:
JavaScript & TypeScript, Python, Java & Kotlin,
WebAssembly.
Python ruft JavaScript auf
# sum.py
from elide import js
print(js("[1,2,3].reduce((a,b)=>a+b,0)"))elide --interop python sum.py6JavaScript importiert 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 elideDer default-Export ist das Python-Modul. Verwenden Sie einen .mjs-Einstiegspunkt.
Ohne --interop
Jedes Programm führt nur seine Einstiegssprache aus, bei JS/TS zusätzlich WebAssembly. Aufrufe zwischen Sprachen schlagen fehl:
| Programm | Fehler |
|---|---|
sum.py | ValueError: polyglot language 'js' not found |
main.mjs | Cannot import 'mod. |
Übergeben Sie --interop nur an Programme, die zwischen Sprachen aufrufen. Unter --interop schlagen Python-Threads
mit Creating threads is not allowed. fehl.
JavaScript und WebAssembly
import { add } from "./math.wasm";
console.log(add(1, 2));.wasm-Importe und die WebAssembly-API funktionieren in jedem JavaScript- und TypeScript-Programm. Ist Python
installiert, schlagen Module mit SIMD-Instruktionen mit Vector instructions are not enabled fehl.
In der REPL
Die REPL teilt Werte zwischen Sprachen ohne --interop; siehe Interaktive REPL.