انتشار SBCL 2.4.2 (Steel Bank Common Lisp)، یک پیاده سازی رایگان از زبان برنامه نویسی Common Lisp، منتشر شد. کد پروژه با Common Lisp و C نوشته شده است و تحت مجوز BSD توزیع می شود.
در نسخه جدید:
- خود کامپایل در سیستمهای لینوکس x86-64 اکنون faslهای متقاطع کامپایل شده یکسانی را تولید میکند که میزبان ساخت آن cmucl، ccl، clisp یا خود sbcl است.
- Optimizations:
- تعداد زیادی از جداول داخلی، به ویژه آنهایی که به پشتیبانی یونیکد مربوط می شوند، برای استفاده از توابع هش بدون برخورد (عالی) تبدیل شده اند که باعث بهبود سرعت و کاهش اندازه می شود.
- FIND، POSITION، ASSOC، و RASSOC با آرگومان های توالی ثابت حاوی نمادها به عنوان کلید، اکنون برای جستجو با استفاده از هش های بدون برخورد کامپایل می شوند.
- در سیستم های x86-64، کامپایلر انتقال پرش به پرش را حذف می کند.
- رفع اشکال:
- قابلیت ارث بردن از SEQUENCE و SB-MOP:FUNCALLABLE-STANDARD-OBJECT بازیابی شده است.
- اگر نام نوع داده شده زیر کلاس FUNCTION باشد، COERCE لامبداهای فرم را به توابع تبدیل نمی کند.
- LOG با آرگومان های دو شناور و منطقی (به هر ترتیبی) دقت را از طریق آرگومان تک شناور میانی از دست نمی دهد.
- LOG بر اساس 2 عدد صحیح توان دو به احتمال زیاد از نظر ریاضی پاسخ دقیقی خواهد داد.
- LOG در اعداد گویا نزدیک به یک با صورت یا مخرج نزدیک به توان دو از log1p استفاده می کند و بنابراین دقت کمتری را از دست می دهد.
- فرمت utf-8 خارجی با انتهای خط یونیکس اطلاعات اندازه کاراکتر خود را هنگام اعمال مسیر سریع برای بافرهای کاراکتر ASCII به روز می کند.
- محتویات اشکالات موجود پویا در روش PRINT-OBJECT برای اشیاء THREAD چاپ نشده است.
- همیشه نقاط ورودی خارجی برای توابع را قبل از هر عملکرد محلی دیگری قرار دهید.
- یادداشتهای بهینهسازی غیرفعال را برای فرمهای نقلقولشده و تماسهای APPEND تکی با سرعت بالا حذف کنید.
- حلقه بی نهایت در COPY-SEQ روی آرایه های با طول صفر با نوع عنصر NIL.
- کامپایل ثابت سازه های سازه غیر سطح بالا.
- رفع اشکال در SB-SIMD:
- بررسی مرزهای بهبود یافته در SB-SIMD.
- SB-SIMD AVX f64.4-reverse را رفع کنید.
- اصلاح SB-SIMD در AVX و SSE2.
- طول عمر ثابت در VOPهای sse+xmm0.
منبع: opennet.ru