انتشار SBCL 2.4.1، پیاده سازی زبان Common Lisp

انتشار SBCL 2.4.1 (Steel Bank Common Lisp)، یک پیاده سازی رایگان از زبان برنامه نویسی Common Lisp، منتشر شد. کد پروژه با Common Lisp و C نوشته شده است و تحت مجوز BSD توزیع می شود.

در نسخه جدید:

  • با استفاده از الگوریتم منطقه علامت گذاری، پشتیبانی جزئی از هدرهای نمونه فشرده به جمع کننده زباله موازی اضافه شد.
  • برای توابع با انواع بازگشتی اعلام شده، حالت های بهینه سازی بزرگ SAFETY و DEBUG 3 تضمین می کنند که بررسی نوع در مقادیر برگشتی انجام می شود.
  • در پلتفرم FreeBSD، پیوند با libpthread پیاده سازی شده و تصادفی سازی فضای آدرس (ASLR) غیرفعال است.
  • اسمبلی در معماری های riscv و ppc 64 بیتی بازیابی شده است.
  • پشتیبانی از Fastrem-32 برای همه پلتفرم ها (برای محاسبات بهینه FLOOR) اجرا شده است.
  • رفع اشکالی که باعث می‌شد خطوط جابجا شده پس از فشرده‌سازی حافظه توسط زباله‌گیر موازی منطقه علامت‌گذاری مجدداً شستشو شوند.
  • مشکل حلقه شدن کامپایلر هنگام پردازش برخی از ساختارها با انواع SATISFIES حل شده است.
  • جداول هش مورد استفاده در بخش های مختلف سیستم (بسته ها، جداول یونیکد) به استفاده از توابع هش بدون برخورد (عالی) تبدیل می شوند.
  • ماکرو TYPECASE برای سلسله مراتب ساختار کلاس با استفاده از هش بدون برخورد پیاده سازی می شود.
  • برای بهینه‌سازی عملکرد، بررسی کرانه‌ها برای شاخص‌هایی با آفست ثابت حذف شده‌اند، جایی که کامپایلر می‌داند که شاخص کمتر از تفاوت بین اندازه و افست است.
  • کامپایلر داده های بهینه سازی DIGIT-CHAR اضافی را در نظر می گیرد.
  • کامپایلر توانایی حذف مقادیر میانی را در برخی فراخوانی‌های APPLY، CONCATENATE و MAKE-ARRAY برای آرگومان‌های ساخته‌شده از دنباله‌هایی با تغییرات منفی جدید پیاده‌سازی کرده است.
  • عملیات حلقه "(LOOP FOR X IN (REVERSE LIST) ...)" تسریع شده است که اکنون از معایب کمتری استفاده می کند.
  • حلقه "(LOOP... APPEND...)" فشرده تر است و هنگام اضافه کردن NIL کار کمتری انجام می دهد.
  • بررسی نوع آرایه های مختلف تسریع و کوتاه شده است.

منبع: opennet.ru

اضافه کردن نظر