جوليا ، لغة البرمجة عبر الأنظمة الأساسية تصل إلى نسختها 1.9

جوليا لانج

ulia هي لغة ديناميكية وعالية المستوى وعالية الأداء للحوسبة التقنية.

أُعلن قبل أيام عن إصدار جوليا 1.9، النسخة الجديدة من لغة البرمجة. تجمع هذه النسخة بين مزايا عديدة، منها الأداء العالي، ودعم الكتابة الديناميكية، وأدوات متكاملة للبرمجة المتوازية. يشبه تركيب جوليا تركيب MATLAB، مع بعض العناصر المستعارة من روبي وليسب.

تتميز لغة جوليا بأنها لغة برمجة عالية المستوى وعالية الأداء ومتعددة المنصات ومتعددة النماذج وذات كتابة ديناميكية للحوسبة العامة والتقنية والعلمية، مع بناء جملة مشابه لبيئات الحوسبة الأخرى المماثلة.

الأخبار الرئيسية لجوليا 1.9

تتضمن هذه النسخة الجديدة من جوليا 1.9 العديد من التحسينات على وقت التشغيل/المترجم، بما في ذلك تقليل ملحوظ في وقت التنفيذ الأول. يحفظ التجميع المسبق للحزم الآن الكود الأصلي في ملف "pkgimage"، مما يعني أن الكود المُولّد أثناء التجميع المسبق لن يحتاج إلى إعادة تجميع بعد تحميل الحزمة. يمكن تعطيل استخدام وضع pkgimages باستخدام الخيار "--pkgimages=no".

ومن التغييرات الملحوظة الأخرى إمكانية تحسين استدعاءات الوسائط غير المحددة النوع باستخدام تقسيم الاتحاد للحقن أو الحل الثابت، حتى في حال وجود عدة أنواع مختلفة من المرشحين للإرسال. وهذا من شأنه تحسين الأداء في بعض الحالات التي لا تُحل فيها أنواع الكائنات بشكل كامل ثابتًا، وذلك عن طريق حل مواقع استدعاءات " @nospecialize-d" بشكل ثابت وتجنب إعادة الترجمة.

تدعم القيم الحرفية للحرف الفردي الآن نفس بناء الجملة مثل السلاسل الحرفية ؛ يمكن أن تمثل هذه البنية تسلسلات UTF-8 غير صالحة ، كما يسمح به نوع Char.

بالإضافة إلى ذلك، في نظامي التشغيل Linux و Windows، يحاول الخيار " --threads=auto " الآن تحديد عدد المعالجات المتاحة بناءً على تقارب وحدة المعالجة المركزية، وهو قناع يتم تعيينه عادةً في بيئات الحوسبة عالية الأداء والحوسبة السحابية.

تم تعطيل الخيار " --math-mode=fast "، ويُنصح باستخدام الماكرو " @fastmath " بدلاً منه ، لما له من دلالات واضحة. إضافةً إلى ذلك، أصبح للمعامل " --threads " الآن الصيغة "auto | N[,auto|M]" ، حيث يُحدد M عدد الخيوط التفاعلية المراد إنشاؤها.

تمت إضافة الخيار " –heap-size-hint=<size> " لتحديد الحد الأدنى الذي يبدأ عنده جمع البيانات المهملة النشط. يمكن تحديد الحجم بالبايت، أو الكيلوبايت (1000 كيلوبايت)، أو الميجابايت (300 ميجابايت)، أو الجيجابايت (1,5 جيجابايت).

أصبح الماكرو "@invoke" الذي تم تقديمه في الإصدار 1.7 متاحًا للتصدير والاستخدام. بالإضافة إلى ذلك، يستخدم الآن الدالة "Core.Typeof(x)" بدلاً من " Any " عند حذف تعريف نوع الوسيط "x". هذا ضروري لمعالجة الأنواع المُمررة كوسائط بشكل صحيح.

علاوة على ذلك، أصبح بإمكان `Threads.@spawn` الآن استخدام وسيط أول اختياري، إما `:default` أو `:interactive`. تتطلب المهمة التفاعلية استجابة سريعة، وهي مصممة لتكون قصيرة أو متكررة. ستعمل المهام التفاعلية على سلاسل عمليات تفاعلية إذا تم تحديدها عند بدء تشغيل جوليا.

وتشمل التغييرات البارزة الأخرى ما يلي :

  • يؤدي نفي الدالة الأصلية "! f" الآن إلى إرجاع دالة مركبة "(!) ∘ f" بدلاً من دالة مجهولة.
  • تعمل وظائف تقسيم الأبعاد الآن على أبعاد متعددة: «كل شريحة "و" كل ررو "و" كلرول " إرجاع كائن "شرائح»مما يتيح الشحن لتوفير طرق أكثر كفاءة.
  • الماكرو «تضمين التغريدة»تمت إضافته إلى واجهة برمجة التطبيقات العامة.
  • تم إصلاح مشكلة في ترتيب العمليات في "fld1".
  • أصبح الفرز الآن مستقرًا دائمًا بمرور الوقت (إعادة تصميم QuickSort).
  • العدد الافتراضي لسلاسل BLAS يساوي الآن عدد سلاسل CPU في بنية ARM ونصف عدد سلاسل عمليات CPU في البنى الأخرى.
  • Printf: تمت إعادة صياغة رسائل الخطأ للسلاسل المشوهة لتحسين إمكانية القراءة.
  • الملف الشخصي: وظيفة جديدة "Profile.take_heap_snapshot (ملف)" والتي تكتب ملفًا بتنسيق ".heapsnapshot" المستند إلى JSON والمدعوم من Chrome.
  • دعم إضافي لمواصفات Unicode 15.
  • يمكن الآن استخدام مجموعات متداخلة من المجموعات ومجموعات الأحرف المسماة كمعلمات للنوع.

وأخيرًا، إذا كنت مهتمًا بمعرفة المزيد، يمكنك العثور على التفاصيل في الرابط التالي.


أضف كمصدر مفضل في جوجل