De release van SBCL 2.4.0 (Steel Bank Common Lisp), een vrije implementatie van de programmeertaal Common Lisp, is gepubliceerd. De code van het project is geschreven in Common Lisp en C, en wordt verspreid onder de BSD-licentie.
In de nieuwe release:
- Wijzigingen die compatibiliteit schenden:
- *COMPILE-VERBOSE* en *LOAD-VERBOSE* zijn gebonden aan NIL wanneer het systeem wordt gestart met de opdrachtregelparameter «—script».
- Bij het zoeken naar een core-bestand controleert het systeem of het opgegeven pad in /proc/self/exe correct is, en als /proc/self/exe incorrect blijkt te zijn, controleert het argv[0].
- Het systeem biedt geen typenamen meer voor de standaard (CL) symbolen ARRAY-RANK, ARRAY-TOTAL-SIZE, PATHNAME-HOST, PATHNAME-TYPE, PATHNAME-DIRECTORY, FLOAT-RADIX of FLOAT-DIGITS.
- Ondersteuning voor platforms:
- Op arm64-systemen is het mogelijk om de parallelle garbage collector in te schakelen, die het mark-region algoritme gebruikt.
- Problemen met de bouw in nieuwe versies van FreeBSD zijn opgelost.
- Foutcorrecties:
- De correctheid van de uitvoer van het type door de compiler is hersteld bij aanroepen van REDUCE met «:INITIAL-VALUE» maar zonder «:FROM-END».
- Een compilerfout bij de verklaring van «SB-EXT:MUFFLE-CONDITIONS» voor een onbekend type is verholpen.
- In sommige gevallen gaf de disassembler slecht opgemaakte uitvoer voor registers.
- De kans op het opnieuw uitgeput raken van de stack door het systeem bij het weergeven van een foutmelding over het uitgeput raken van de controle-stack is licht verminderd;
- Optimalisaties:
- In veel gevallen zijn schrijfbalken in de garbage collector verholpen.
- De type-uitvoer voor iteratieve variabelen met gemengde types is verbeterd.
- Ongebruikte initialisatiewaarden voor LET-bindingen zijn verwijderd, de typekeuze voor registers is verbeterd.
- EQUALP/EQUAL/EQL zijn verlaagd tot EQL/EQ in FIND/MEMBER, gebaseerd op de invoertypes.
- De type-uitvoer voor DPB, LOGIOR is verbeterd.
Bron: opennet.ru
