Linux
مُتحقَّق منه على x86_64. البناء من بذرة WebAssembly يحتاج مترجم C وCMake فقط.
المتطلبات
Debian, Ubuntu
sudo apt install git cmake build-essentialFedora
sudo dnf install git cmake gcc makeArch
sudo pacman -S git cmake base-develابنِ المترجم
git clone https://github.com/sultan-language/sultanc.git cd sultanc ./build.sh --bootstrap=wasmثبّته في
PATHمع سوباكسcd .. git clone https://github.com/sultan-language/supax.git cd supax tools/install.sh ../sultancيضع
sultancومكتبته القياسية وسوباكس في~/.supaxويضيفه إلىPATH. افتح نافذة طرفية جديدة بعدها.تأكد
sultanc --version
macOS
مُتحقَّق منه على Apple Silicon (arm64). البناء من بذرة WebAssembly يحتاج مترجم C وCMake فقط.
المتطلبات
أدوات سطر الأوامر من Xcode، وCMake (هنا من Homebrew):
xcode-select --installbrew install cmakeابنِ المترجم
git clone https://github.com/sultan-language/sultanc.git cd sultanc ./build.sh --bootstrap=wasmثبّته في
PATHمع سوباكسcd .. git clone https://github.com/sultan-language/supax.git cd supax tools/install.sh ../sultancيضع
sultancومكتبته القياسية وسوباكس في~/.supaxويضيفه إلىPATH. افتح نافذة طرفية جديدة بعدها.تأكد
sultanc --version
Windows
لا خلفية أصلية على Windows بعد، فالبناء هناك يمر عبر LLVM.
المتطلبات
مترجم C، وCMake 3.21 أو أحدث، وصدفة تشغّل
build.sh، وحزمة LLVM من 19 إلى 23 فيهاLLVM-C.libوLLVM-C.dll. وإن لم يجدها البناء، فحدد مكانها بـSULTANC_LLVM_ROOT.ابنِ المترجم
git clone https://github.com/sultan-language/sultanc.git cd sultanc ./build.sh --bootstrap=c --enable-llvm --backend=llvmثبّته في
PATHمع سوباكسcd .. git clone https://github.com/sultan-language/supax.git cd supax powershell -ExecutionPolicy Bypass -File tools\install.ps1تأكد
sultanc --version
FreeBSD
لا يُبنى المترجم على الجهاز نفسه: ابنِه أولا على Linux (x86_64)، ثم ترجم منه مترجما لهذا النظام.
ابنِ المترجم (Linux)
git clone https://github.com/sultan-language/sultanc.git cd sultanc ./build.sh --bootstrap=wasmترجم مترجما لهذا النظام
x86_64-freebsd
./build/sultanc --target=x86_64-freebsd \ --module-source=compiler.backend.provider.llvm.llvm_codegen=compiler/backend/provider/llvm/unavailable.sn \ compiler/main.sn -o sultancaarch64-freebsd
./build/sultanc --target=aarch64-freebsd \ --module-source=compiler.backend.provider.llvm.llvm_codegen=compiler/backend/provider/llvm/unavailable.sn \ compiler/main.sn -o sultancتأكد
انقل
sultancإلى الجهاز وشغّله من مجلد فيهcompiler/وlibrary/(أو حددSULTANC_STD). يترجم لنظامه افتراضيا، ويترجم نفسه أيضا. ولا يتوفرsultanc runهناك: ترجم البرنامج وشغّل الملف التنفيذي.
Android
لا يُبنى المترجم على الجهاز نفسه: ابنِه أولا على Linux (x86_64)، ثم ترجم منه مترجما لهذا النظام.
ابنِ المترجم (Linux)
git clone https://github.com/sultan-language/sultanc.git cd sultanc ./build.sh --bootstrap=wasmترجم مترجما لهذا النظام
aarch64-android
./build/sultanc --target=aarch64-android \ --module-source=compiler.backend.provider.llvm.llvm_codegen=compiler/backend/provider/llvm/unavailable.sn \ compiler/main.sn -o sultancx86_64-android
./build/sultanc --target=x86_64-android \ --module-source=compiler.backend.provider.llvm.llvm_codegen=compiler/backend/provider/llvm/unavailable.sn \ compiler/main.sn -o sultancتأكد
انقل
sultancإلى الجهاز وشغّله من مجلد فيهcompiler/وlibrary/(أو حددSULTANC_STD). يترجم لنظامه افتراضيا، ويترجم نفسه أيضا. ولا يتوفرsultanc runهناك: ترجم البرنامج وشغّل الملف التنفيذي.
طرق البناء
يبدأ البناء من بذرة صغيرة ثم يبني المترجم نفسه على مراحل. تختار البذرة بـ --bootstrap:
--bootstrap=wasm | بذرة WebAssembly: مترجم C وCMake فقط |
--bootstrap=c | بذرة C (الافتراضية): مترجم C وCMake وLLVM من 19 إلى 23 |
--bootstrap=existing | مترجم مبني مسبقا: خطوة واحدة، نحو دقيقة. للتطوير |
أضف --enable-llvm لتضمين خلفية LLVM في المترجم. يجد البناء LLVM بنفسه في مواقعه المعتادة، ومنها Homebrew، أو حدده بـ LLVM_CONFIG=/path/to/llvm-config.
التالي: دليل البدء، أو جولة في اللغة.