Uitgave SBCL 2.4.2, implementatie van de programmeertaal Common Lisp

De release van SBCL 2.4.2 (Steel Bank Common Lisp), een vrije implementatie van de programmeertaal Common Lisp, is gepubliceerd. De code van het project is geschreven in de talen Common Lisp en C, en wordt verspreid onder de BSD-licentie.

In de nieuwe release:

  • Compilatie van het systeem zelf op x86-64 met Linux produceert nu bit-voor-bit identieke cross-gecompileerde fasl-bestanden, waar de build host cmucl, ccl, clisp of sbcl zelf is.
  • Optimalisaties:
    • Een groot aantal interne tabellen, met name die gerelateerd aan de ondersteuning van Unicode, is omgezet naar het gebruik van perfecte hashfuncties, waardoor de snelheid is verbeterd en de grootte is verkleind.
    • FIND, POSITION, ASSOC en RASSOC met argumenten van een onveranderlijke reeks, waarin symbolen als sleutels fungeren, worden nu gecompileerd om te zoeken met gebruik van perfecte hashes.
    • Op x86-64-systemen voorziet de compiler in het elimineren van jump-to-jump sprongen.
  • Foutcorrecties:
    • Het is hersteld om te kunnen erven van zowel SEQUENCE als van SB-MOP:FUNCALLABLE-STANDARD-OBJECT.
    • COERCE zal lambda-vormen niet converteren naar functies als de opgegeven type naam een subklasse van FUNCTION is.
    • LOG met double-float en rationale argumenten (in om het even welke volgorde) verliest geen precisie door tussenliggende single-float argumenten.
    • LOG met basis 2 van een gehele macht van twee geeft waarschijnlijk een wiskundig exact antwoord.
    • LOG voor rationale getallen dicht bij één met een teller of noemer dicht bij een macht van twee zal log1p gebruiken en zal daarmee minder precisie verliezen.
    • Het externe formaat utf-8 met Unix-regelafsluitingen actualiseert de informatie over de grootte van de symbolen bij het toepassen van de snelle route voor ASCII-symbolen buffers.
    • Inhoud van waarschijnlijk niet-valide dynamisch bestaande cons-cellen werd niet afgedrukt in de PRINT-OBJECT methode voor THREAD-objecten.
    • Constante plaatsing van externe ingangen voor functies vóór alle andere lokale functies.
    • Verwijdering van inactieve optimalisatie-commentaren voor gequote vormen en enkele aanroepen van APPEND met hoge snelheid.
    • Een oneindige lus in COPY-SEQ op arrays van nul lengte met het type-element NIL.
    • Correctie van de compilatie van constructors voor niet-bovenliggende structuren.
  • Correcties in SB-SIMD:
    • Verbetering van de grenscontrole in SB-SIMD.
    • Correctie van SB-SIMD AVX f64.4-reverse.
    • Correctie van schudden in SB-SIMD op AVX en SSE2.
    • Correctie van de levensduur in sse+xmm0 VOP's.

Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster