Udgivelsen af SBCL 2.4.1 (Steel Bank Common Lisp), en gratis implementering af Common Lisp-programmeringssproget, er blevet offentliggjort. Projektkoden er skrevet i Common Lisp og C, og distribueres under BSD-licensen.
I den nye udgivelse:
- Tilføjet delvis understøttelse af kompakte instansheadere til den parallelle skraldeopsamler ved hjælp af mark-region-algoritmen.
- For funktioner med deklarerede returtyper sikrer de store SAFETY og DEBUG 3 optimeringstilstande, at typekontrol udføres på returværdier.
- På FreeBSD-platformen er linkning med libpthread implementeret, og adresserumsrandomisering (ASLR) er deaktiveret.
- Samlingen på 64-bit riscv og ppc arkitekturer er blevet gendannet.
- Fastrem-32-understøttelse er implementeret til alle platforme (til optimerede GULV-beregninger).
- Rettede en fejl, der fik flyttede linjer til at blive tømt igen efter hukommelseskomprimering af den parallelle skraldeopsamler i markregionen.
- Problemet med compiler-looping ved behandling af nogle konstruktioner med SATISFIES-typer er blevet løst.
- Hash-tabeller brugt i forskellige dele af systemet (pakker, Unicode-tabeller) konverteres til at bruge hash-funktioner, der er fri for kollisioner (perfekt).
- TYPECASE-makroen til klassestrukturhierarkier implementeres ved hjælp af en kollisionsfri hash.
- For at optimere ydeevnen er grænsekontrol blevet fjernet for indekser med konstante offsets, hvor compileren ved, at indekset er mindre end forskellen mellem størrelse og offset.
- Compileren tager højde for yderligere DIGIT-CHAR optimeringsdata.
- Compileren har implementeret muligheden for at udelukke mellemværdier i nogle APPLY-, CONCATENATE- og MAKE-ARRAY-kald for argumenter konstrueret ud fra sekvenser med nye ulemper-modifikationer.
- Driften af løkken "(LOOP FOR X IN (REVERS LIST) ...)" er blevet fremskyndet, som nu bruger færre ulemper.
- "(LOOP... APPEND...)"-løkken er mere kompakt og gør mindre arbejde, når der tilføjes NIL.
- Typetjek for forskellige arrays er blevet fremskyndet og forkortet.
Kilde: opennet.ru