تعلّم كيفية تثبيت 8th محليًا لحل تمارين Exercism على جهازك الخاص
يُوزَّع 8th في ملف ZIP شامل يضمّ إصدارات من 8th لجميع المنصات التي يدعمها الإصدار الذي حمّلته. إصداراتك من 8th مرخّصة لك وحدك ولا يجوز مشاركتها.
بدءًا من صفحة Get 8th،
لاستخدام 8th، ستحتاج إلى فك ضغط ملف ZIP في أي مجلد يمكنك الوصول إليه.
يتضمّن ملف ZIP عددًا من المجلدات:
| المجلد | الوصف |
|---|---|
| bin | ملفات 8th التنفيذية لجميع المنصات المدعومة |
| docs | الدليل والبرامج التعليمية |
| libs | مكتبات دعم 8th (كود 8th) |
| samples | أكواد نموذجية تكمّل البرامج التعليمية والدليل |
| keys | ملف id.blob الذي يحتوي على مفاتيحك ومعلومات تسجيلك |
مستخدمو Pro+: لاحظ أن مفاتيح التشفير في id.blob فريدة لكل إصدار محدّد من 8th تحمّله، وهي مهمة لبناء تطبيقات مشفّرة قابلة للنشر. وإذا نقلت 8th خارج حزمة توزيعه ولم يتمكّن من العثور على id.blob، فإنك إن نفّذت 8th -v فسيُبلغ بـ custid: id.blob? تذكيرًا له بأنه لا يستطيع العثور على معلومات التعريف.
بغضّ النظر عن المنصة التي تطوّر عليها، يمكنك إنشاء تطبيقات لأي منصة يدعمها 8th.
بعد فك ضغط ملف ZIP، يمكنك تشغيل 8th مباشرة. فمثلًا، إذا ثبّتته في /opt/8th على نظام Linux بمعمارية 64 بت، فيفترض أن تتمكّن من كتابة /opt/8th/bin/lin64/8th مع أي معاملات تريد، وينبغي أن يعمل بشكل صحيح. وافعل شيئًا مشابهًا على macOS أو Windows.
إضافة مجلد الملف التنفيذي لـ 8th إلى متغيّر البيئة PATH في نظامك ستتيح لك كتابة 8th مباشرة بدلًا من كتابة مساره الكامل.
8th نفسه برنامج يعمل من سطر الأوامر، وليس مقصودًا تشغيله بالنقر على أيقونة على سطح المكتب. يمكنك إنشاء برامج رسومية عادية به يمكن تشغيلها بتلك الطريقة، لكن مترجم 8th نفسه برنامج واجهة سطر الأوامر (command-line interface).
إذا كنت تعمل على Windows وتستخدم صدفة MSys أو Cygwin، فقد تحتاج أيضًا إلى استخدام برنامج winpty المتاح مجانًا لتعمل برامج وضع الطرفية لديك بشكل صحيح. ولا يبدو أن إصدارات Windows 10 الحديثة تحتاج إلى ذلك.
إذا كنت تعمل على MacOS، اقرأ هذا الموضوع في منتدى 8th.
يبدو سطر أوامر 8th هكذا:
8th [options] [[-f] file...] [-e 'code'...]
حيث يعني خيار الملف [-f] "تفسير محتوى الملف"، ويعني -e code "تفسير كود 8th المحدّد هذا". ويمكن إعطاء كلا الخيارين أكثر من مرة على سطر الأوامر، ويكون الأثر تراكميًا. بعبارة أخرى:
8th -f first.8th -f second.8th
سيفسّر محتوى الملف first.8th ثم يفسّر محتوى الملف second.8th. لاحظ أنك إن أردت تشغيل ملف 8th واحد فقط فلا حاجة إلى كتابة 8th -f first.8th، بل يمكنك ببساطة كتابة 8th first.8th.
إليك جميع خيارات سطر الأوامر التي يفهمها 8th:
| الخيار | الوصف |
|---|---|
| -b | استدعاء أداة bin/build
|
| -D dir | تعيين المجلد الرئيسي إلى dir (القيمة الافتراضية تعتمد على نظام التشغيل) |
| -e str | تفسير السلسلة النصية str ككود 8th |
| -ee str | تفسير السلسلة النصية str ككود 8th ثم الخروج بعدها |
| -f nm | تفسير الملف المسمّى nm
|
| -g | تفعيل تصحيح أخطاء SED وفحصه |
| -G | تعيين إصدار GL المطلوب (مثل 3.1) |
| -h | عرض المساعدة |
| -H N | تعيين حجم سجل الطرفية إلى N سطرًا (الافتراضي: 100) |
| -k N | تعيين حجمَي مكدّس البيانات ومكدّس r إلى N عنصرًا (الافتراضي: 128K) |
| -l | مزيد من معلومات تصحيح الأخطاء |
| -r N | تعيين حجم مكدّس بيانات الاستدعاء الراجع إلى N عنصرًا (الافتراضي: 256) |
| -s N | تعيين حجم مكدّس الاستدعاء الذاتي إلى N بايت (الافتراضي: 0، أي القيمة الافتراضية للنظام) |
| -S | سرد مشغّلات SDL المكتشفة، ثم الخروج |
| -v | طباعة إصدار 8th ثم الخروج |
| -vv | مثل -v لكن مع معلومات إضافية لأغراض تصحيح الأخطاء |
| -x | إيقاف فحص نوع المكدّس وحدوده |
| -z | تفعيل عدّ عناصر البيانات |
| -Z | مثل -z، لكن مع تضمين مكتبة debug/allocs
|
| -? nm | طباعة المساعدة للعنصر nm
|
| -- | الإشارة إلى نهاية خيارات 8th |
عمومًا، لا يُفترض أن تحتاج إلى استخدام خيارات -k أو -r أو -s؛ فهي متاحة في حال وجدتها مفيدة، مثلًا إذا كان وجود 128K عنصرًا على المكدّس في وقت واحد قليلًا جدًا (بصراحة، إن كان الأمر كذلك فعليك تغيير الخوارزمية...).
إذا وجدت نفسك تستخدم مفاتيح سطر الأوامر كثيرًا، فيمكنك ببساطة استخدام "نص برمجي للصدفة" (على macOS أو Linux)، أو "ملف دفعي" (على Windows؛ ويسمى أيضًا "ملف أوامر") لتشغيل 8th بالخيارات التي تفضّلها.
يمكنك أيضًا إنشاء ملف مصدري لـ 8th في مجلد app:datadir باسم settings.8th. وإذا كان موجودًا، فسيحمّله REPL الخاص بـ 8th عند بدء التشغيل وسيطبع رسالة بهذا الشأن. ولأسباب أمنية، لن يُبحث عن هذا الملف ولن يُحمّل في تطبيق محزَّم.
للخروج من 8th، افعل أيًّا مما يلي:
bye واضغط ENTER. سيطلب ذلك من 8th الخروج بشكل طبيعي1 die واضغط ENTER. سيطلب ذلك من 8th الخروج بشكل غير طبيعي وإرجاع رمز الحالة 1 إلى نظام التشغيلCtrl+C مرتين متتاليتين بسرعة، أو Ctrl+D مرة واحدة. كلاهما يطلب من 8th الخروج فورًاthrow إلى وقوع استثناء. وإذا كنت تشغّل من طرفية 8th، فستعود إليها في معظم الحالات؛ وإذا كنت تشغّل ملفًا أو تطبيقًا محزَّمًا، فستُطبع رسالة ويُنهى التطبيق.يمكن لـ 8th تشغيل برامجك بعدة أوضاع:
| الوضع | الوصف |
|---|---|
| تفاعلي | شغّل 8th فقط واكتب كودك في الطرفية |
| نص برمجي | ضع كودك في ملف نصي وشغّله باستخدام 8th mycode.8th (على سبيل المثال). انظر النصيحة أدناه... |
| تطبيق | حوّل كودك إلى تطبيق محزَّم باستخدام نص البناء (أو خيار -b في سطر الأوامر) |
مستخدمو Pro+: يمكنك إنشاء تطبيقات مشفّرة للمساعدة في ردع المخترقين والأطراف الأخرى سيئة النية
في السيناريوهين الأخيرين، يجب أن يكون كودك في ملفات نصية عادية (أي ليس بصيغة معالجة نصوص). وينبغي وضع أي ملفات داعمة في المجلد نفسه الذي يوجد فيه كودك، أو في مجلد فرعي منه. ويمكنك الوصول إلى تلك الملفات الأخرى في 8th باستدعاء app:asset.
التطبيق برنامج مستقل يعمل بذاته مثل أي برنامج آخر على المنصة الهدف، ولا يحتاج إلى تشغيله بواسطة 8th عبر سطر الأوامر. وقد يكون محتواه مشفّرًا للمساعدة في ردع المخترقين، كما ذُكر أعلاه. ويمكن العثور على تفاصيل إنشاء التطبيقات المستقلة في القسم الخاص باستخدام أداة البناء.
نصيحة: إذا كنت تعمل على أنظمة macOS أو Linux أو RPI، فيمكنك جعل نصك البرمجي يعمل كأمر نظام عادي عن طريق:
chmod +x scriptname
#! /usr/bin/env 8th
PATH لديكسينجح هذا أيضًا مع appdata المحزَّمة، فإذا استخدمت bin/build لإنشاء ملف تنفيذي أمكنك استخدام appdata الذي أنشأه بالطريقة نفسها عبر:
cat - path/to/appdata > newappdata
#! /usr/bin/env 8th<ENTER><CTRL+D>
chmod +x newappdata