انتقل إلى المحتوى

اللغات والتشغيل البيني

اللغات التي يشغّلها Elide، وكيف تبدأ كلًّا منها، وكيف تستدعي Python و JavaScript و WebAssembly بعضها بعضًا عبر --interop وفي REPL.

في هذه الصفحة

يشغّل Elide هذه اللغات من ملف تنفيذي واحد:

اللغةالحالةتعمل بوصفهاالبدء باستخدامالتشغيل البيني
JavaScriptمدعومةسكربتelide app.js، elide -s CODE⁦Python:⁩ --interop؛ ⁦WASM:⁩ دون خيار
TypeScriptمدعومةسكربت، مع حذف الأنواعelide app.ts، elide -l ts -s CODEمثل JavaScript
PythonتجريبيةPython 3.13elide app.py، elide python -m MOD⁦JavaScript:⁩ --interop
WebAssemblyتجريبيةأمر WASI Preview 1elide 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.

0:22 / 0:22

استدعاء JavaScript من Python

# sum.py
from elide import js

print(js("[1,2,3].reduce((a,b)=>a+b,0)"))
elide --interop python sum.py
6

استيراد 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.mjs
hello elide

التصدير default هو وحدة Python. استخدم نقطة دخول .mjs.

دون --interop

لا يشغّل كل برنامج إلا لغة نقطة دخوله، إضافةً إلى WebAssembly في ⁦JS/TS.⁩ وتفشل الاستدعاءات بين اللغات:

البرنامجالخطأ
sum.pyValueError: polyglot language 'js' not found
main.mjsCannot import 'mod.py': JavaScript entries run without Python. Re-run with --interop to use it.

لا تمرّر --interop إلا إلى البرامج التي تستدعي شيفرة بلغات أخرى. ومع --interop تفشل خيوط Python بالخطأ Creating threads is not allowed.

JavaScript و WebAssembly

import { add } from "./math.wasm";
console.log(add(1, 2));

تعمل استيرادات .wasm وواجهة WebAssembly في كل برامج JavaScript و TypeScript. وعند تثبيت Python، تفشل الوحدات التي تستخدم تعليمات SIMD بالخطأ Vector instructions are not enabled.

في REPL

يشارك REPL القيم بين اللغات دون --interop؛ راجع REPL التفاعلي.

أمثلة

هل كانت هذه الصفحة مفيدة؟