اختر مجلدي المصدر وبيانات التنفيذ
اتبع التشغيل الأول لتشغيل بسيط كامل. تصف هذه الأدلة أرشيف لوحة الأوامر 0.8.0 المتحقق منه. ثبّت لبات 0.7.0 بشكل منفصل. تفحص اللوحة اختيار --aspl عند البدء، ثم الملف التنفيذي المحفوظ، ثم PATH الموروث، بهذا الترتيب. يفشل الاختيار الصريح أو المحفوظ غير الصالح دون بديل. تستخدم اختيارات الأداة النسبية وعناصر PATH النسبية أو الفارغة مجلد البدء الفعلي الأصلي، مستقلة عن cd اللاحق. راجع اختيار الأداة وخيارات بدء التطبيق.
احفظ المصدر في محرر خارجي أو نزّل مثالا أصليا. تتطلب اللوحة هدف مصدر عاديا قابلا للقراءة وتسمح بالروابط الرمزية. لا تقرأ المصدر أو تخزنه ولا ترشح اللواحق، فالأداة المختارة تحدد اللواحق المدعومة. يطلب الملفان المورّدان سطرا واحدا ويحيّيانه. تعمل المفردات العربية والإنجليزية في كلتا لغتي التوثيق:
fn start_main() -> i64 {
print("Your name?\n");
let name: string = read_line();
print("Hello, " + name + "\n");
return 0;
}
تنزيل المصدر الأصلي hello-en.asplدالة ابدأ_الرئيسية() -> ص64 {
اطبع("ما اسمك؟\س").
دع اسم: نص = اقرأ_سطر().
اطبع("مرحباً، " + اسم + "\س").
أرجع 0.
}
تنزيل المصدر الأصلي hello-ar.asplتلتقط اللوحة مجلدها الحالي الصالح لكل تشغيل، بما فيه المصدر المطلق. تستخدم مسارات بيانات التنفيذ وTLS النسبية ذلك المجلد الملتقط. تتبع الاستيرادات موقع المصدر الحقيقي وفق الأداة المختارة. لا يحدد موقع المصدر مجلد العمل، ولا يستطيع الطفل تغيير تنقل اللوحة. لبرنامج مخزن بعيدا عن بياناته، استخدم cd أولا للوصول إلى مجلد البيانات، ثم شغّل مسار المصدر المطلق:
cd -- /home/samira/demo-data
run -- /home/samira/sources/demo.aspl
استبدل المسارات النموذجية بمسارات موجودة لبرنامجك. لا تحتاج أمثلة التحية أعلاه ملفات بيانات. احفظ لها مصدرا في مجلد اللوحة الحالي وأرسل أحد هذين الأمرين البديلين:
run -- hello-en.aspl
تشغيل -- hello-ar.aspl
يبدأ كل منهما تشغيلا واحدا. يملأ المصدر المورّد عند بدء اللوحة مسودة run -- مطلقة مقتبسة فقط، ويتحقق Enter منها ويبدأها. يفشل المصدر المفقود أو غير المقروء أو المجلد أو الأداة غير الصالحين دون بدء برنامج. صحح المشكلة المذكورة قبل الإرسال مجددا. تمرر اللوحة وسائط حرفية تعادل --diagnostic-language=ar|en --color=never run -- ABSOLUTE_SOURCE، وترث البيئة وتستخدم أنابيب stdin وstdout وstderr منفصلة. لا تستدعي صدفة ولا تقبل خيارات مترجم أو برنامج إضافية. تبقى لغة التشخيص ثابتة لذلك التشغيل. راجع run.
اقرأ مراحل التشغيل
تبين تسمية الموجه التشغيل ومرحلته. يملكه تشغيل نشط واحد، ولا يُضاف تشغيل آخر إلى طابور.
| المرحلة | ما يمكنك فعله |
|---|---|
| البدء، Starting | التحضير والبدء معلقان، والموجه للقراءة فقط. يمكن للإيقاف طلب الإلغاء، ولا يفعل EOF شيئا. |
| التشغيل، Running | حرر إدخال البرنامج وأرسله ما دام stdin مفتوحا. لا يثبت الخرج أن البرنامج ينتظر إدخالا. |
| الإرسال، Sending | سطر مقدم واحد معلق. الموجه للقراءة فقط، ولا يضيف Enter آخر شيئا إلى طابور. |
| الإيقاف، Stopping | طلب الإيقاف معلق. اقرأ الخرج وانسخه بينما يبقى الموجه للقراءة فقط. |
| الإنهاء، Finalizing | تنهي اللوحة الخرج الملتقط وتسجل النتيجة المرصودة. يبقى الموجه للقراءة فقط. |
قد يترك EOF التشغيل نشطا وموجهه للقراءة فقط. لا يعود موجه الأوامر إلا بعد إلغاء بدء مؤكد أو خروج طفل مرصود ثم الإنهاء. تبين رسالة استمرار الإرسال أو الإيقاف بعد خمس ثوان أن العمل معلق، لا موعدا نهائيا للاكتمال.
تحقق من مالك الإدخال
يفسر موجه الأوامر الجاهز وحده أوامر اللوحة. أثناء التشغيل، يصبح حتى ls وexit وsettings وrun إدخالا حرفيا لذلك البرنامج. لا تستطيع اللوحة معرفة إن كان الطفل ينتظر read_line(). انظر إلى خرجه ومالك الموجه قبل إرسال النص. لمثال التحية، انتظر سؤال الاسم وأدخل:
Samira
يظل F1 وCtrl+, يفتحان مرجع المفاتيح والإعدادات أثناء التشغيل. تستهلك عناصر النص المؤقتة مفاتيح التحرير والإلغاء المحلية أولا. أغلقها قبل استخدام الإيقاف أو EOF في العرض الرئيسي. لا يدخل إدخال البرنامج سجل الأوامر.
أكمل التركيب قبل الإرسال
النص الملتزم في المسودة وتركيب أسلوب الإدخال غير المكتمل حالتان منفصلتان. يؤكد Enter التركيب النشط أولا، ويرسل Enter لاحق السطر الملتزم. لتسلسل Local Compose غير مكتمل، يحتفظ Enter بالتسلسل غير المكتمل ويلغيه، ويحتاج إرسال المسودة الملتزمة دون تغيير إلى Enter آخر.
يحفظ فقد التركيز التركيب غير المكتمل لمالكه الأصلي، ويعيد النص الملتزم فقط عند العودة. عند EOF أو الإيقاف أو الاكتمال، يُحفظ النص الملتزم غير المقدم وغير الفارغ مرة واحدة كمسودة برنامج غير مرسلة. يُحفظ التركيب المرئي غير المكتمل منفصلا. لا يدخل أي منهما الأمر أو التشغيل التالي أو سجل الأوامر.
إن أوقف عطل مسار الإدخال التحرير، يبقى النص الملتزم والتركيب المرئي منفصلين ويتوقف التحرير واللصق والإرسال. يبقى التحديد والنسخ والإعدادات متاحا. أصلح المشكلة المذكورة ثم اختر إعادة محاولة مسار الإدخال صراحة في الإعدادات. تبدأ المحاولة تركيبا جديدا للمسار المقصود نفسه مع حفظ المسودة الملتزمة. لا تعيد المفاتيح أو تستعيد التركيب غير المكتمل أو ترسل النص المحفوظ. يحتاج المساعد المفقود أو تبعيات المحمل إلى إصلاح التثبيت.
تجد متطلبات المسارات وخطوات الإصلاح الكاملة في طرق الإدخال. تشرح الإعدادات تطبيق اختيار المسار وحالة الحفظ المنفصلة.
أرسل سطرا وافهم التسليم
يرسل Enter النص الملتزم بترميز UTF-8 مع LF واحدة مضافة. ترسل المسودة الفارغة سطرا فارغا. تبقى المسافات وUnicode وNUL حرفية. حد المحتوى 65,536 بايت دون LF المضافة. تُرفض CR/LF في المسودة أو البايتات الزائدة دفعة واحدة مع حفظ النص الملتزم والتحديد. لا يقص اللصق LF أخيرة ولا يقسم الأسطر ولا يرسلها.
يمكن أن يبقى سطر واحد فقط معلقا. يحصل على سجل تقديم واحد، ويبقى الموجه للقراءة فقط حتى تستنزف الكتابات إلى أنبوب النظام. بعد خمس ثوان، تعني حالة استمرار الإرسال أن التسليم لا يزال معلقا. لا يثبت التسليم إلى الأنبوب أن البرنامج قرأ السطر أو تصرف بناء عليه.
إذا فشلت الكتابة أو انتهى التشغيل قبل اكتمال التسليم، يصبح سجل التقديم موسوما بأن التسليم غير مؤكد، حتى إن وصلت بعض البايتات إلى الأنبوب. لا يُعاد إرساله ولا يُسمى كله غير مرسل. قد يبقى الطفل يعمل بعد فشل stdin مع خرج مقروء وإيقاف متاح. افحص النتيجة المرصودة والآثار قبل محاولة تشغيل آخر صراحة، فقد يكرر الإرسال عملا استلمه البرنامج بالفعل.
أغلق stdin باستخدام EOF
يغلق Ctrl+D إدخال البرنامج stdin بعد استنزاف أي سطر مقدم معلق. لا يرسل المسودة الحالية أو سطرا فارغا. تُحفظ المسودة غير المقدمة وغير الفارغة والتركيب المرئي منفصلين. لا يوقف EOF البرنامج ولا يغلق النافذة. يقرر البرنامج كيف يتعامل مع stdin المغلق، وتبقي اللوحة الموجه للقراءة فقط حتى نهاية التشغيل. لا يفعل EOF أثناء البدء شيئا.
استخدم EOF عندما يحتاج برنامجك نهاية مجرى إدخاله. استخدم الإيقاف لطلب إنهائه. إن بقي سطر معلقا، ينتظره EOF ولا يتجاوز تسليمه.
اطلب الإيقاف أو أغلق النافذة
يطلب Ctrl+C الإيقاف أثناء البدء أو التشغيل أو الإرسال أو الإيقاف. يحفظ العمل غير المرسل ويطلب SIGTERM ثم SIGKILL بعد 1,000 مللي ثانية عند الحاجة. تستهدف الإشارات مجموعة العملية عند توفرها، وإلا الطفل المباشر. لا يعيد تكرار الإيقاف بدء التصعيد. بعد خمس ثوان، تبين حالة استمرار الإيقاف أن الطلب لا يزال معلقا.
لا يستطيع الإيقاف استرجاع إدخال وصل أو إلغاء آثار الملفات والشبكة. قد تبقى العمليات التابعة التي تخرج من مجموعة العملية. مهلة الإشارة ليست موعد خروج، ويلزم إلغاء بدء مؤكد أو خروج طفل مرصود قبل تحرير الملكية. واصل قراءة الخرج والنتيجة اللاحقة دون افتراض إنهاء فوري أو إعادة محاولة تلقائية.
يعرض إغلاق تشغيل نشط إلغاء أو أوقف وأغلق. يغلق إلغاء طلب الإغلاق ويحفظ التشغيل. ينتظر أوقف وأغلق الاكتمال والنتيجة المرصودة. ينتظر الإغلاق أثناء الإيقاف أو الإنهاء تلك النتيجة أيضا. راجع exit للإغلاق عند الجاهزية للأوامر.
اقرأ النتيجة المرصودة واستعد
يسجل كل طلب تشغيل مقبول مصدره ومجلده الحالي، ثم نتيجة نهائية مرصودة واحدة، بما فيها الحالة 0. لا يثبت رقم الخروج وحده نجاحا أو فخا. تبقى أخطاء التحضير والبدء والإشارة والإشراف منفصلة. يُسجل طلب الإيقاف مع النتيجة المرصودة دون ادعاء سبب غير مثبت.
يبقى stdout وstderr بتسميتين منفصلتين، ولا يمثل ترتيبهما دمجا زمنيا. تنهي اللوحة بادئة خرج ملتقطة محدودة بعد خروج الطفل المباشر دون انتظار EOF لأنبوب تبقيه عملية تابعة مفتوحا. يبين فشل العد أو نقص البادئة أو فشل القراءة أن الالتقاط غير مكتمل كفشل عملية للوحة. يسبق الخرج النهائي السجل النهائي واستعادة الأوامر.
ينبغي أن تطبع أمثلة التحية Hello, Samira أو مرحباً، Samira وتسجل الحالة 0. افحص الخرج والنتيجة معا. يعيد الاكتمال موجه أوامر فارغا وحالة تحرير جديدة دون نقل التركيز بعيدا عن الخرج أو العناصر المؤقتة. تبقى المسودات غير المرسلة والتركيب غير المكتمل وسجلات التسليم غير المؤكد مع تشغيلها القديم. راجعها وصحح أي مشكلة مصدر أو مجلد أو أداة أو إدخال مذكورة قبل محاولة جديدة صريحة.
لطول الإرسال أو الإيقاف، اتبع استعادة التشغيل المعلق قبل التفكير في محاولة أخرى.
السابق: التشغيل الأول. لتجهيز الملفات واستعادتها، اقرأ الملفات والمسارات. لدروس اللغة، استخدم لبات بالعربية.