Uscita di SBCL 2.4.1, implementazione del linguaggio Common Lisp

È stato pubblicato il rilascio di SBCL 2.4.1 (Steel Bank Common Lisp), un'implementazione libera del linguaggio di programmazione Common Lisp. Il codice del progetto è scritto in Common Lisp e C ed è distribuito sotto licenza BSD.

Nel nuovo rilascio:

  • Nel garbage collector parallelo, che utilizza l'algoritmo mark-region, è stata aggiunta una supporto parziale per le intestazioni delle istanze compatte.
  • Per le funzioni con tipi di ritorno dichiarati, nei modelli di ottimizzazione con alte impostazioni di SAFETY e in modalità DEBUG 3, è stata garantita la verifica del tipo per i valori restituiti.
  • Sulla piattaforma FreeBSD è stata implementata la creazione con libpthread e disabilitata la randomizzazione dello spazio degli indirizzi (ASLR).
  • Ripristinata la compilazione su architetture a 64 bit riscv e ppc.
  • Per tutte le piattaforme è stato implementato il supporto per fastrem-32 (per calcoli ottimizzati FLOOR).
  • Risolta un'errore che causava una pulizia ripetuta delle righe spostate dopo la compattazione della memoria del garbage collector parallelo mark-region.
  • Risolto un problema di loop infinito del compilatore durante l'elaborazione di alcune strutture con tipi SATISFIES.
  • Le tabelle hash utilizzate in diverse parti del sistema (pacchetti, tabelle Unicode) sono state trasformate per utilizzare funzioni hash senza collisioni (perfect).
  • Il macro TYPECASE per le gerarchie delle strutture classi è stato implementato utilizzando hash senza collisioni.
  • A scopo di ottimizzazione delle prestazioni, sono state rimosse le verifiche dei limiti per gli indici con offset costanti, quando il compilatore sa che l'indice è minore della differenza tra la dimensione e l'offset.
  • Nel compilatore sono stati considerati dati aggiuntivi per l'ottimizzazione DIGIT-CHAR.
  • Nel compilatore è stata implementata la possibilità di escludere valori intermedi in alcune chiamate APPLY, CONCATENATE e MAKE-ARRAY per argomenti costruiti da sequenze con fresche modifiche cons.
  • Accelerato il ciclo «(LOOP FOR X IN (REVERSE LIST) …)», che ora utilizza meno cons.
  • Il ciclo «(LOOP … APPEND …)» è diventato più compatto e svolge meno lavoro nell'aggiunta di NIL.
  • Accelerate e ridotte le verifiche dei tipi di vari diversi array.

Fonte: opennet.ru

Acquista un hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista un hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster