Sortie de SBCL 2.3.9, une implémentation du langage Common Lisp

La version 2.3.9 de SBCL (Steel Bank Common Lisp), une implémentation libre du langage de programmation Common Lisp, a été publiée. Le code du projet est écrit en Common Lisp et en C, et est distribué sous licence BSD.

Dans la nouvelle version :

  • L'allocation de pile via DYNAMIC-EXTENT s'applique désormais non seulement à la liaison initiale, mais également à toutes les valeurs que la variable peut prendre (par exemple via SETQ). Cela permet, par exemple, de simplifier la construction de structures complexes ou récursives dans la pile par itérations.
  • Certaines interfaces du module SB-POSIX ont été mises en conformité avec la spécification, et un résultat NULL de la bibliothèque C est considéré comme une erreur si et seulement si errno est modifié par l'appel. Dans ce cas, le signal SYSCALL-ERROR est généré.
  • Amélioration du fonctionnement des macros DO-PASSWDS et DO-GROUPS dans le module SB-POSIX. Ces macros sont conçues pour un travail sécurisé avec la base de données des mots de passe et des groupes.
  • Le support des plateformes Darwin x86 et PowerPC a été restauré (merci à Kirill A. Korinsky, Sergey Fedorov et barracuda156).
  • Correction d'une compilation incorrecte survenue en raison d'une inférence de type erronée lors de la multiplication des valeurs fixnum par des valeurs fractionnaires.
  • Correction d'une erreur de compilateur qui se produisait dans certains cas lors de la vérification des valeurs 64 bits signées et non signées.
  • Correction d'une erreur de compilateur dans le cas où l'argument ":INITIAL-CONTENTS" de MAKE-ARRAY est une constante non séquentielle.
  • Correction d'un bug avec la compilation des fonctions de pliage dans une constante d'une séquence donnée lors du retour d'une fausse valeur à partir des fonctions ":TEST" ou ":KEY".
  • Correction d'un bug dans la compilation de fonctions de tableau ou de séquence avec des arguments qui impliquent des tailles de séquence très grandes.
  • Correction d'une erreur de compilateur qui se produisait lorsque la valeur de retour de ADJUST-ARRAY n'était pas utilisée.
  • L'inférence par le compilateur des types de fonctions qui peuvent être propagés vers l'arrière via la représentation intermédiaire a été optimisée.
  • Inférence de type améliorée pour LDB, LOGBITP et RATIO.
  • Des optimisations ont été apportées pour éliminer les vérifications de limites inutiles pour de nombreux cas de comparaison transitive.

Source: opennet.ru

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