يمكن بناء الأسس من الشفرة المصدرية على نظامي لينكس وماك أو إس. يمكن بناء الأسس على أي نظام لينكس طالما يتوفر فيه الإصدار 7 أو أعلى من GCC. بالنسبة لنظام ماك أو إس فقد جربنا البناء على الإصدار 10.13 من ماك أو إس مع الإصدار 9.3 من Xcode. قد يكون ممكنا بناء الأسس على نسخة أقدم من ماك أو إس لكننا لم نجرب ذلك.

الاعتماديات الخارجية

ستحتاج إلى GCC و CMake و Python و Pip لتتمكن من بناء المشروع. كذلك فإن لLLVM اعتمادياتها مثل zlib و valgrind والتي قد تضطر لتنصيبها يدويًا. ولاستخدام https في مكتبة التنفيذ المعيارية ستحتاج أيضاً إلى libssl-dev.
لتنصيب أدوات البناء في توزيعة أوبونتو استخدم الأمر التالي:
$ sudo apt-get install gcc g++ cmake python3 python3-pip zlib1g-dev libssl-dev
لتنصيب هذه الأدوات على توزيعات غير أوبونتو ستحتاج لمراجعة وثائق تلك التوزيعات. لاحظ أن شفرة البناء تفترض أن اسم مترجم بايثون python3 وهو الحال على توزيعة أوبونتو، فإن كنت على توزيعة أخرى قد تحتاج لإنشاء رابط أو تعديل الملف build.sh.
لن تحتاج لتنصيب مكتبة LLVM يدويًا لأن شفرة البناء ستتولى ذلك الأمر.
إذا أردت أيضًا إنشاء حزم تنصيب فستحتاج أيضًا لتنصيب fpm.

بدء البناء

بعد تنصيب الاعتماديات كل ما عليك فعله تنفيذ شفرة البناء build.sh والتي ستتولى:
  • تنزيل وبناء مكتبة LLVM إن لم تُكن مبنية أصلاً.
  • تنزيل وبناء مكتبة libcurl إن لم تكن مبنية أصلاً.
  • تنزيل وبناء مكتبة libzip إن لم تكن مبنية أصلاً.
  • بناء الأسس.
  • إنشاء حزمة تنصيب إن طُلب ذلك.
تنفيذ شفرة البناء للمرة الأولى سيستغرق وقتًا طويلاً لبناء مكتبة LLVM وهي مكتبة ضخمة. عمليات البناء اللاحقة لن تُعيد بناء LLVM (أو أي من الاعتماديات) وبالتالي ستكون أسرع بكثير. تنفيذ شفرة البناء يتم بالشكل التالي:
$ cd <path-to-Alusus>
$ ./Tools/build.sh --bloc . --iloc .
شفرة build.sh تستلم المعطيات التالية:
  • --bloc <مسار>: المسار الذي سيوضع فيه مجلد Builds الذي ستتم فيه عملية البناء.
  • --iloc <مسار>: المسار الذي ستوضع فيه مجلدات Bin و Lib و Include بعد الانتهاء من البناء.
  • --btype <صيغة البناء>: تحديد نوع البناء. القيمة d وهي المبدئية تحدد البناء بصيغة debug والقيمة r تحدد البناء بصيغة release بينما يفعل الخيار p الشيء ذاته لكن مع إنشاء حزمة تنصيب أيضًا.
عند البناء بصيغة p تقوم شفرة البناء بإنشاء حزمتي deb و rpm إذا كان البناء يتم على نظام لينكس، أما إذا كان البناء على نظام ماك أو إس فإن الشفرة ستنشئ حزمة pkg.

تنفيذ الاختبارات الآلية


تنفيذ الاختبارات يسير جداً. كل ما عليك فعله هو تنفيذ الأمر التالي داخل مجلد بناء الأسُس (Builds/Debug في المثال أعلاه) بعد الانتهاء من البناء:
$ make test

استخدام لغة الأسُس


بعد الانتهاء من البناء سيكون الملف التنفيذي داخل Bin وستكون المكتبات داخل Lib. تستطيع تنفيذ الأمثلة داخل المجلد Examples كما يلي:
$ export PATH=<path-to-Alusus>/Bin:$PATH
$ cd <path-to-Alusus>/Examples/General
$ alusus hello_world.alusus
اسم الملف التنفيذي عند البناء بصيغة التنقيح (debug) يكون alusus.dbg. لو تم بناؤها بصيغة النشر (release) فإن اسم الملف التنفيذي يكون alusus، أي بدون الإضافة dbg.

إذا تم بناء القلب بصيغة التنقيح (debug) فإن بالإمكان تدوين الأحداث (logging) وذلك بإضافة معطى log-- إلى البرنامج وإعطائه رقماً يحدد مستوى التفاصيل المرجو كما في المثال التالي:

$ alusus helloworld.alusus --log 16
مستوى التفاصيل يحدد بمرتبات ثنائية حيث تشير كل مرتبة إلى مستوى معين من التدوين يُمكّن إذا كانت قيمة تلك المرتبة 1 ويُعطّل إذا كانت قيمتها 0. الجدول التالي يوضح تفاصيل هذه المرتبات:
المرمّز، المستوى الأدنى = 1،
المرمّز، المستوى المتوسط = 2،
المرمّز، المستوى العلوي = 4،
المُعرب، المستوى الأدنى = 8،
المُعرب، المستوى المتوسط = 16،
المُعرب، المستوى العلوي = 32
يُمكن دمج أكثر من مستوى في نفس الوقت. على سبيل المثال القيمة 7 تعني تدوين كل مستويات المرمّز.