بيركس هي لغة مصممة لإنشاء وحدات تمديد بيثون مكتوب في التعليمات البرمجية C.
انها مصممة لردم الهوة بين لطيفة، رفيعة المستوى، وسهلة الاستخدام عالم بيثون والفوضى، العالم على مستوى منخفض من C.
لأنواع أساسية مثل الأرقام وسلاسل هذه ليست سيئة للغاية، ولكن أي شيء أكثر تفصيلا وكنت في قطف بيثون الكائنات عدا باستخدام المكالمات API بيثون / C، الأمر الذي يتطلب منك أن تكون دقيق حول الحفاظ على حساب مرجع، والتحقق من وجود أخطاء في كل خطوة وتنظيف بشكل صحيح إذا كان أي شيء يذهب على نحو خاطئ
ما هو الجديد في هذا الإصدار:.
وقد أدخلت بعض الميزات للتفاعل مع C ++ التعليمات البرمجية في هذا الإصدار.
بيركس الأماكن لم تعد اشتعلت الاستثناءات في الدولة موضوع. هذا يضمن أن الاستثناءات وtracebacks لا يتسرب من شرط إلا أن القبض عليهم، إلا إذا كنت تفعل شيئا للحفاظ عليها صراحة.
حاليا، وبشكل افتراضي، يتم السماح حجة لوظيفة بيثون أن يتم التصريح عن نوع التمديد لتلقي قيمة لا شيء؛ لمنع هذا، يجب تأهيل إعلان مشادة مع 'لا شيء'.
أصبح من الممكن الآن لتحديد ونوع التمديد مع سمات بيثون التي لا تشارك في جمع القمامة دوري، وذلك باستخدام الخيار nogc الجديد.
size_t هو الآن نوع المدمج في وهي نوع عاد من قبل المشغل sizeof. أيضا، ويفترض أن أحجام size_t وPy_ssize_t الآن أن يكون في مكان ما بين طويل وطويل طويل.
عمليات بين نوعين الباحث من نفس الدرجة تعود الآن إلى نتيجة غير موقعة إذا تحقق أي من المعاملات غير موقعة. إذا تختلف صفوف، ونتيجة لديه نفس نوع المعامل على نطاق أوسع في المرتبة. وأعتقد أن هذا هو أفضل تقريب قواعد ANSI C ما هو ممكن من دون معرفة أحجام الدقيق لأنواع.
يتعرض PyString_InternFromString الآن تحت cintern اسم بدلا من المتدرب، لأنها ليست بديلا كاملا عن وظيفة المتدرب بيثون (لا يمكن التعامل مع السلاسل التي تحتوي بايت فارغة).
تم تعطيل الاختيار حجم التي تم إنشاؤها سابقا عند استيراد نوع التمديد في الوقت الحاضر حتى أستطيع أن أفكر في شيء أفضل. انها تولد الكثير من ايجابيات كاذبة، على سبيل المثال من إصدارات مختلفة من numpy.
يتم اعتماد خيار اتفاقية __fastcall تدعو الآن. أيضا، بيركس لم تعد تتحمل هذا هو __cdecl الاتفاقية الافتراضي الدعوة. يتعين النظر متوافقة، يجب إما أن أعلن نوعين ظيفة مع اصطلاح استدعاء نفسها، أو على حد سواء يجب ترك الأمر غير محدد.
وكما تم تهديد لبعض الوقت، وذلك باستخدام __new__ كاسم طريقة initialisation من نوع التمديد أصبح خطأ بدلا من مجرد تحذير. في بعض إصدار مستقبلي، __new__ سوف تعاود الظهور مع المزيد من دلالات مثل بايثون.
القيود:
جدت شيئا
لم يتم العثور على التعليقات