Wydanie SBCL 2.4.2, implementacja języka Common Lisp.

Opublikowano wydanie SBCL 2.4.2 (Steel Bank Common Lisp), wolnej implementacji języka programowania Common Lisp. Kod projektu został napisany w językach Common Lisp i C, a jego dystrybucja odbywa się na podstawie licencji BSD.

W nowym wydaniu:

  • Kompilacja systemu samego siebie na systemach x86-64 z Linuxem teraz produkuje bitowo identyczne krzyżowe kompilowane fasl na tych systemach, gdzie gospodarzem kompilacji jest cmucl, ccl, clisp lub sam sbcl.
  • Optymalizacje:
    • Wielka liczba wewnętrznych tabel, w szczególności tych, które odnoszą się do wsparcia Unicode, została przetłumaczona na wykorzystanie funkcji haszujących pozbawionych kolizji (perfect), co poprawiło szybkość i zmniejszyło rozmiar.
    • FIND, POSITION, ASSOC i RASSOC z argumentami niezmiennej sekwencji zawierającej symbole jako klucze teraz są kompilowane do poszukiwania z użyciem haszy pozbawionych kolizji.
    • Na systemach x86-64 w kompilatorze zapewniono eliminację przejścia jump-to-jump.
  • Poprawki błędów:
    • Przywrócono możliwość dziedziczenia zarówno od SEQUENCE, jak i od SB-MOP:FUNCALLABLE-STANDARD-OBJECT.
    • COERCE nie będzie konwertować form lambda na funkcje, jeśli zadana nazwa typu będzie podklasą FUNCTION.
    • LOG z argumentami double-float i argumentami racjonalnymi (w dowolnej kolejności) nie traci precyzji przez pośredni argument typu single-float.
    • LOG o podstawie 2 dla całkowitych potęg dwójki prawdopodobnie da matematycznie dokładną odpowiedź.
    • LOG na liczbach racjonalnych bliskich jedności z liczniku lub mianowniku bliskim potędze dwójki będzie używał log1p i w ten sposób straci mniej precyzji.
    • Zewnętrzny format utf-8 z zakończeniami linii Unix aktualizuje informacje o rozmiarach jego symboli przy użyciu szybkiej ścieżki dla buforów znaków ASCII.
    • Nie drukowano zawartości prawdopodobnie już nieprawidłowych dynamicznie istniejących consów w metodzie PRINT-OBJECT dla obiektów THREAD.
    • Stałe umiejscowienie zewnętrznych punktów wejścia dla funkcji przed jakimikolwiek innymi lokalnymi funkcjami.
    • Usunięcie nieaktywnych uwag optymalizacyjnych dla zacytowanych form i pojedynczych wywołań APPEND przy wysokiej prędkości.
    • Nieskończona pętla w COPY-SEQ na tablicach o zerowej długości z typem elementów NIL.
    • Poprawa kompilacji konstruktorów struktur nie będących najwyższym poziomem.
  • Poprawki w SB-SIMD:
    • Udoskonalenie sprawdzania granic w SB-SIMD.
    • Poprawka SB-SIMD AVX f64.4-reverse.
    • Poprawka tasowania SB-SIMD na AVX i SSE2.
    • Poprawka czasu życia w VOP-ach sse+xmm0.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster