Publication de SBCL 2.4.2, une implémentation du langage Common Lisp

Publication de la version SBCL 2.4.2 (Steel Bank Common Lisp), une implémentation libre du langage de programmation Common Lisp. Le code du projet est écrit en Common Lisp et en C, et est distribué sous la licence BSD.

Dans cette nouvelle version :

  • La compilation de la machine se fait maintenant de manière identique sur les systèmes x86-64 avec Linux, produisant des fasl cross-compilés bit à bit identiques lorsque l'hôte de compilation est cmucl, ccl, clisp ou sbcl lui-même.
  • Optimisations :
    • Un grand nombre de tables internes, en particulier celles liées au support de l'Unicode, ont été converties pour utiliser des fonctions de hachage sans collisions (parfaites), ce qui a amélioré la vitesse et réduit la taille.
    • FIND, POSITION, ASSOC et RASSOC avec des arguments de séquence inchangée contenant des symboles comme clés sont désormais compilés pour une recherche utilisant des hachages sans collisions.
    • Les systèmes x86-64 dans le compilateur ont assuré l'élimination des sauts jump-to-jump.
  • Corrections de bogues :
    • Restauration de la possibilité d'hériter à la fois de SEQUENCE et de SB-MOP:FUNCALLABLE-STANDARD-OBJECT.
    • COERCE ne convertira pas les formes lambda en fonctions si le nom de type spécifié est une sous-classe de FUNCTION.
    • LOG avec des arguments double-float et rationnels (dans n'importe quel ordre) ne perd pas de précision à travers un argument intermédiaire single-float.
    • LOG en base 2 de puissances entières de deux donnera probablement une réponse mathématiquement exacte.
    • LOG sur des nombres rationnels proches de un avec un numérateur ou un dénominateur près d'une puissance de deux utilisera log1p, perdant ainsi moins de précision.
    • Le format externe utf-8 avec fins de ligne Unix met à jour les informations sur les dimensions des caractères lors de l'application d'un chemin rapide pour les buffers de caractères ASCII.
    • Le contenu des cons dynamiquement existants, probablement non valides, n'a pas été imprimé dans la méthode PRINT-OBJECT pour les objets THREAD.
    • Placement constant des points d'entrée externes pour les fonctions avant toute autre fonction locale.
    • Suppression des remarques d'optimisation inactives pour les formes mises entre guillemets et les appels uniques à APPEND à grande vitesse.
    • Boucle infinie dans COPY-SEQ sur des tableaux de longueur zéro avec un type d'élément NIL.
    • Correction de la compilation des constructeurs de structures non-niveau supérieur.
  • Corrections dans SB-SIMD :
    • Amélioration de la vérification des limites dans SB-SIMD.
    • Correction SB-SIMD AVX f64.4-reverse.
    • Correction du mélange dans SB-SIMD sur AVX et SSE2.
    • Correction de la durée de vie dans les VOP sse+xmm0.

Source : opennet.ru

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster