UtgÄvan av SBCL 2.4.2 (Steel Bank Common Lisp), en fri implementation av programmeringssprÄket Common Lisp har publicerats. Projektets kod Àr skriven i Common Lisp och C, och distribuers under BSD-licensen.
I den nya utgÄvan:
- Komprimeringen av systemet till sig sjÀlv pÄ x86-64-plattformar med Linux ger nu bit-för-bit-identiska korskompilerade fasl-filer dÀr byggvÀrden Àr cmucl, ccl, clisp eller sbcl.
- Optimeringar:
- Ett stort antal interna tabeller, sÀrskilt de relaterade till Unicode-stödet har översatts till att anvÀnda kollisionfria hash-funktioner (perfekta), vilket har förbÀttrat hastigheten och minskat storleken.
- FIND, POSITION, ASSOC och RASSOC med argumenten av oförÀndrade sekvenser som innehÄller symboler som nycklar kompileras nu för att söka med anvÀndning av kollisionfria hash.
- PÄ x86-64-system har kompilatorn sÀkerstÀllt eliminering av jump-to-jump övergÄngar.
- Buggfixar:
- Möjligheten att Àrva frÄn SEQUENCE och SB-MOP:FUNCALLABLE-STANDARD-OBJECT har ÄterstÀllts.
- COERCE kommer inte att konvertera lambda-former till funktioner om den angivna typens namn Àr en underklass av FUNCTION.
- LOG med argument av double-float och rationella argument (i valfri ordning) förlorar inte precision genom en mellanliggande single-float-argument.
- LOG med basen 2 för hela potenser av 2 ger troligen ett matematiskt exakt svar.
- LOG pÄ rationella tal nÀra ett med tÀljare eller nÀmnare nÀra potensen av 2 kommer att anvÀnda log1p och dÀrmed förlora mindre precision.
- Den externa format utf-8 med Unix-radslut uppdaterar information om dess storlekar av tecken nÀr den snabba vÀgen för bufferarna av ASCII-tecken tillÀmpas.
- InnehÄllet i potentiellt ogiltiga dynamiskt existerande kons-listor skrevs förmodligen inte ut i PRINT-OBJECT-metoden för THREAD-objekt.
- Fast placering av externa ingÄngspunkter för funktioner före alla andra lokala funktioner.
- Borttagning av inaktiva optimeringskommentarer för inneslutna former och enstaka APPEND-anrop med hög hastighet.
- OÀndlig loop i COPY-SEQ för arrayer av noll lÀngd med typ element NIL.
- à terstÀllning av kompileringen av strukturkonstruktörer som inte Àr pÄ översta nivÄn.
- Korrigeringar i SB-SIMD:
- FörbÀttrad grÀnskontroll i SB-SIMD.
- Korrigering av SB-SIMD AVX f64.4-reverse.
- Korrigering av blandning i SB-SIMD pÄ AVX och SSE2.
- Korrigering av livslÀngd i sse+xmm0 VOP:ar.
KĂ€lla: opennet.ru
