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

La version SBCL 2.4.1 (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 :

  • Ajout d'une prise en charge partielle des en-têtes d'instance compacts au garbage collector parallèle à l'aide de l'algorithme de marquage de région.
  • Pour les fonctions avec des types de retour déclarés, les grands modes d'optimisation SAFETY et DEBUG 3 garantissent que la vérification de type est effectuée sur les valeurs de retour.
  • Sur la plateforme FreeBSD, la liaison avec libpthread est implémentée et la randomisation de l'espace d'adressage (ASLR) est désactivée.
  • L'assembly sur les architectures riscv et ppc 64 bits a été restauré.
  • La prise en charge de Fastrem-32 a été implémentée pour toutes les plates-formes (pour des calculs optimisés FLOOR).
  • Correction d'un bug qui entraînait le vidage des lignes déplacées après le compactage de la mémoire par le garbage collector parallèle de région de marquage.
  • Le problème de bouclage du 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) sont converties pour utiliser des fonctions de hachage exemptes de collisions (parfaites).
  • La macro TYPECASE pour les hiérarchies de structure de classe est implémentée à l'aide d'un hachage sans collision.
  • Pour optimiser les performances, les contrôles de limites ont été supprimés pour les index avec des décalages constants, où le compilateur sait que l'index est inférieur à la différence entre la taille et le décalage.
  • Le compilateur prend en compte des données d'optimisation DIGIT-CHAR supplémentaires.
  • Le compilateur a implémenté la possibilité d'exclure les valeurs intermédiaires dans certains appels APPLY, CONCATENATE et MAKE-ARRAY pour des arguments construits à partir de séquences avec de nouvelles contre-modifications.
  • Le fonctionnement de la boucle « (LOOP FOR X IN (REVERSE LIST)...) » a été accéléré, ce qui utilise désormais moins de contre.
  • La boucle "(LOOP... APPEND...)" est plus compacte et fait moins de travail lors de l'ajout de NIL.
  • Les vérifications de type pour divers tableaux ont été accélérées et raccourcies.

Source: opennet.ru

Ajouter un commentaire