ruby — لغة برمجة نصية كائنية التوجه مُفسَّرة
الملخص
ruby [--copyright] [--version] [-SUacdlnpswvy] [-0[octal]] [-C directory]
[-E external[:internal]] [-F[pattern]] [-I directory] [-K[c]] [-T[level]] [-W[level]]
[-e command] [-i[extension]] [-r library] [-x[directory]] [--{enable|disable}-FEATURE]
[--dump=target] [--verbose] [--crash-report=template] [--] [program_file] [argument ...]
الوصف
Ruby هي لغة برمجة نصية مُفسَّرة لبرمجة كائنية التوجه سريعة وسهلة. لديها العديد من الميزات لمعالجة ملفات النصوص وإجراء مهام إدارة النظام (كما هو الحال في Perl). إنها بسيطة ومباشرة وقابلة للتوسيع.
إذا كنت تريد لغة لبرمجة كائنية التوجه سهلة، أو لا تحب "بشاعة" Perl، أو أنت تحب مفهوم LISP، ولكن لا تحب الكثير من الأقواس، فقد تكون Ruby هي لغتك المفضلة.
الميزات
ميزات Ruby هي كما يلي:
مُفسَّرة Ruby هي لغة مُفسَّرة، لذلك لا يتعين عليك إعادة تجميع البرامج المكتوبة بلغة Ruby لتشغيلها.
المتغيرات ليس لها نوع (الكتابة الديناميكية) يمكن أن تحتوي المتغيرات في Ruby على بيانات من أي نوع. لست مضطرًا للقلق بشأن كتابة المتغيرات. وبالتالي، لديها فحص أقل صرامة في وقت التجميع.
لا حاجة للإعلان يمكنك استخدام المتغيرات في برامج Ruby دون أي إعلانات. تشير أسماء المتغيرات إلى نطاقها - عام، أو فئة، أو مثيل، أو محلي.
بناء جملة بسيط تتميز Ruby ببناء جملة بسيط مستوحى قليلاً من Eiffel.
لا يوجد إدارة ذاكرة على مستوى المستخدم تتمتع Ruby بإدارة ذاكرة تلقائية. يتم جمع الكائنات التي لم يعد يتم الرجوع إليها من أي مكان تلقائيًا بواسطة جامع القمامة المدمج في المفسر.
كل شيء هو كائن Ruby هي لغة كائنية التوجه بالكامل، وكانت كذلك منذ إنشائها. حتى البيانات الأساسية مثل الأعداد الصحيحة تُعتبر كائنات.
الفئات والميراث والطرق باعتبارها لغة كائنية التوجه، تحتوي Ruby بشكل طبيعي على ميزات أساسية مثل الفئات والميراث والطرق.
الطرق الفردية تتمتع Ruby بالقدرة على تعريف طرق لكائنات معينة. على سبيل المثال، يمكنك تعريف إجراء "الضغط على زر" لزر معين عن طريق تحديد طريقة فردية للزر. أو، يمكنك ابتكار نظام كائنات يعتمد على النماذج باستخدام الطرق الفردية، إذا أردت.
المزج عن طريق الوحدات لا تشتمل Ruby عن قصد على الميراث المتعدد لأنه مصدر للارتباك. بدلاً من ذلك، تتمتع Ruby بالقدرة على مشاركة التنفيذ عبر شجرة الميراث. هذا يُسمى غالبًا "المزج".
المكررات تتمتع Ruby بمكررات لتجريد الحلقة.
الإغلاقات في روبي، يمكنك تحويل الإجراء إلى كائن.
معالجة النصوص والتعبيرات النمطية يحتوي روبي على مجموعة من ميزات معالجة النصوص كما هو الحال في بيرل.
M17N، مستقل عن مجموعة الأحرف
يدعم روبي البرمجة متعددة اللغات. من السهل معالجة النصوص المكتوبة بلغات طبيعية مختلفة ومُشفرة باستخدام ترميزات أحرف مختلفة، دون الاعتماد على يونيكود.
أعداد كبيرة باستخدام الأعداد الكبيرة المضمنة، يمكنك على سبيل المثال حساب مضروب العدد 400.
الانعكاس ولغات المجال المحدد
الفئة هي أيضًا مثيل للفئة Class. تعريف الفئات والطرق هو تعبير تمامًا مثل 1+1. لذلك يمكن لبرامجك كتابة وتعديل البرامج. وبالتالي، يمكنك كتابة تطبيقك بلغة البرمجة الخاصة بك فوق روبي.
معالجة الاستثناءات كما هو الحال في Java(tm).
الوصول المباشر إلى نظام التشغيل يمكن لروبي استخدام معظم استدعاءات نظام Unix، والتي تُستخدم غالبًا في برمجة النظام.
التحميل الديناميكي في معظم أنظمة Unix، يمكنك تحميل ملفات الكائنات في مترجم روبي أثناء التشغيل.
مكتبات غنية
بالإضافة إلى "المكتبات المضمنة" و "المكتبات القياسية" المرفقة مع روبي، تتوفر كمية كبيرة من المكتبات الخارجية ("الجوهر") عبر نظام إدارة الحزم المسمى "RubyGems"، وهو الأمر gem(1). قم بزيارة (https://rubygems.org/) للعثور على الجواهر التي تحتاجها، واستكشف (https://github.com/) لمعرفة كيفية تطويرها واستخدامها.
الخيارات
يستقبل مترجم روبي خيارات سطر الأوامر (المفاتيح) التالية. وهي مشابهة جدًا لتلك الموجودة في perl(1).
--copyright يقوم بطباعة إشعار حقوق النشر، ثم يخرج على الفور دون تشغيل أي برنامج نصي.
--version يقوم بطباعة إصدار مترجم روبي، ثم يخرج على الفور دون تشغيل أي برنامج نصي.
-0[ثماني] (الرقم "صفر"). يحدد فاصل سجل الإدخال ($/) كرقم ثماني. إذا لم يتم إعطاء رقم، يتم أخذ حرف فارغ كفاصل. يمكن أن تتبع مفاتيح أخرى الأرقام. `-00` يحول روبي إلى وضع الفقرة. `-0777` يجعل روبي يقرأ الملف بأكمله دفعة واحدة كسلسلة واحدة لأنه لا يوجد حرف قانوني بهذه القيمة.
-C directory
-X directory يتسبب في تحويل روبي إلى الدليل.
-E external[:internal]
--encoding external[:internal]
يحدد القيمة الافتراضية للترميزات الخارجية والترميز الداخلي. يجب فصل القيم باستخدام نقطتين (:). يمكنك حذف القيمة الخاصة بالترميزات الداخلية، ثم ستكون القيمة (Encoding.default_internal) هي nil.
--external-encoding=encoding
--internal-encoding=encoding
حدد الترميز الافتراضي الخارجي أو الداخلي للأحرف
-F pattern يحدد فاصل حقل الإدخال ($;).
-I directory يُستخدم لإخبار روبي بمكان تحميل البرامج النصية للمكتبات. سيتم إضافة مسار الدليل إلى متغير `load-path` ($:).
-K kcode يحدد ترميز KANJI (اليابانية). ستكون القيمة الافتراضية لترميزات البرنامج النصي (__ENCODING__) والترميزات الخارجية (Encoding.default_external) هي القيمة المحددة. يمكن أن يكون `kcode` أحد الخيارات التالية.
e EUC-JP
s Windows-31J (CP932)
u UTF-8
n ASCII-8BIT (BINARY)
-S يجعل Ruby يستخدم متغير البيئة PATH للبحث عن البرنامج النصي، ما لم يبدأ اسمه بشرطة مائلة. يُستخدم هذا لمحاكاة #! على الأجهزة التي لا تدعمه، بالطريقة التالية:
#! /usr/local/bin/ruby
# هذا السطر يجعل السطر التالي تعليقًا في Ruby \
exec /usr/local/bin/ruby -S $0 $*
في بعض الأنظمة، لا يحتوي $0 دائمًا على المسار الكامل، لذلك تحتاج إلى مفتاح -S لإخبار Ruby بالبحث عن البرنامج النصي إذا لزم الأمر (للتعامل مع المسافات المضمنة وما إلى ذلك). قد يكون البناء الأفضل من $* هو ${1+"$@"}، ولكنه لا يعمل إذا كان البرنامج النصي يتم تفسيره بواسطة csh(1).
-T[level=1] يقوم بتشغيل عمليات التحقق من "التشويه" بالمستوى المحدد (افتراضيًا 1).
-U يضبط القيمة الافتراضية للترميزات الداخلية (Encoding.default_internal) على UTF-8.
-W[level=2] يقوم بتشغيل الوضع المطول بالمستوى المحدد دون طباعة رسالة الإصدار في البداية. يمكن أن يكون المستوى:
0 الوضع المطول هو "صامت". يقوم بتعيين $VERBOSE إلى nil.
1 الوضع المطول هو "متوسط". يقوم بتعيين $VERBOSE إلى false.
2 (افتراضي) الوضع المطول هو "مطول". يقوم بتعيين $VERBOSE إلى true. -W2 هو نفسه -w
-a يقوم بتشغيل الوضع التلقائي للتقسيم عند استخدامه مع -n أو -p. في الوضع التلقائي للتقسيم، يقوم Ruby بتنفيذ
$F = $_.split
في بداية كل حلقة.
--backtrace-limit=num
يحدد الحد الأقصى لطول تتبع الأخطاء إلى num سطرًا (افتراضيًا -1، مما يعني عدم وجود حد).
-c يجعل Ruby يتحقق من بناء البرنامج النصي ويخرج دون تنفيذه. إذا لم تكن هناك أخطاء في البناء، فسيقوم Ruby بطباعة "بناء البرنامج النصي صحيح" إلى الإخراج القياسي.
-d
--debug يقوم بتشغيل وضع التصحيح. سيتم تعيين $DEBUG إلى true.
-e command يحدد برنامجًا نصيًا من سطر الأوامر مع إخبار Ruby بعدم البحث عن اسم ملف البرنامج النصي في بقية الوسائط.
-h
--help يطبع ملخصًا للخيارات.
-i extension يحدد وضع التحرير المباشر. تتم إضافة الامتداد، إذا تم تحديده، إلى اسم الملف القديم لإنشاء نسخة احتياطية. على سبيل المثال:
% echo matz > /tmp/junk
% cat /tmp/junk
matz
% ruby -p -i.bak -e '$_.upcase!' /tmp/junk
% cat /tmp/junk
MATZ
% cat /tmp/junk.bak
matz
-l (الحرف "l" الصغير). يقوم بتمكين المعالجة التلقائية لنهاية الأسطر، مما يعني أولاً تعيين $\ إلى قيمة $ /، ثم يقوم بإزالة كل سطر تتم قراءته باستخدام chomp!.
-n يجعل Ruby يفترض الحلقة التالية حول البرنامج النصي الخاص بك، مما يجعله يتكرر على أسماء ملفات الوسائط بطريقة مشابهة لـ sed -n أو awk.
while gets
...
end
-p يعمل بشكل مشابه لمفتاح -n، ولكنه يطبع قيمة المتغير $_ في نهاية كل حلقة. على سبيل المثال:
% echo matz | ruby -p -e '$_.tr! "a-z", "A-Z"'
MATZ
-r library يجعل Ruby يقوم بتحميل المكتبة باستخدام require. هذا مفيد عند استخدام -n أو -p.
-s يمكّن تحليل بعض الخيارات بعد اسم البرنامج النصي ولكن قبل أي وسيطات ملفات (أو قبل "--"). تتم إزالة أي خيارات يتم العثور عليها هناك من ARGV ويتم تعيين المتغير المقابل في البرنامج النصي. على سبيل المثال:
#! /usr/local/bin/ruby -s
# يطبع "true" إذا تم استدعاؤه بالخيار `-xyz`.
print "true\n" if $xyz
-v يمكّن الوضع المطول. ستطبع Ruby نسختها في البداية وتعيّن المتغير `$VERBOSE` إلى `true`. تطبع بعض الطرق رسائل إضافية إذا كان هذا المتغير `true`. إذا تم إعطاء هذا الخيار، ولم تكن هناك أي خيارات أخرى، فسوف تخرج Ruby بعد طباعة نسختها.
-w يمكّن الوضع المطول دون طباعة رسالة الإصدار في البداية. يقوم بتعيين المتغير `$VERBOSE` إلى `true`.
-x[directory] يخبر Ruby أن البرنامج النصي مضمن في رسالة. سيتم تجاهل أي بيانات غير ضرورية في البداية حتى السطر الأول الذي يبدأ بـ "!" ويحتوي على السلسلة "ruby". سيتم تطبيق أي خيارات ذات معنى في هذا السطر. يجب تحديد نهاية البرنامج النصي إما باستخدام EOF أو ^D (Ctrl-D) أو ^Z (Ctrl-Z) أو الكلمة المحجوزة `__END__`. إذا تم تحديد اسم الدليل، فستنتقل Ruby إلى هذا الدليل قبل تنفيذ البرنامج النصي.
-y
--yydebug هذا الخيار ليس مضمونًا أن يكون متوافقًا.
يشغل وضع تصحيح المترجم. ستطبع Ruby مجموعة من رسائل الحالة الداخلية أثناء الترجمة. حدد هذا الخيار فقط إذا كنت ستصحح مترجم Ruby.
--disable-FEATURE
--enable-FEATURE
يعطل (أو يمكّن) الميزة المحددة.
--disable-gems
--enable-gems يعطل (أو يمكّن) مكتبات RubyGems. بشكل افتراضي، ستقوم Ruby بتحميل أحدث إصدار من كل gem مثبت. الثابت `Gem` هو `true` إذا تم تمكين RubyGems، و`false` إذا لم يكن الأمر كذلك.
--disable-rubyopt
--enable-rubyopt يتجاهل (أو يأخذ في الاعتبار) متغير البيئة `RUBYOPT`. بشكل افتراضي، تأخذ Ruby في الاعتبار هذا المتغير.
--disable-all
--enable-all يعطل (أو يمكّن) جميع الميزات.
--dump=target يطبع بعض المعلومات.
يطبع الهدف المحدد. يمكن أن يكون الهدف أحد ما يلي:
version اطبع وصف الإصدار (نفس `–version`).
usage اطبع رسالة استخدام موجزة (نفس `-h`).
help أظهر رسالة مساعدة طويلة (نفس `--help`).
syntax تحقق من بناء الجملة (نفس `-c –yydebug`).
أو أحد ما يلي، وهو مخصص لتصحيح المترجم:
yydebug يمكّن وضع تصحيح المترجم (نفس `--yydebug`).
parsetree اطبع تمثيلًا نصيًا لشجرة تحليل بناء الجملة (AST) لبرنامج Ruby.
parsetree_with_comment اطبع تمثيلًا نصيًا لشجرة تحليل بناء الجملة (AST) لبرنامج Ruby، ولكن مع إضافة كل عقدة مع رمز مصدر Ruby المرتبط بها.
insns اطبع قائمة بتعليمات التعليمات البرمجية البايتية التي تم تفكيكها.
insns_without_opt اطبع قائمة بتعليمات التعليمات البرمجية البايتية التي تم تفكيكها قبل تطبيق العديد من التحسينات.
--verbose يمكّن الوضع المطول دون طباعة رسالة الإصدار في البداية. يقوم بتعيين المتغير `$VERBOSE` إلى `true`. إذا تم إعطاء هذا الخيار، ولم تكن هناك وسيطات برنامج نصي أخرى (ملف البرنامج النصي أو خيارات `-e`)، فسوف تخرج Ruby على الفور.
--crash-report=template
يحدد نموذج اسم المسار لحفظ تقرير التعطل. انظر متغير البيئة RUBY_CRASH_REPORT للحصول على التفاصيل.
البيئة
RUBYLIB قائمة مفصولة بنقطتين من الدلائل التي تتم إضافتها إلى مسار تحميل مكتبات روبي ($:).
يتم البحث في الدلائل من هذا المتغير البيئي قبل البحث في مسار التحميل القياسي.
مثال:
RUBYLIB="$HOME/lib/ruby:$HOME/lib/rubyext"
RUBYOPT خيارات روبي إضافية.
مثال:
RUBYOPT="-w -Ke"
لاحظ أن RUBYOPT يمكن أن يحتوي فقط على -d و -E و -I و -K و -r و -T و -U و -v و -w و -W و --debug و --disable-FEATURE و --enable-FEATURE.
RUBYPATH قائمة مفصولة بنقطتين من الدلائل التي تبحث فيها روبي عن برامج روبي عند تحديد العلم -S. يسبق هذا المتغير البيئي متغير البيئة PATH.
RUBYSHELL المسار إلى أمر shell الخاص بالنظام. يتم تمكين هذا المتغير البيئي فقط لمنصات mswin32 و mingw32 و OS/2. إذا لم يتم تعريف هذا المتغير، فستشير روبي إلى COMSPEC.
PATH تشير روبي إلى متغير البيئة PATH عند استدعاء Kernel#system.
وتعتمد روبي على بعض متغيرات البيئة المتعلقة بـ RubyGems ما لم يتم تعطيل RubyGems. انظر التعليمات الخاصة بـ gem(1) أدناه.
% gem help
بيئة جمع البيانات المهملة (GC)
يتتبع جامع البيانات المهملة في روبي (GC) الكائنات في خانات ذات حجم ثابت، ولكن قد يكون لكل كائن تخصيصات ذاكرة إضافية تتم معالجتها بواسطة مجموعة وظائف malloc الخاصة بمكتبة C القياسية (malloc(3) و calloc(3) و realloc(3)). في هذا المستند، يشير "الكومة" إلى كومة كائنات روبي ذات الخانات ذات الحجم الثابت، بينما يشير "malloc" إلى التخصيصات الإضافية التي يشار إليها عادةً باسم "كومة العمليات". وبالتالي، هناك طريقتان على الأقل لتشغيل GC:
1 الوصول إلى حد الكائنات.
2 الوصول إلى حد malloc.
في روبي 2.1، تم تقديم GC الجيل، وتم تقسيم الحدود إلى أجيال شابة وقديمة، مما يوفر طريقتين إضافيتين لتشغيل GC:
3 الوصول إلى حد الكائنات القديمة.
4 الوصول إلى حد malloc القديم.
هناك حاليًا 4 مجالات ممكنة يمكن ضبط GC فيها بواسطة متغيرات البيئة الـ 11 التالية: RUBY_GC_HEAP_INIT_SLOTS تخصيص الخانات الأولية. ينطبق على جميع أحجام الخانات. تم تقديمه في روبي 2.1، الافتراضي: 10000.
RUBY_GC_HEAP_%d_INIT_SLOTS التخصيص الأولي للخانات في كومة معينة. يمكن العثور على الكومات المتاحة في مفاتيح `GC.stat_heap`. تم تقديمه في روبي 3.3.
RUBY_GC_HEAP_FREE_SLOTS قم بإعداد ما لا يقل عن هذا العدد من الخانات بعد GC. قم بتخصيص هذا العدد من الخانات إذا لم يكن هناك عدد كافٍ من الخانات. تم تقديمه في روبي 2.1، الافتراضي: 4096
RUBY_GC_HEAP_GROWTH_FACTOR قم بزيادة معدل تخصيص خانات الكومة بهذا العامل. تم تقديمه في روبي 2.1، الافتراضي: 1.8، الحد الأدنى: 1.0 (بدون نمو)
RUBY_GC_HEAP_GROWTH_MAX_SLOTS يتم تحديد معدل التخصيص لهذا العدد من الفتحات، مما يمنع
التخصيص المفرط بسبب
RUBY_GC_HEAP_GROWTH_FACTOR. تم تقديمه في Ruby 2.1، القيمة الافتراضية: 0 (لا يوجد حد)
RUBY_GC_HEAP_OLDOBJECT_LIMIT_FACTOR يتم إجراء عملية تجميع قمامة كاملة عندما يكون عدد الكائنات القديمة
أكبر من R * N، حيث R هي هذه القيمة و N هو عدد الكائنات القديمة بعد آخر عملية تجميع قمامة كاملة. تم تقديمه في Ruby
1.1، القيمة الافتراضية: 2.0
RUBY_GC_MALLOC_LIMIT الحد الأولي لتخصيص الجيل الشاب من الذاكرة من عائلة malloc. ستبدأ عملية تجميع القمامة عند الوصول إلى هذا الحد.
القيمة الافتراضية: 16 ميجابايت
RUBY_GC_MALLOC_LIMIT_MAX الحد الأقصى لتخصيص الجيل الشاب من الذاكرة من malloc قبل بدء عملية تجميع القمامة. يمنع النمو المفرط لـ malloc
بسبب RUBY_GC_MALLOC_LIMIT_GROWTH_FACTOR. تم تقديمه في
Ruby 2.1، القيمة الافتراضية: 32 ميجابايت.
RUBY_GC_MALLOC_LIMIT_GROWTH_FACTOR يزيد من حد استدعاءات malloc للجيل الشاب، مما يقلل من تكرار عمليات تجميع القمامة ولكن يزيد من نمو malloc
حتى يتم الوصول إلى RUBY_GC_MALLOC_LIMIT_MAX. تم تقديمه في
Ruby 1، القيمة الافتراضية: 1.4، الحد الأدنى: 1.0 (لا يوجد نمو)
RUBY_GC_OLDMALLOC_LIMIT الحد الأولي لتخصيص الجيل القديم من الذاكرة من malloc، ستبدأ عملية تجميع القمامة الكاملة عند الوصول إلى هذا الحد. تم تقديمه في Ruby 2.1، القيمة الافتراضية: 16 ميجابايت
RUBY_GC_OLDMALLOC_LIMIT_MAX الحد الأقصى لتخصيص الجيل القديم من الذاكرة من malloc قبل بدء عملية تجميع القمامة الكاملة. يمنع النمو المفرط لـ malloc
بسبب RUBY_GC_OLDMALLOC_LIMIT_GROWTH_FACTOR. تم تقديمه في
Ruby 2.1، القيمة الافتراضية: 128 ميجابايت
RUBY_GC_OLDMALLOC_LIMIT_GROWTH_FACTOR يزيد من حد تخصيص الذاكرة للجيل القديم، مما يقلل من تكرار عمليات تجميع القمامة الكاملة ولكن يزيد من نمو malloc
حتى يتم الوصول إلى RUBY_GC_OLDMALLOC_LIMIT_MAX. تم تقديمه في
Ruby 2.1، القيمة الافتراضية: 1.2، الحد الأدنى: 1.0 (لا يوجد نمو)
حجم المكدس في بيئة التشغيل
متغيرات حجم المكدس في بيئة التشغيل تعتمد على التنفيذ وتخضع للتغيير مع إصدارات Ruby المختلفة. يستخدم جهاز الذاكرة المؤقتة (VM) للمكدس للتعليمات البرمجية المكتوبة بلغة Ruby ويتم إدارته بواسطة
الآلة الافتراضية. يستخدم مكدس الجهاز نظام التشغيل واستخدامه يعتمد على ملحقات C وخيارات مترجم C. قد يؤدي استخدام قيم أقل لهذه المتغيرات إلى السماح للتطبيقات بالاحتفاظ بها
عدد أكبر من الألياف أو سلاسل العمليات قيد التشغيل؛ ولكن يزيد من فرصة حدوث استثناءات SystemStackError وأخطاء التجزئة (SIGSEGV). تتوفر هذه المتغيرات البيئية منذ Ruby 2.0.0. جميع
القيم محددة بالبايت.
RUBY_THREAD_VM_STACK_SIZE حجم مكدس جهاز الذاكرة المؤقتة (VM) المستخدم عند إنشاء سلسلة العمليات. القيمة الافتراضية: 524288 (وحدة المعالجة المركزية 32 بت) أو 1048575 (وحدة المعالجة المركزية 64 بت)
RUBY_THREAD_MACHINE_STACK_SIZE حجم مكدس الجهاز المستخدم عند إنشاء سلسلة العمليات. القيمة الافتراضية: 524288 أو
1048575
RUBY_FIBER_VM_STACK_SIZE حجم مكدس جهاز الذاكرة المؤقتة (VM) المستخدم عند إنشاء ألياف. القيمة الافتراضية: 65536 أو 131072
RUBY_FIBER_MACHINE_STACK_SIZE حجم مكدس الجهاز المستخدم عند إنشاء ألياف. القيمة الافتراضية: 262144 أو
524288
بيئة تقارير الأعطال
RUBY_CRASH_REPORT قالب اسم المسار لحفظ تقرير الأعطال. القيمة الافتراضية: لا يوجد
تسمية ملفات تقارير الأعطال
يمكن أن يحتوي القالب على محددات % يتم استبدالها بالقيم التالية عند إنشاء ملف تقرير العطل:
`%%` حرف `%` واحد.
`%e` اسم الملف التنفيذي الأساسي.
`%E` المسار الكامل للملف التنفيذي، مع استبدال الشرطات المائلة `/` بعلامات التعجب `!`.
`%f` اسم البرنامج الأساسي، `$0`.
`%F` المسار الكامل للبرنامج، `$0`، مع استبدال الشرطات المائلة `/` بعلامات التعجب `!`.
`%p` مُعرّف العملية (PID) للعملية التي تم تفريغها.
`%t` وقت التفريغ، معبّرًا عنه بالثواني منذ بداية حقبة يونكس (Epoch)، 1970-01-01 00:00:00 +0000 (UTC).
`%NNN` رمز حرفي في نظام الأعداد الثماني.
يتم حذف % واحد في نهاية القالب من اسم ملف النواة، وكذلك يتم حذف المجموعة المكونة من % متبوعة بأي حرف آخر غير الحروف المذكورة أعلاه. تصبح جميع الأحرف الأخرى في القالب جزءًا حرفيًا من اسم ملف النواة. يمكن أن يتضمن القالب أحرف /، والتي يتم تفسيرها على أنها محددات لأسماء الدليل.
توجيه تقارير الأعطال إلى برنامج
إذا كان الحرف الأول في هذا الملف هو رمز الأنبوب |، فسيتم تفسير بقية السطر على أنه سطر أوامر لبرنامج (أو برنامج نصي) سيتم تنفيذه.
يتم تقسيم قالب الأنبوب على الفراغات إلى قائمة وسيطات قبل توسيع معلمات القالب.
انظر أيضًا
[https://www.ruby-lang.org/] الموقع الرسمي.
[https://www.ruby-toolbox.com/] كتالوج شامل لمكتبات روبي.
الإبلاغ عن الأخطاء
يجب الإبلاغ عن الثغرات الأمنية عبر البريد الإلكتروني إلى _. سيتم نشر المشكلات التي تم الإبلاغ عنها بعد إصلاحها.
يمكن الإبلاغ عن الأخطاء وطلبات الميزات الأخرى عبر نظام تتبع أخطاء روبي https://bugs.ruby-lang.org/. لا تبلغ عن الثغرات الأمنية عبر هذا النظام لأنه ينشر الثغرات الأمنية على الفور.
المؤلفون
تم تصميم روبي وتنفيذها بواسطة يوكيهيرو ماتسوموتو <_>.
راجع https://github.com/ruby/ruby/graphs/contributors للحصول على قائمة بالمساهمين في روبي.