Elide виконує ці мови з одного виконуваного файлу:
| Мова | Статус | Як виконується | Як запустити | Взаємодія |
|---|---|---|---|---|
| JavaScript | Підтримується | Скрипт | elide app.js, elide -s CODE | Python: --interop; WASM: без прапорця |
| TypeScript | Підтримується | Скрипт, типи видаляються | elide app.ts, elide -l ts -s CODE | Як JavaScript |
| Python | Експериментально | Python 3.13 | elide app.py, elide python -m MOD | JavaScript: --interop |
| WebAssembly | Експериментально | Команда WASI Preview 1 | elide app.wasm (_start або _main) | З JS/TS, без прапорця |
| Java, Kotlin | Підтримується | Компілюється, виконується на вбудованому JDK | elide run Main.kt, проєкти elide.pkl | Немає |
| Pkl | Підтримується | Конфігурація | Маніфести elide.pkl | Немає |
elide info виводить мови у вашому виконуваному файлі; elide setup python додає Python. Сторінки за мовами:
JavaScript & TypeScript, Python, Java & Kotlin,
WebAssembly.
Виклик JavaScript із Python
# sum.py
from elide import js
print(js("[1,2,3].reduce((a,b)=>a+b,0)"))elide --interop python sum.py6Імпорт Python із JavaScript
# 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 elideЕкспорт default — це модуль Python. Використовуйте точку входу .mjs.
Без --interop
Кожна програма виконує лише мову своєї точки входу, а для JS/TS ще й WebAssembly. Виклики між мовами завершуються помилкою:
| Програма | Помилка |
|---|---|
sum.py | ValueError: polyglot language 'js' not found |
main.mjs | Cannot import 'mod. |
Передавайте --interop лише програмам, які викликають код іншими мовами. Під --interop потоки Python завершуються
помилкою Creating threads is not allowed.
JavaScript і WebAssembly
import { add } from "./math.wasm";
console.log(add(1, 2));Імпорт .wasm і API WebAssembly працюють у будь-якій програмі на JavaScript і TypeScript. Якщо встановлено Python,
модулі з інструкціями SIMD завершуються помилкою Vector instructions are not enabled.
У REPL
REPL передає значення між мовами без --interop; див. Інтерактивний REPL.