إصدار لغة برمجة Python 3.14

بعد عام من التطوير ، تم نشر إصدار هام من لغة برمجة Python 3.14. سيتم دعم الفرع الجديد لمدة عام ونصف ، وبعد ذلك سيتم تشكيل تصحيحات به نقاط ضعف لمدة ثلاث سنوات ونصف أخرى.

من بين الميزات الجديدة المضافة في Python 3.14 (1، 2، 3):

  • تم تطبيق الدعم الرسمي لبناء CPython بدون قفل المترجم العالمي (GIL). يُلغي هذا الدعم مشكلة توازي العمليات على الأنظمة متعددة الأنوية، والتي تنتج عن منع GIL الوصول المتزامن إلى الكائنات المشتركة من خيوط معالجة مختلفة. يُؤدي تعطيل GIL إلى زيادة العبء المالي بسبب التغييرات في جامع البيانات المهملة، ونظام إدارة الذاكرة، وبدائيات القفل. على سبيل المثال، يؤدي استخدام عد المراجع لعزل الخيوط إلى انخفاض في الأداء بنسبة 10% تقريبًا في النصوص البرمجية أحادية الخيط. ومع ذلك، يُمكن تعويض هذه الزيادة من خلال توازي العمليات.
  • تمت إضافة دعم لسلاسل t (حروف تبدأ بـ 't')، مما يسمح لك باستخدام بنية نحوية مشابهة لسلاسل f لإنشاء معالجات قوالب خاصة بك للسلاسل. على عكس سلاسل f، تُرجع سلاسل t كائنًا يخزن بيانات السلسلة الثابتة والقيم المستبدلة بشكل منفصل. يتيح لك هذا التخزين المنفصل إرفاق معالجاتك الخاصة التي تؤثر فقط على القيم المستبدلة. على سبيل المثال، يمكنك إرفاق معالج لتحويل القيمة المستبدلة إلى أحرف كبيرة أو لتجنب الأحرف الخاصة عند استبدال البيانات الخارجية في السلسلة. variety = 'Stilton' template = t'Try some {variety} cheese!' print(list(template)) print(lower_upper(template)) ['Try some ', Interpolation('Stilton', 'variety', None, »), ' cheese!'] Try some STILTON cheese! السمات = {'src': 'limburger.jpg', 'alt': 'lovely cheese'} القالب = t' 'طباعة (html(قالب))
  • أُضيفت وحدة concurrent.interpreters إلى المكتبة القياسية. وهي تتيح تشغيل عدة نسخ معزولة من مُفسّر بايثون بشكل متزامن في عملية واحدة. في السابق، كانت هذه الإمكانية متاحة فقط من خلال واجهة برمجة تطبيقات C-API. يمكن استخدام التنفيذ المتزامن لعدة مُفسّرات لتوازي العمليات، على غرار تشغيل عدة عمليات متوازية، ولكن على عكس نموذج العمليات المتعددة، فإنه يستهلك موارد أقل. على مستوى التطبيق، يمكن استخدام نموذج الممثل وCSP (اتصال العمليات المتسلسلة) لفصل العمليات بين المُفسّرات.
  • يُطبّق CPython نوعًا جديدًا من المُفسّرات يستخدم استدعاءات ذيلية بين دوال C التي تُطبّق بايتات بايثون فردية، بدلاً من دالة كبيرة واحدة مع عبارات التبديل/الحالة. عند دمجه في Clang 19، يُظهر المُفسّر الجديد تحسّنًا في الأداء بنسبة 3-5% عند تشغيل معايير أداء بايثون. المُفسّر الجديد متاح حاليًا كخيار لمعماريتي x86-64 وAArch64، ويتطلب Clang 19 على الأقل (سيتم الوعد بدعم GCC لاحقًا).
  • أصبح دعم المعالجة المؤجلة لتعليقات الدوال والفئات والوحدات النمطية متاحًا الآن. لم تعد التعليقات تُعالج فورًا، بل تُخزن كوظائف متخصصة وتُقيّم عند الحاجة. يُبسط هذا السلوك الجديد العمل مع التعليقات ويُقلل من تكلفة معالجتها أثناء التشغيل. وحدة annotationlib متاحة لفحص التعليقات المؤجلة.
  • أُضيفت حزمة الضغط إلى المكتبة القياسية، مُوفرةً وظائف لضغط البيانات وفك ضغطها باستخدام خوارزميات مُختلفة. بالإضافة إلى وحدات compression.lzma وcompression.bz2 وcompression.gzip وcompression.zlib، التي تُتيح الوصول إلى الوظائف المُتاحة سابقًا في وحدات lzma وbz2 وgzip وzlib، أُضيفت وحدة compression.zstd جديدة، تُطبّق خوارزمية ZSTD (Zstandard).
  • في تعبيرات "except" و"except*"، يُسمح بحذف الأقواس إذا كان التعبير يحدد أنواع استثناءات متعددة ولا يستخدم الكلمة الأساسية "as". try: connect_to_server() except TimeoutError, ConnectionRefusedError: print('The network has ceased to be!')
  • تم تطبيق تمييز بناء الجملة في غلاف PyREPL التفاعلي. وتم تفعيل الإخراج الملون في أدوات سطر الأوامر لوحدات unittest وargparse وjson والتقويم.
  • تمت إضافة واجهة لتوصيل أدوات تصحيح الأخطاء وملفات التعريف الخارجية بالعمليات الجارية بالفعل في CPython دون الحاجة إلى التوقف وإعادة التشغيل ودون التأثير على الأداء.
  • تدعم وحدة pdb الآن الاتصالات عن بُعد بعمليات بايثون الجارية. على سبيل المثال، للاتصال بالعملية 1234، يمكنك استخدام الأمر "python -m pdb -p 1234".
  • تم تحديث وحدة uuid باستخدام الوظائف uuid6() وuuid7() وuuid8()، وتنفيذ الإصدارات 6 و7 و8 من معرفات UUID.
  • تمت إضافة إخراج تحذيري عند استخدام تعبيرات "return" و"break" و"continue" للخروج من كتلة "finally".
  • أُضيفت واجهة برمجة تطبيقات PyInitConfig C لتخصيص تهيئة بايثون دون الاعتماد على هياكل C، مما يسمح بإجراء تغييرات متوافقة مع واجهة برمجة التطبيقات (ABI). تتوفر الدالتان PyConfig_Get() وPyConfig_Set() لاسترجاع وضبط التكوين، بالإضافة إلى الدالة PyInitConfig_AddModule() لإضافة وحدة نمطية مع ملحق.
  • تم تحسين رسائل الخطأ. أُضيفت توصيات لتصحيح الأخطاء المطبعية في الكلمات الرئيسية.
  • تدمج الحزمة نتائج العمل لاستبدال تطبيقات بايثون لخوارزميات التشفير المُقدمة في وحدتي hashlib وhmac بإصدارات مزودة بإثبات رياضي (رسمي) للموثوقية، أعده مشروع "HACL*". استُبدلت جميع دوال التجزئة الافتراضية وHMAC المُقدمة في بايثون بإصدارات مزودة بإثبات رسمي للتوافق (تحقق رسمي). ومن بين أمور أخرى، أُضيف تطبيق HMAC-BLAKE2، باستخدام تعليمات AVX2 SIMD لتسريع العمليات الحسابية.
  • تمت إضافة واجهة سطر أوامر جديدة ("python -m asyncio ps PID" و"python -m asyncio pstree PID") لفحص عمليات Python الجارية باستخدام المهام غير المتزامنة (asyncio).
  • تكوين التجميعات الجاهزة لـ macOS и Windows يتضمن البرنامج مُترجم JIT تجريبي. مُثبِّت لـ Windows تم استبداله بمدير التثبيت.
  • للتحقق من سلامة التجميعات، يتم استخدام نظام التحقق من الكود التشفيري Sigstore بدلاً من توقيعات PGP.
  • يتم توفير إصدارات ثنائية رسمية للمنصة. Android.

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

المصدر: opennet.ru

شراء استضافة موثوقة للمواقع مع حماية DDoS وخوادم VPS VDS 🔥 اشترِ استضافة مواقع ويب موثوقة مع حماية من هجمات DDoS، وخوادم VPS وVDS | ProHoster