Paglabas ng SBCL 2.4.1, isang pagpapatupad ng Common Lisp na wika

Ang paglabas ng SBCL 2.4.1 (Steel Bank Common Lisp), isang libreng pagpapatupad ng Common Lisp programming language, ay nai-publish. Ang code ng proyekto ay nakasulat sa Common Lisp at C, at ipinamamahagi sa ilalim ng lisensya ng BSD.

Sa bagong release:

  • Nagdagdag ng bahagyang suporta para sa mga compact na instance na header sa parallel garbage collector gamit ang mark-region algorithm.
  • Para sa mga function na may mga ipinahayag na uri ng pagbabalik, tinitiyak ng malalaking SAFETY at DEBUG 3 optimization mode na ang pagsuri ng uri ay isinasagawa sa mga halaga ng pagbabalik.
  • Sa FreeBSD platform, ang pag-link sa libpthread ay ipinapatupad at ang address space randomization (ASLR) ay hindi pinagana.
  • Ang pagpupulong sa 64-bit na riscv at ppc na mga arkitektura ay naibalik.
  • Ang suporta sa Fastrem-32 ay ipinatupad para sa lahat ng mga platform (para sa na-optimize na mga kalkulasyon sa FLOOR).
  • Inayos ang isang bug na naging sanhi ng muling pag-flush ng mga inilipat na row pagkatapos ng memory compaction ng mark-region parallel garbage collector.
  • Ang problema sa pag-loop ng compiler kapag nagpoproseso ng ilang mga konstruksyon na may mga uri ng SATISFIES ay nalutas na.
  • Ang mga hash table na ginagamit sa iba't ibang bahagi ng system (mga package, Unicode table) ay kino-convert upang gumamit ng mga hash function na walang banggaan (perpekto).
  • Ang TYPECASE macro para sa mga hierarchy ng istruktura ng klase ay ipinapatupad gamit ang isang hash na walang banggaan.
  • Para ma-optimize ang performance, inalis ang mga bounds check para sa mga index na may pare-parehong offset, kung saan alam ng compiler na mas mababa ang index kaysa sa pagkakaiba sa pagitan ng laki at offset.
  • Isinasaalang-alang ng compiler ang karagdagang data ng pag-optimize ng DIGIT-CHAR.
  • Ipinatupad ng compiler ang kakayahang magbukod ng mga intermediate na halaga sa ilang APPLY, CONCATENATE at MAKE-ARRAY na tawag para sa mga argumento na binuo mula sa mga sequence na may mga bagong cons modification.
  • Ang pagpapatakbo ng loop na "(LOOP FOR X IN (REVERSE LIST) ...)" ay pinabilis, na ngayon ay gumagamit ng mas kaunting mga kahinaan.
  • Ang "(LOOP... APPEND...)" loop ay mas compact at hindi gaanong gumagana kapag nagdaragdag ng NIL.
  • Ang mga pagsusuri sa uri para sa iba't ibang mga array ay pinabilis at pinaikli.

Pinagmulan: opennet.ru

Magdagdag ng komento