Byl vydán release SBCL 2.4.2 (Steel Bank Common Lisp), svobodné implementace programovacího jazyka Common Lisp. Kód projektu je napsán v jazycích Common Lisp a C a je distribuován pod licencí BSD.
V novém vydání:
- Kompilace systémem sama-sobě na systémech x86-64 s Linuxem nyní vytváří bitově identické kros-kompilované fasl tam, kde je hostitelský systém cmucl, ccl, clisp nebo samotný sbcl.
- Optimalizace:
- Velké množství vnitřních tabulek, zejména těch, které se týkají podpory Unicode, bylo převedeno na použití hash funkcí bez kolizí (perfect), což zlepšilo rychlost a zmenšilo velikost.
- FIND, POSITION, ASSOC a RASSOC s argumenty neměnné sekvence obsahující symboly jako klíče jsou nyní kompilovány pro vyhledávání s použitím bezkolizních hashů.
- Na systémech x86-64 byl v kompilátoru zajištěn odstranění přechodu jump-to-jump.
- Opravy chyb:
- Byla obnovena možnost dědění jak od SEQUENCE, tak od SB-MOP:FUNCALLABLE-STANDARD-OBJECT.
- COERCE nebude konvertovat lambda formy na funkce, pokud je zadané jméno typu podtřídou FUNCTION.
- LOG s argumenty double-float a racionálními argumenty (v jakémkoli pořadí) neztrácí přesnost prostřednictvím mezilehlého single-float argumentu.
- LOG se základem 2 jako celé číslo mocniny dvou pravděpodobně poskytne matematicky přesnou odpověď.
- LOG na racionálních číslech blízkých jedničce s čitatelem nebo jmenovatelem blízkým mocnině dvou používá log1p a tím pádem ztrácí méně přesnosti.
- Externí formát utf-8 s unixovými ukončeními řetězců aktualizuje informace o velikosti jeho znaků při aplikaci rychlé cesty pro ASCII znakové buffery.
- Obsah pravděpodobně neplatných dynamicky existujících consů se nevytištěl v metodě PRINT-OBJECT pro THREAD objekty.
- Stálé umístění externích bodů vstupu pro funkce před jakýmikoli jinými lokálními funkcemi.
- Odstranění neaktivních poznámek optimalizace pro uvozovkované formy a jednotlivé volání APPEND při vysoké rychlosti.
- Nekonečná smyčka v COPY-SEQ na polích nulové délky s typem prvků NIL.
- Oprava kompilace konstruktorů struktur ne nejvyšší úrovně.
- Opravy v SB-SIMD:
- Vylepšení kontroly hranic v SB-SIMD.
- Oprava SB-SIMD AVX f64.4-reverse.
- Oprava míchání SB-SIMD na AVX a SSE2.
- Oprava doby života v sse+xmm0 VOP-ách.
Zdroj: opennet.ru
