De release van SBCL 2.3.9 (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:
- Stackallocatie via DYNAMIC-EXTENT wordt nu niet alleen toegepast op de initiƫle binding, maar ook op alle waarden die een variabele kan aannemen (bijvoorbeeld via SETQ). Dit maakt het bijvoorbeeld eenvoudiger om complexe of recursieve structuren in de stack op te bouwen via iteraties.
- Sommige interfaces in de module SB-POSIX zijn in overeenstemming gebracht met de specificatie en een NULL-resultaat van de C-bibliotheek wordt alleen als een fout beschouwd als errno wordt gewijzigd door de aanroep. In dat geval wordt er een SYSCALL-ERROR-signaal gegenereerd.
- De werking van de macro's DO-PASSWDS en DO-GROUPS in de module SB-POSIX is verbeterd. Deze macro's zijn bedoeld voor veilig beheer van wachtwoord- en groepsdatabases.
- Ondersteuning voor de Darwin x86- en PowerPC-platformen is hersteld (dank aan Kirill A. Korinski, Sergey Fyodorov en barracuda156).
- Een verkeerde compilatie die plaatsvond door onjuiste type-output bij het vermenigvuldigen van fixnum-waarden met decimale waarden is verholpen.
- Een compilerfout die in sommige gevallen optrad bij het controleren van ondertekende en niet-ondertekende 64-bits waardes is opgelost.
- Een compilerfout is verholpen in gevallen waarin de argument: INITIAL-CONTENTS voor MAKE-ARRAY een constante niet-sequentie is.
- Een fout in de compilatie van functies voor reeksen naar een constante opgegeven reeks bij het retourneren van een valse waarde van de functies :TEST of :KEY is verholpen.
- Een compilatiefout voor array- of sequentiefuncties met argumenten die impliceren dat de sequentie zeer grote afmetingen heeft, is verholpen.
- Een compilerfout die optrad wanneer de waarde, die wordt teruggegeven door ADJUST-ARRAY, niet werd gebruikt, is opgelost.
- De type-output van compilerfuncties die achterwaarts kunnen worden verspreid via de tussenliggende representatie is geoptimaliseerd.
- De type-output voor LDB, LOGBITP en RATIO is verbeterd.
- Optimalisaties zijn doorgevoerd die overbodige grenscontroles voor veel gevallen van transitieve vergelijkingen uitsluiten.
Bron: opennet.ru
