Sortie de SBCL 2.4.1, implémentation du langage Common Lisp

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

Dans cette nouvelle version :

  • Un collecteur de déchets parallèle utilisant l'algorithme mark-region a été ajouté avec un support partiel pour les en-têtes d'instances compactes.
  • Pour les fonctions avec types de retour déclarés, dans les modes d'optimisation avec de grandes valeurs de SAFETY et en mode DEBUG 3, une vérification de type pour les valeurs de retour a été mise en place.
  • Sur la plateforme FreeBSD, l'édition avec libpthread a été implémentée et la randomisation de l'espace d'adressage (ASLR) désactivée.
  • La construction sur les architectures 64 bits riscv et ppc a été restaurée.
  • Un support pour fastrem-32 (pour des calculs FLOOR optimisés) a été mis en œuvre sur toutes les plateformes.
  • Un bug menant à un nettoyage redondant des lignes déplacées après la compactage de mémoire par le collecteur de déchets parallèle mark-region a été corrigé.
  • Un problème de boucle infinie dans le compilateur lors du traitement de certaines constructions avec des types SATISFIES a été résolu.
  • Les tables de hachage utilisées dans diverses parties du système (packages, tables Unicode) ont été modifiées pour utiliser des fonctions de hachage sans collisions (parfaites).
  • Le macro TYPECASE pour les hiérarchies de classes de structures a été implémenté en utilisant un hachage sans collisions.
  • Dans le but d'optimiser la performance, les vérifications de limites pour les indices avec des décalages constants ont été supprimées lorsque le compilateur sait que l'indice est inférieur à la différence entre la taille et le décalage.
  • Le compilateur a pris en compte des données supplémentaires sur l'optimisation DIGIT-CHAR.
  • Le compilateur a mis en place la possibilité d'exclure des valeurs intermédiaires dans certains appels de APPLY, CONCATENATE et MAKE-ARRAY pour des arguments constitués de séquences avec des modifications cons fraîches.
  • Le fonctionnement de la boucle «(LOOP FOR X IN (REVERSE LIST) …)» a été accéléré, nécessitant maintenant moins de cons.
  • La boucle «(LOOP … APPEND …)» est devenue plus compacte et effectue moins de travail lors de l'ajout de NIL.
  • Les vérifications de types pour différents tableaux ont été accélérées et réduites.

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