La version SBCL 2.4.2 (Steel Bank Common Lisp), une implémentation gratuite du langage de programmation Common Lisp, a été publiée. Le code du projet est écrit en Common Lisp et C, et est distribué sous licence BSD.
Dans la nouvelle version :
- Compilation du système lui-même sur les systèmes x86-64 Linux produit désormais des fasl compilés de manière croisée et identiques au bit près, où l'hôte de compilation est cmucl, ccl, clisp ou sbcl lui-même.
- Description :
- Un grand nombre de tables internes, notamment celles liées au support Unicode, ont été converties pour utiliser des fonctions de hachage sans collision (parfait), ce qui améliore la vitesse et réduit la taille.
- FIND, POSITION, ASSOC et RASSOC avec des arguments à séquence constante contenant des symboles comme clés sont désormais compilés pour les recherches utilisant des hachages sans collision.
- Sur les systèmes x86-64, le compilateur élimine la transition saut à saut.
- Corrections de bogues :
- La possibilité d'hériter à la fois de SEQUENCE et de SB-MOP:FUNCALLABLE-STANDARD-OBJECT a été restaurée.
- COERCE ne convertira pas les formulaires lambdas en fonctions si le nom de type donné est une sous-classe de FUNCTION.
- LOG avec des arguments à double flotteur et rationnels (dans n'importe quel ordre) ne perd pas de précision grâce à l'argument intermédiaire à flotteur unique.
- LOG en base 2 puissance entière de deux donnera très probablement une réponse mathématiquement précise.
- LOG sur les nombres rationnels proches de un avec un numérateur ou un dénominateur proche d'une puissance de deux utilisera log1p et perdra donc moins de précision.
- Le format externe utf-8 avec les fins de ligne Unix met à jour ses informations sur la taille des caractères lors de l'application du chemin rapide pour les tampons de caractères ASCII.
- Le contenu des contres existants dynamiquement probablement plus valides dans la méthode PRINT-OBJECT pour les objets THREAD n'a pas été imprimé.
- Placez toujours les points d’entrée externes pour les fonctions avant toute autre fonction locale.
- Supprimez les notes d'optimisation inactives pour les formulaires cités et les appels APPEND uniques à grande vitesse.
- Boucle infinie dans COPY-SEQ sur des tableaux de longueur nulle avec un type d'élément NIL.
- Correction de la compilation de constructeurs de structures de niveau non supérieur.
- Correctifs dans SB-SIMD :
- Vérification améliorée des limites dans SB-SIMD.
- Correction de SB-SIMD AVX f64.4-reverse.
- Correction du brassage SB-SIMD sur AVX et SSE2.
- Durée de vie fixe en sse+xmm0 VOP.
Source: opennet.ru
