بدأ مطورو Core Python بداية فوضوية حتى عام 2022 ، لكنهم يحققون تقدمًا في جعل Python لغة أسرع مثل C.
أصدرت مؤسسة Python Software Foundation (PSF) ثلاثة إصدارات جديدة من لغة البرمجة الشهيرة Python في بداية صعبة حتى عام 2022 ، لكن مطوري Core Python يحرزون تقدمًا في هدف Guido van Rossum لمنشئ Python لإصدار 3.11 ليكون أسرع مرتين من سابقتها.
الإصدارات الجديدة لسلسلة Python 3.10 و 3.9 والمعاينة 3.11 صدرت اليوم على الرغم من العديد من حالات التأخير ، بما في ذلك تجديد شهادة توقيع الكود "أكثر تعقيدًا من المتوقع". الإصدار 3.10.x هو أحدث سلسلة إطلاق ميزة من Python 3 ، بينما 3.9.x هو السلسلة القديمة و Python 3.11.x هو المستقبل.
"جميع الإصدارات التي تبحث عنها تعرضت للشتائم بطريقة ما. يا لها من طريقة لبدء عام 2022! إلى جانب استمرار الشهادة ، يعد Python 3.10.2 إصدارًا سريعًا (سترغب في الترقية ، اقرأ أدناه!) ، Python 3.11.0a4 كان يحتوي على ما يقرب من 20 (كذا ، عشرين!) مانعًا للإصدار قبل أن يصبح أخيرًا صديقًا للبيئة ، و Python 3.9.10 تم تصنيعه من M1 Mac الجديد على macOS Monterey مما جعل العملية المملة عادة رحلة طويلة ، "قال فريق الإصدار.
لا يحتوي أي من الإصدارات الجديدة من Python - 3.10.2 و 3.9.1 و 3.11.0a4 - على مثبتات Windows بسبب مشكلة تجديد الشهادة. على الرغم من هذه الفجوة الواضحة ، قرر فريق تطوير Core Python (CPython) إصدار الإصدارات الجديدة بسبب مشكلة تسرب الذاكرة الخطيرة التي أثرت على 3.10 وما قبله مما يجعل تثبيت الإصدار 3.10.2 "موصى به بشدة".
أوضح Lukasz Langa ، مطور CPython ومدير الإصدار : "لقد عقدنا الإصدارات طوال الأسبوع بينما يتم حل الموقف ، لكن الحاجة الملحة إلى 3.10.2 على وجه الخصوص جعلتنا نتحرر بدون برامج تثبيت Windows بعد كل شيء" .
"نأسف للإزعاج ونبذل قصارى جهدنا لوضع مثبت Windows في مكانه في أسرع وقت ممكن."
CPython هو التطبيق المرجعي لـ Python الذي تعتمد عليه المتغيرات الأخرى من Python.
وأضاف لانجا: "كانت الإصدارات الثلاثة الأولى لعام 2022 ملعونة! ما هو عادة عملية عادية جدًا وآلية إلى حد كبير ، تحولت إلى ثلاث كرات منحنية منفصلة. لحسن الحظ ، لم نسمح لهم بالخروج" .
تتم معالجة مشكلة الشهادة بواسطة مطور CPython Ee Durbin و Steve Dower ، خبير Windows الذي يعمل لدى Microsoft لشركة CPython والمسؤول عن مثبتات Windows.
تتوقع PSF أن يتم إصلاح تجديد الشهادة ومشكلة Windows Installer هذا الأسبوع.
حدث تسرب الذاكرة الذي يؤثر على Python 3.10 في بعض استدعاءات الوظائف عندما يستخدم المطورون Cython ، وهي مجموعة شاملة من Python مع مترجم يسهل كتابة الامتدادات في كود C الذي يتفاعل مع كود Python. يوفر Cython أداءً أسرع يشبه C لتنفيذ كود Python.
يوضح لانجا:
"يتألف تسرب الذاكرة من كمية صغيرة ثابتة من البايتات في استدعاءات دالة معينة من كود Cython". "على الرغم من أن هذا لم يكن ملحوظًا في معظم الحالات ، إلا أنه كان له تأثير كبير على التطبيقات طويلة المدى وأنماط استخدام معينة."
يلاحظ مطور CPython Pablo Galindo Salgado أن تسرب الذاكرة يؤثر بشكل كبير إلى حد ما على Cython مع تقرير خطأ واحد يشير إلى أن "كل استدعاء دالة باستخدام __Pyx_PyCFunction_FastCall يؤدي إلى تسريب الذاكرة في 3.10 ، وهو أمر سيء للغاية." أشارت تقارير الأخطاء إلى أنه كان يسرب ميغا بايت من الذاكرة ، مما يجعل الأمر يستحق إصلاح الخطأ بشكل عاجل.
قرر مطورو CPython أن التسريب موجود في PyEval_EvalFrameEx ، والذي يستخدمه Cython بدلاً من Python ، ولكنه موجود فقط في Python 3.10 والإصدارات الأقدم ، ولكن ليس Python 3.11 والإصدارات الأحدث.
سيكون إصدار الصيانة التالي لـ Python 3.10 هو 3.10.3 ومن المقرر إطلاقه في 4 أبريل 2022.
الإصدار 3.11.0a4 هو الرابع من بين سبعة إصدارات ألفا مخططة للاختبار. تشمل التغييرات الرئيسية لـ 3.11 تحسينات السرعة التي حددها منشئ Python Guido van Rossum في مؤتمر PyCon 2021 . يعمل فان روسوم الآن لدى Microsoft ، ويريد أن يكون Python 3.11 أسرع بمرتين من 3.10. مشروع Faster CPython هو طريقة Microsoft لرد الجميل لمجتمع Python ، الذي نما مع تزايد شعبية التعلم الآلي.
تشير معايير PyPerformance التي يديرها The Faster CPython Project إلى أن CPython 3.11 أسرع بنحو 19٪ على المتوسط الهندسي من 3.10.0.
PEP 654 - مجموعات الاستثناءات باستثناء
الإصدار 3.9.10 هو الإصدار التاسع للصيانة من سلسلة 3.9 القديمة. يحتوي Python 3.9.10 على 130 التزامًا جديدًا. بالنسبة لنظام التشغيل macOS ، يكون المثبت الافتراضي هو برنامج Universal 2 الثنائي المتوافق مع Intel و Apple's Arm silicon.
يلاحظ مطور CPython Pablo Galindo Salgado أن تسرب الذاكرة يؤثر بشكل كبير إلى حد ما على Cython مع تقرير خطأ واحد يشير إلى أن "كل استدعاء دالة باستخدام __Pyx_PyCFunction_FastCall يؤدي إلى تسريب الذاكرة في 3.10 ، وهو أمر سيء للغاية." أشارت تقارير الأخطاء إلى أنه كان يسرب ميغا بايت من الذاكرة ، مما يجعل الأمر يستحق إصلاح الخطأ بشكل عاجل.
قرر مطورو CPython أن التسريب موجود في PyEval_EvalFrameEx ، والذي يستخدمه Cython بدلاً من Python ، ولكنه موجود فقط في Python 3.10 والإصدارات الأقدم ، ولكن ليس Python 3.11 والإصدارات الأحدث.
سيكون إصدار الصيانة التالي لـ Python 3.10 هو 3.10.3 ومن المقرر إطلاقه في 4 أبريل 2022.
الإصدار 3.11.0a4 هو الرابع من بين سبعة إصدارات ألفا مخططة للاختبار. تشمل التغييرات الرئيسية لـ 3.11 تحسينات السرعة التي حددها منشئ Python Guido van Rossum في مؤتمر PyCon 2021 . يعمل فان روسوم الآن لدى Microsoft ، ويريد أن يكون Python 3.11 أسرع بمرتين من 3.10. مشروع Faster CPython هو طريقة Microsoft لرد الجميل لمجتمع Python ، الذي نما مع تزايد شعبية التعلم الآلي.
تشير معايير PyPerformance التي يديرها The Faster CPython Project إلى أن CPython 3.11 أسرع بنحو 19٪ على المتوسط الهندسي من 3.10.0.
تشمل التحسينات الرئيسية الأخرى ما يلي:
PEP 657 - تضمين مواقع الأخطاء الدقيقة في عمليات التتبعPEP 654 - مجموعات الاستثناءات باستثناء
الإصدار 3.9.10 هو الإصدار التاسع للصيانة من سلسلة 3.9 القديمة. يحتوي Python 3.9.10 على 130 التزامًا جديدًا. بالنسبة لنظام التشغيل macOS ، يكون المثبت الافتراضي هو برنامج Universal 2 الثنائي المتوافق مع Intel و Apple's Arm silicon.