Egel هي لغة برمجة نصية وظيفية متزامنة غير مكتوبة تعتمد على إعادة الكتابة المتحمسة مع بناء جملة موجز ولكنه قوي بشكل ملحوظ.
تم تطوير هذا المترجم على Linux/MacOS/BSD ويستخدم icu4c لدعم Unicode، وfmt للتنسيق، وffi كواجهة وظيفة أجنبية، وGNU Lightning كواجهة خلفية مسبقة.
يمكن تجميع المترجم باستخدام مترجم C++ الحالي ويستخدم cmake للبناء. بشكل عام، سوف تحتاج إلى الوصول إلى الجذر لبناء egel.
هناك طريقتان تقريبًا توفر بهما أنظمة التشغيل ومديرو الحزم مكتبات C++.
نموذج مفتوح المصدر (مختلف Unixes وBSDs) حيث يتم تجميع مكتبات C++ ونشرها بواسطة موزع نظام التشغيل. استخدم مدير الحزم الخاص بك لتثبيت libicu، وlibffi، وfmt، وGNU Lightning.
تحذير: بشكل استثنائي، Ubuntu/Debian لا يأتي مع GNU Lightning. من المفترض أن تقوم بتجميع تلك الحزمة وتثبيتها قبل تجميع المترجم.
النموذج المعتمد على البائع (MacOS وWindows) حيث لا يتم توفير مكتبات C++ عادةً نظرًا لضعف الارتباط بها، وحيث يقوم الشخص عادةً بتجميع هذه المكتبات من البداية وربطها بشكل ثابت أو توزيعها مع التطبيق. يتم توفير الروابط إلى البائعين كوحدات فرعية لـ git في دليل البائعين، وأنت وحدك هنا، وستحتاج إلى تنزيل هذه المكتبات وتجميعها. يوجد README.md منفصل في دليل البائع والذي من شأنه أن يساعد إلى حد ما.
يتم توفير ملفات CMake لكلا الطرازين، حدد النموذج الذي تريد استخدامه وأعد تسميته إلى CMakeLists.txt
.
يتم أيضًا توفير برنامج نصي cmake للبناء الثابت استنادًا إلى نموذج البائع.
بعد ذلك يتم عمل المترجم مع cmake
بالطريقة القياسية. قم بتشغيل الأوامر التالية على نظام Linux.
mkdir build
cd build
cmake ..
make
ملاحظة: بالنسبة لدول مجلس التعاون الخليجي الأقدم، تحتاج أحيانًا إلى إلغاء التعليق على قاعدة stdc++fs
.
من المفترض أن يمنحك ذلك مترجمًا باسم egel
وعددًا من ملفات كائنات Egel القابلة للتحميل ديناميكيًا في دليل build
.
بالنسبة لعملية التثبيت على مستوى النظام، make install
بعد الإنشاء كجذر.
(لم يعد MacOS dyld يبحث في /usr/local/lib بعد الآن، قم بتعيين المسار.)
في بعض الأنظمة، يجب تعيين متغير البيئة EGEL_PATH
. راجع صفحة الرجل لمزيد من المعلومات حول ذلك.
إذا كنت لا تريد القيام بذلك، يرجى ملاحظة أنك تحتاج فقط إلى المترجم المسمى egel
والمقدمة في دليل include
للمهام البسيطة.
تسمح ملفات makefiles التي تم إنشاؤها بواسطة Cmake بالتثبيت المحلي باستخدام الأمر:
make DESTDIR=~ install
في هذه الحالة، سيتم تثبيت مكونات Egel في مجلدات ~/usr/local
ويمكنك الرجوع إلى هذه المكونات عن طريق إضافة الأوامر التالية إلى ملف مورد الصدفة الخاص بك، على الرغم من أن البنية المحددة قد تختلف.
export PATH=~/usr/local/bin:$PATH
export EGEL_PATH=.:~/usr/local/lib/egel
هناك صفحة دليل يمكنك الرجوع إليها، ويجب تثبيتها، أو قراءة المقدمة القصيرة التالية للمترجم الفوري على الإنترنت.
للحصول على قائمة من combinators المضمنة انظر هنا.
لا يوفر المترجم تحرير سطر الأوامر، قد ترغب في تغليفه بالأمر alias egel="rlwrap egel"
.
يخصص المترجم الكثير من الكائنات قصيرة العمر. إذا كنت تريد القليل من السرعة الإضافية، فقد يكون من المفيد تبديل المُخصص.
أستخدم jemalloc
على Linux عن طريق الإعداد LD_PRELOAD=`jemalloc-config --libdir`/libjemalloc.so.`jemalloc-config --revision
.