La liberigo de SBCL 2.4.1 (Steel Bank Common Lisp), libera efektivigo de la Common Lisp programlingvo, estis publikigita. La projektkodo estas skribita en Common Lisp kaj C, kaj estas distribuita sub la BSD-licenco.
En la nova eldono:
- La paralela rubkolektilo uzanta la algoritmon mark-region ricevis partan subtenon por kompaktaj instancaj kaplinioj.
- Por funkcioj kun deklaritaj reventipoj, en optimumigaj reĝimoj kun grandaj SAFETY-valoroj kaj en DEBUG 3-reĝimo, tipkontrolo nun estas farata sur revenvaloroj.
- Sur la platformo FreeBSD, ligado kun libpthread estas efektivigita kaj hazardigo de adresspaco (ASLR) estas malŝaltita.
- Restaŭrita asembleo sur 64-bitaj arkitekturoj RISCV kaj PPC.
- Subteno por fastrem-32 (por optimumigitaj FLOOR-kalkuloj) estis efektivigita por ĉiuj platformoj.
- Riparis cimon, kiu kaŭzis, ke translokigitaj vicoj estis denove malplenigitaj post memorkompaktigo fare de la paralela rubkolektilo de mark-region.
- Riparis problemon pri kompilila buklo dum prilaborado de iuj konstrukcioj kun SATISFIES-tipoj.
- Haŝtabeloj uzataj en diversaj partoj de la sistemo (pakaĵoj, Unikodaj tabeloj) estis konvertitaj por uzi kolizi-liberajn haŝfunkciojn (perfekte).
- La makro TYPECASE por hierarkioj de klasstrukturoj estas efektivigita uzante senkolizian haŝon.
- Por plibonigi rendimenton, la kontrolado de limoj estis forigita por indeksoj kun konstantaj delokiĝoj kiam la kompililo scias, ke la indekso estas malpli ol la diferenco inter la grandeco kaj la delokiĝo.
- La kompililo enkalkulas pliajn datumojn pri DIGIT-CHAR optimumigo.
- La kompililo nun havas la kapablon forigi mezajn valorojn en iuj alvokoj de APPLY, CONCATENATE, kaj MAKE-ARRAY por argumentoj konstruitaj el sekvencoj kun freŝaj modifoj de `cons`.
- La buklo "(BUKLO POR X EN (INVERSA LISTO) ...)" estis akcelita kaj nun uzas malpli da konkludoj.
- La buklo "(BUKLO … APPEND …)" fariĝis pli kompakta kaj faras malpli da laboro kiam oni aldonas NIL.
- Akcelis kaj mallongigis kontrolojn de tipoj de diversaj aroj.
fonto: opennet.ru
