È stato pubblicato il rilascio di SBCL 2.4.0 (Steel Bank Common Lisp), un'implementazione open source del linguaggio di programmazione Common Lisp. Il codice del progetto è scritto in Common Lisp e C, ed è distribuito sotto licenza BSD.
Nel nuovo rilascio:
- Cambiamenti incompatibili:
- *COMPILE-VERBOSE* e *LOAD-VERBOSE* sono impostati su NIL quando il sistema viene avviato con l'argomento della riga di comando «--script».
- quando cerca un file core, il sistema verifica la correttezza di quanto indicato in /proc/self/exe, e, se /proc/self/exe risulta errato, controlla argv[0].
- il sistema non fornisce più nomi di tipi per i simboli standard (CL) ARRAY-RANK, ARRAY-TOTAL-SIZE, PATHNAME-HOST, PATHNAME-TYPE, PATHNAME-DIRECTORY, FLOAT-RADIX o FLOAT-DIGITS.
- Supporto delle piattaforme:
- Nei sistemi arm64 è disponibile la possibilità di abilitare un garbage collector parallelo che utilizza l'algoritmo mark-region.
- Risolti problemi con la compilazione nelle nuove versioni di FreeBSD.
- Correzioni di bug:
- Ripristinata la correttezza dell'output del tipo da parte del compilatore durante le chiamate a REDUCE con «:INITIAL-VALUE» ma senza «:FROM-END».
- Corretto un errore del compilatore durante la dichiarazione di «SB-EXT:MUFFLE-CONDITIONS» per un tipo sconosciuto.
- In alcuni casi il disassemblatore produceva un output male formato per i registri.
- Leggermente ridotta la probabilità di esaurimento dello stack da parte del sistema durante la segnalazione di un errore di esaurimento dello stack di controllo;
- Ottimizzazioni:
- In molti casi sono stati eliminati i barrier di scrittura nel garbage collector.
- Migliorato l'output dei tipi per le variabili iterative con tipi misti.
- Rimossi valori di inizializzazione non utilizzati per i binding LET, migliorata la selezione del tipo di registri.
- Ridotti EQUALP/EQUAL/EQL a EQL/EQ in FIND/MEMBER, in base ai tipi di ingresso.
- Migliorato l'output del tipo per DPB, LOGIOR.
Fonte: opennet.ru
