إصدار لغة البرمجة Crystal 1.2

تم نشر إصدار لغة البرمجة Crystal 1.2، والتي يحاول مطوروها الجمع بين سهولة التطوير في لغة Ruby وأداء التطبيقات العالي المميز للغة C. بناء جملة Crystal قريب من لغة Ruby، ولكنه غير متوافق تمامًا معها، على الرغم من أن بعض برامج Ruby تعمل بدون تعديل. كود المترجم مكتوب بلغة Crystal ويتم توزيعه بموجب ترخيص Apache 2.0.

تستخدم اللغة التحقق من النوع الثابت، ويتم تنفيذه دون الحاجة إلى تحديد أنواع المتغيرات ووسيطات الطريقة بشكل صريح في التعليمات البرمجية. يتم تجميع برامج Crystal في ملفات قابلة للتنفيذ، مع تقييم وحدات الماكرو وإنشاء التعليمات البرمجية في وقت الترجمة. في برامج Crystal، من الممكن ربط الارتباطات المكتوبة بلغة C. يتم تنفيذ موازاة تنفيذ التعليمات البرمجية باستخدام الكلمة الأساسية "spawn"، والتي تتيح لك تشغيل مهمة في الخلفية في الوضع غير المتزامن دون حظر الخيط الرئيسي، في شكل خيوط خفيفة الوزن تسمى الألياف.

توفر المكتبة القياسية مجموعة كبيرة من الوظائف الشائعة، بما في ذلك أدوات معالجة CSV وYAML وJSON ومكونات إنشاء خوادم HTTP ودعم WebSocket. أثناء عملية التطوير، من المناسب استخدام أمر "crystal play"، الذي ينشئ واجهة ويب (المضيف المحلي: 8080 افتراضيًا) للتنفيذ التفاعلي للتعليمات البرمجية بلغة Crystal.

التغييرات الرئيسية:

  • تمت إضافة القدرة على تعيين فئة فرعية من فئة عامة لعنصر من فئة الأصل. فئة فو (T)؛ نهاية الطبقة Bar(T) <Foo(T); نهاية س = فو س = بار
  • يمكن لوحدات الماكرو الآن استخدام الشرطة السفلية لتجاهل قيمة في حلقة for. {% for _, v, i في {1 => 2, 3 => 4, 5 => 6} %} p {{v + i}} {% end %}
  • تمت إضافة طريقة "file_exists؟" إلى وحدات الماكرو. للتحقق من وجود ملف .
  • تدعم المكتبة القياسية الآن أعدادًا صحيحة بحجم 128 بت.
  • تمت إضافة وحدة Indexable::Mutable(T) مع تنفيذ العمليات المتقدمة لمجموعات مثل BitArray وDeque. ba = BitArray.new(10) # ba = BitArray[0000000000] ba[0] = true # ba = BitArray[1000000000] ba.rotate!(-1) # ba = BitArray[0100000000]
  • تمت إضافة طريقة XML::Node#namespace_definition لاستخراج مساحة اسم محددة من XML.
  • لقد تم إهمال طريقتي IO#write_utf8 وURI.encode ويجب استبدالهما بـ IO#write_string وURI.encode_path.
  • تم نقل دعم بنية 32 بت x86 إلى المستوى الثاني (لم يعد يتم إنشاء الحزم الجاهزة). يجري الإعداد للانتقال إلى المستوى الأول من الدعم لبنية ARM64.
  • يستمر العمل لضمان الدعم الكامل لمنصة Windows. تمت إضافة دعم لمآخذ توصيل Windows.
  • تمت إضافة حزمة عالمية لنظام التشغيل macOS، تعمل على الأجهزة التي تحتوي على معالجات x86 وعلى الأجهزة التي تحتوي على شريحة Apple M1.

المصدر: opennet.ru

إضافة تعليق