منصوبے کے بارے میں
ایکسیج ایک تیاری شدہ پروگرامنگ زبان ہے جو بلند کارکردگی، مددگار غلطی پیغامات اور رست کی طرح میموری کے انتظام پر مرکز ہے۔ ہر سائز کو صاف طور پر بیان کیا جانا چاہئے — بے کوئی `int` قسم موجود نہیں ہے۔ پروگرامات LLVM کے ذریعے نیٹیو کوڈ میں یا دو AOT انٹرپیٹرز میں سے کسی ایک کے ذریعے پیش کیے جاتے ہیں۔
کمپائلر C++20 کے ذریعے LLVM کی اصل C++ API کے ساتھ لکھا گیا ہے، جس کے لیے LLVM 23 یا نئی ترین، CMake اور Ninja کی ضرورت ہے۔ سورس فائلز کی توسیع `.xag` ہے۔ ٹولچین میں لیکسنگ، پارسینگ، ٹائپ چیکنگ اور IR انسپیکشن کے لیے کمانڈ شامل ہیں۔
تین انجن ہیں: ایک ٹیسٹ انٹرپیٹر (واضح طور پر صحیح، لیکن آہستہ)، ایک تیز انٹرپیٹر (فلیٹ کوڈ کے لیے آپٹمائز کردہ) اور ایک AOT نیٹیو بیک اینڈ۔ سبھی تین ایک ہی مشترکہ رنٹائم کال کرتے ہیں، اس لیے وہ رنٹائم کے برتاؤ پر اتفاق کرتے ہیں۔ جب انجنز میں اختلاف ہوتا ہے، تو پروجیکٹ کا تعین ہوتا ہے کہ کونسا انجن نہیں ہے۔
دسیمال ارثی حساب کی تصدیق کی جاتی ہے: سافٹ ویئر کی تعمیر کو پائیتھن کے `decimal` (libmpdec) کے ساتھ 400,000 مقدمات کے ذریعے چیک کیا جاتا ہے، اور POWER ہارڈ ویئر ڈیسیمال یونٹس کے ساتھ QEMU ایمولیشن کے ذریعے 20,000 اضافی مقدمات کے لیے۔
یونیکوڈ سپورٹ UAX #29 کے مطابق مکمل طور پر ہے، جس میں گرافیم کلاسٹر کاؤنٹنگ شامل ہے، Unicode 17.0.0 ٹیبلز کے ساتھ۔ تمام 766 یونیکوڈ کنفرمنس کی صورتحالیں ٹیسٹ سٹیو میں چلائی جاتی ہیں۔
ایک اوراکل جنریٹر (`generator/`) رینڈم ایکسیج پروگرام لکھتا ہے اور انہیں تمام انجنز میں چیک کرتا ہے تاکہ اختلافات کو پتہ چل جائے۔ جنریٹر Rust میں لکھا گیا ہے اور کوئی بیرونی پیکجز نہیں ہیں۔
لائسنس: Apache-2.0 WITH LLVM-exception۔ استعمال مفت ہے؛ کمپائلر یا رنٹائم کو تبدیل کرنے کے لیے Apache کے شرائط کے تحت اشارہ کرنا ضروری ہے۔
نوٹ: یہ ابھی تک جاری کام ہے — کچھ بھی مستحکم نہیں ہے۔ ریپوزٹری میں موجود زیادہ تر کوڈ زبان کے ڈیزائنر کی ہدایت کے تحت AI کے ذریعے تیار کیا گیا ہے۔
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.