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

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

در نسخه جدید:

  • تخصیص پشته از طریق DYNAMIC-EXTENT اکنون نه تنها برای اتصال اولیه، بلکه برای تمام مقادیری که متغیر می تواند بگیرد (به عنوان مثال، از طریق SETQ) اعمال می شود. به عنوان مثال، این امکان را فراهم می کند که ساخت ساختارهای پیچیده یا بازگشتی در یک پشته از طریق تکرار ساده شود.
  • برخی از اینترفیس‌ها در ماژول SB-POSIX به گونه‌ای ساخته شده‌اند که با مشخصات مطابقت داشته باشند، و یک نتیجه NULL از کتابخانه C به عنوان خطا در نظر گرفته می‌شود، اگر و فقط اگر errno با فراخوانی تغییر کند. در این حالت سیگنال SYSCALL-ERROR تولید می شود.
  • عملکرد بهبود یافته ماکروهای DO-PASSWDS و DO-GROUPS در ماژول SB-POSIX. این ماکروها برای کار ایمن با گذرواژه و پایگاه داده گروهی طراحی شده اند.
  • پشتیبانی از پلتفرم‌های Darwin x86 و PowerPC بازیابی شده است (به لطف Kirill A. Korinsky، Sergey Fedorov و barracuda156).
  • تصحیح کامپایل نادرست که به دلیل استنتاج نوع اشتباه هنگام ضرب مقادیر ثابت در مقادیر کسری رخ داده است.
  • یک خطای کامپایلر را که در برخی موارد هنگام بررسی مقادیر امضا شده و بدون علامت 64 بیتی رخ می داد، برطرف کرد.
  • هنگامی که آرگومان ":INITIAL-CONTENTS" در MAKE-ARRAY یک ثابت غیر دنباله باشد، یک خطای کامپایلر برطرف شد.
  • هنگام برگرداندن یک مقدار نادرست از توابع ":TEST" یا ":KEY"، یک خطا در کامپایل توابع کانولوشن در یک ثابت دنباله معین برطرف شد.
  • هنگام کامپایل کردن توابع آرایه یا توالی با آرگومان هایی که دلالت بر اندازه توالی بسیار بزرگ دارند، یک اشکال برطرف شد.
  • یک خطای کامپایلر را که زمانی رخ می‌داد که از مقدار بازگشتی از ADJUST-ARRAY استفاده نمی‌شود، برطرف شد.
  • استنتاج کامپایلر بهینه شده از انواع تابع که می تواند از طریق یک نمایش میانی به عقب منتشر شود.
  • استنتاج نوع بهبود یافته برای LDB، LOGBITP و RATIO.
  • بهینه‌سازی‌هایی برای حذف بررسی‌های غیرضروری کرانه‌ها برای بسیاری از موارد مقایسه‌های گذرا انجام شده است.

منبع: opennet.ru

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