تم نشر إصدار SBCL 2.4.2 (Steel Bank Common Lisp)، وهو تطبيق مجاني للغة برمجة Common Lisp. رمز المشروع مكتوب بلغة Common Lisp وC، ويتم توزيعه بموجب ترخيص BSD.
في الإصدار الجديد:
- ينتج الآن التجميع الذاتي على أنظمة Linux x86-64 سلاسل مجمعة متطابقة البت حيث يكون مضيف البناء هو cmucl أو ccl أو clisp أو sbcl نفسه.
- بداية:
- تم تحويل عدد كبير من الجداول الداخلية، خاصة تلك المتعلقة بدعم Unicode، لاستخدام وظائف التجزئة الخالية من التصادم (مثالية)، مما يحسن السرعة ويقلل الحجم.
- يتم الآن تجميع FIND وPOSITION وASSOC وRASSOC باستخدام وسيطات التسلسل الثابت التي تحتوي على رموز كمفاتيح لعمليات البحث باستخدام التجزئة الخالية من التصادم.
- في أنظمة x86-64، يقوم المترجم بإزالة الانتقال من الانتقال إلى الانتقال.
- اصلاحات الشوائب:
- تمت استعادة القدرة على الوراثة من كل من SEQUENCE وSB-MOP:FUNCALLABLE-STANDARD-OBJECT.
- لن يقوم COERCE بتحويل نموذج lambdas إلى وظائف إذا كان اسم النوع المحدد فئة فرعية من FUNCTION.
- لا يفقد LOG مع الوسيطات ذات التعويم المزدوج والوسائط المنطقية (بأي ترتيب) الدقة من خلال الوسيطة ذات التعويم المفرد المتوسطة.
- من المرجح أن يعطي LOG إلى العدد الصحيح للأساس 2 إجابة دقيقة رياضيًا.
- سوف يستخدم LOG على الأعداد النسبية القريبة من الواحد مع البسط أو المقام بالقرب من قوة اثنين log1p وبالتالي سيفقد دقة أقل.
- يقوم تنسيق utf-8 الخارجي بنهايات سطر Unix بتحديث معلومات حجم الحرف عند تطبيق المسار السريع لمخازن أحرف ASCII المؤقتة.
- لم تتم طباعة محتويات السلبيات الموجودة ديناميكيًا والتي ربما لم تعد صالحة في أسلوب PRINT-OBJECT لكائنات THREAD.
- ضع دائمًا نقاط الدخول الخارجية للوظائف قبل أي وظائف محلية أخرى.
- قم بإزالة ملاحظات التحسين غير النشطة للنماذج المقتبسة واستدعاءات APPEND الفردية بسرعة عالية.
- حلقة لا نهائية في COPY-SEQ على صفائف ذات طول صفري بنوع عنصر NIL.
- تجميع ثابت لمنشئي الهياكل غير ذات المستوى الأعلى.
- إصلاحات في SB-SIMD:
- تحسين التحقق من الحدود في SB-SIMD.
- إصلاح SB-SIMD AVX f64.4-reverse.
- إصلاح خلط SB-SIMD على AVX وSSE2.
- عمر ثابت في sse+xmm0 VOPs.
المصدر: opennet.ru