Выпуск SBCL 2.3.9, рэалізацыі мовы Common Lisp

Апублікаваны выпуск SBCL 2.3.9 (Steel Bank Common Lisp), свабоднай рэалізацыі мовы праграмавання Common Lisp. Код праекту напісаны на мовах Common Lisp і Сі, і распаўсюджваецца пад ліцэнзіяй BSD.

У новым выпуску:

  • Вылучэнне стэка праз DYNAMIC-EXTENT зараз ужываецца не толькі да пачатковай прывязкі, але і да ўсіх значэнняў, якія можа прымаць зменная (напрыклад, праз SETQ). Гэта дазваляе, напрыклад, спрасціць пабудову складаных ці рэкурсіўных структур у стэку праз ітэрацыі.
  • Некаторыя інтэрфейсы ў модулі SB-POSIX прыведзены да адпаведнасці спецыфікацыі і вынік NULL ад Сі-бібліятэкі лічыцца памылкай тады і толькі тады, калі errno будзе зменены выклікам. У гэтым выпадку будзе спароджаны сігнал SYSCALL-ERROR.
  • Палепшана праца макрасаў DO-PASSWDS і DO-GROUPS у модулі SB-POSIX. Гэтыя макрасы прызначаны для бяспечнай працы з базай дадзеных пароляў і груп.
  • Адноўлена падтрымка платформаў Darwin x86 і PowerPC (дзякуем Кірылу А. Карынскаму, Сяргею Фёдарава і barracuda156).
  • Выпраўлена няправільная кампіляцыя, якая адбывалася з прычыны памылковай высновы тыпу пры множанні значэнняў fixnum на дробавыя значэнні.
  • Выпраўлена памылка кампілятара, якая ўзнікае ў некаторых выпадках пры праверцы знакавых і беззнакавых 64-бітных значэнняў.
  • Выпраўлена памылка кампілятара ў выпадку, калі аргумент ": INITIAL-CONTENTS" для MAKE-ARRAY з'яўляецца канстантай-не-паслядоўнасцю.
  • Выпраўлена памылка кампілявання функцый скруткі ў канстанту зададзенай паслядоўнасці пры звароце ілжывага значэння ад функцый ":TEST" або ":KEY".
  • Выпраўлена памылка кампіляцыі функцый масіва ці паслядоўнасцяў з аргументамі, якія разумеюць вельмі вялікія памеры паслядоўнасці.
  • Выпраўлена памылка кампілятара, якая ўзнікае ў выпадку, калі не выкарыстоўваецца значэнне, якое вяртаецца ад ADJUST-ARRAY.
  • Аптымізаваны вывад тыпаў функцый кампілятарам, якія могуць распаўсюджвацца назад (propagated backwards) праз прамежкавае ўяўленне.
  • Палепшаны вывад тыпаў для LDB, LOGBITP і RATIO.
  • Унесены аптымізацыі, звязаныя з выключэннем лішніх праверак граніц для многіх выпадкаў транзітыўных параўнанняў.

Крыніца: opennet.ru

Дадаць каментар