SBCL 2.4.1 (Steel Bank Common Lisp), Common Lisp -ohjelmointikielen ilmainen toteutus, on julkaistu. Projektikoodi on kirjoitettu Common Lisp- ja C-kielillä, ja sitä jaetaan BSD-lisenssillä.
Uudessa julkaisussa:
- Lisätty osittainen tuki kompakteille ilmentymien otsikoille rinnakkaiseen roskakeräimeen käyttämällä mark-region-algoritmia.
- Toiminnoissa, joissa on ilmoitettu palautustyyppi, suuret SAFETY- ja DEBUG 3 -optimointitilat varmistavat, että palautusarvoille suoritetaan tyyppitarkistus.
- FreeBSD-alustalla linkitys libpthreadilla on toteutettu ja osoitetilan satunnaistaminen (ASLR) on poistettu käytöstä.
- 64-bittisten riscv- ja ppc-arkkitehtuurien kokoonpano on palautettu.
- Fastrem-32-tuki on otettu käyttöön kaikille alustoille (optimoituja FLOOR-laskelmia varten).
- Korjattu virhe, joka aiheutti siirrettyjen linjojen huuhtelun uudelleen muistin tiivistämisen jälkeen merkkialueen rinnakkaisjätteenkerääjällä.
- Ongelma kääntäjän silmukassa käsiteltäessä joitain SATISFIES-tyypeillä olevia rakenteita on ratkaistu.
- Järjestelmän eri osissa käytetyt hajautustaulukot (paketit, Unicode-taulukot) muunnetaan käyttämään hajautusfunktioita, jotka ovat vapaita törmäyksistä (täydellinen).
- Luokkarakennehierarkioiden TYPECASE-makro on toteutettu käyttämällä törmäysvapaata tiivistettä.
- Suorituskyvyn optimoimiseksi rajojen tarkistukset on poistettu indekseistä, joissa on vakiopoikkeama, kun kääntäjä tietää, että indeksi on pienempi kuin koon ja offsetin välinen ero.
- Kääntäjä ottaa huomioon DIGIT-CHAR-optimointitiedot.
- Kääntäjä on ottanut käyttöön mahdollisuuden sulkea pois väliarvot joissakin APPLY-, CONCATENATE- ja MAKE-ARRAY-kutsuissa argumenteille, jotka on rakennettu sekvensseistä, joissa on tuoreita miinuksia.
- Silmukan "(LOOP FOR X IN (REVERSE LIST) ...)" toimintaa on nopeutettu, mikä nyt käyttää vähemmän haittoja.
- "(LOOP... APPEND...)" -silmukka on kompaktimpi ja tekee vähemmän työtä lisättäessä NIL.
- Eri taulukoiden tyyppitarkistuksia on nopeutettu ja lyhennetty.
Lähde: opennet.ru