تم نشر إصدار SBCL 2.3.11 (Steel Bank Common Lisp)، وهو تطبيق مجاني للغة برمجة Common Lisp. رمز المشروع مكتوب بلغة Common Lisp وC، ويتم توزيعه بموجب ترخيص BSD. في الإصدار الجديد:
- عدم التوافق البسيط:
- ستطبق التدفقات ذات التنسيق الخارجي المحدد بـ ":REPLACEMENT" البيانات لاستبدال المعلومات مرة واحدة لكل تدفق، مما يؤدي إلى حدوث أخطاء في فك التشفير (بدلاً من، كما هو الحال في بعض الحالات، مرة واحدة لتسلسل من البايتات، كل منها غير صالح موضع بداية الحرف لهذا التنسيق الخارجي).
- ستشير محددات التنسيق الخارجي الآن إلى حدوث خطأ عند استخدام متغيرات غير مدعومة أو غير معروفة.
- تحسينات:
- عند إرسال وظائف عامة تستخدم أسلوب التركيب القياسي أو القصير، إذا لم تكن هناك طرق أساسية متاحة، فسيقوم النظام باستدعاء الوظيفة العامة SB-PCL:NO-PRIMARY-METHOD، والتي يتمثل سلوكها الافتراضي في الإشارة إلى خطأ. يمكن للمستخدمين تحديد طرق لهذه الوظيفة العامة.
- تدعم التنسيقات الخارجية الآن متغيرات السطر الجديد لترميزات البايت الواحد وutf-8.
- الأخطاء التي تشير إليها وظائف الدفق أو الثماني حول تشفير وفك تشفير الأحرف تدعم الآن إعادة تشغيل USE-VALUE للمعالجات التي توفر بدائل للإدخال أو الإخراج.
- قراءة التسلسل وتسلسل الكتابة يدعمان التسلسلات المحددة من قبل المستخدم؛ يعالج التنفيذ القياسي عنصرًا تلو الآخر، ويقرأ أو يكتب بايتًا واحدًا أو حرفًا من/إلى الدفق، على التوالي.
- بداية:
- لم تعد التنسيقات الخارجية ذات :REPLACEMENT تربط معالجات الأخطاء لوظائف التحويل، مما يؤدي إلى تقليل عدد العمليات السلبية وتحسين الأداء.
- إذا كان :EXTERNAL-FORMAT هو وسيطة STRING-TO-OCTETS أو OCTETS-TO-STRING وهو ثابت وقت الترجمة، فسيتم حل التنسيق الخارجي في وقت التحميل بدلاً من كل استدعاء.
- يمكن للمترجم تقييد أنواع الوسائط لبعض الوظائف بناءً على النوع المستنتج أو الضمني للقيمة التي يتم إرجاعها بواسطة تلك الوظيفة.
- يقوم المترجم بتقليل عدد عمليات التحقق من النوع الزائد في وظائف مثل ASSOC وGETF.
- اصلاحات الشوائب:
- تشير OCTETS-TO-STRING بشكل صحيح أو تطبق البدائل عند استخدام تنسيقات خارجية أحادية البايت لترميزات أقل شيوعًا (مثل iso-8859-3)، بدلاً من أخذ وحدات البت من عنوان NIL وتحويل تلك البتات إلى أحرف.
- FILE-STRING-LENGTH يُرجع الآن NIL إذا لم يتم ترميز قيم الإدخال في تنسيق الدفق الخارجي.
- تحترم التنسيقات الخارجية الجدولية متعددة البايت (EUC-JP، وShift-JIS، وGBK) الآن الحرف البديل (في التنسيق الخارجي أو عبر إعادة التشغيل) عند التشفير إلى ثماني بتات.
- لم يعد التحويل من الثمانيات باستخدام تنسيقات UCS-2 وUCS-4 وUTF-32 الخارجية يقرأ نهاية مصفوفة الثمانيات مع عدد غير صحيح من وحدات ثنائية أو أربع بايت.
- يؤدي التحويل من الثمانيات باستخدام تنسيقات UCS-2 وUCS-4 وUTF-32 الخارجية الآن إلى إرجاع سلسلة بسيطة، كما هو مطلوب بواسطة تعريف النوع OCTETS-TO-STRING.
- لم يعد استخدام تنسيق وسيطة خارجية غير صحيحة لـ OPEN أو With-OPEN-FILE (أو MAKE-FD-STREAM الداخلي) يتسبب في حدوث تسرب لواصف الملف.
- يحدد SB-ROTATE-BYTE مواصفات BYTE خارج الحدود قبل سلبيات الأعداد الصحيحة الكبيرة جدًا لاستخدام الأقنعة والتحولات.
- إصلاح استنتاج النوع عند تجميع نماذج SB-ROTATE-BYTE بموضع غير صفري في تعريف البايت.
- تم إصلاح العديد من أخطاء المجمع عند تجميع MAKE-ARRAY وMAKE-STRING وغيرها ذات حجم ثابت كبير.
- إصلاح الخطأ الداخلي عند التجميع (SETF-SBIT) بفهرس ثابت كبير.
- تم إصلاح خطأ المحول البرمجي الداخلي لوظيفة lambda مع قائمة معلمات غير صحيحة في LABELS.
- إصلاح خطأ مترجم داخلي عند تجميع بعض النماذج العودية اللانهائية من LABELS.
- تم إصلاح خطأ داخلي في برنامج التحويل البرمجي عند محاولة تضمين انتقال إلى تصنيف محذوف بالفعل.
- يجب ألا يكون مؤشر FILL-POINTER سلبيًا أبدًا.
المصدر: opennet.ru
