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 con licenza BSD.

Nel nuovo rilascio:

  • Nel garbage collector parallelo, che utilizza l'algoritmo mark-region, è stata aggiunta la supporto parziale per gli header delle istanze compatte.
  • Per le funzioni con tipi di ritorno dichiarati, nei livelli di ottimizzazione con elevati valori di SAFETY e in modalità DEBUG 3, è stata assicurata la verifica del tipo per i valori di ritorno.
  • Sulla piattaforma FreeBSD è stata implementata la linkabilità con libpthread e disabilitata la randomizzazione dello spazio degli indirizzi (ASLR).
  • Ripristinato il supporto per le architetture a 64 bit riscv e ppc.
  • Per tutte le piattaforme è stato implementato il supporto per fastrem-32 (per calcoli FLOOR ottimizzati).
  • Risolto un bug che portava a una pulizia ripetuta delle stringhe spostate dopo la compattazione della memoria tramite il garbage collector parallelo mark-region.
  • Risolta una problematica di blocco del compilatore durante l'elaborazione di alcune costrutti con i tipi SATISFIES.
  • Le tabelle hash utilizzate in diverse parti del sistema (pacchetti, tabelle Unicode) sono state convertite per utilizzare funzioni hash prive di collisioni (perfette).
  • Il macro TYPECASE per le gerarchie delle strutture di classe è stato implementato utilizzando un hash senza collisioni.
  • Al fine di ottimizzare le prestazioni, sono stati rimossi i controlli sui limiti per gli indici con offset costanti, quando il compilatore sa che l'indice è inferiore alla differenza tra dimensione e offset.
  • Nel compilatore sono stati considerati dati aggiuntivi sull'ottimizzazione DIGIT-CHAR.
  • Nel compilatore è stata implementata la possibilità di escludere valori intermedi in alcune chiamate di APPLY, CONCATENATE e MAKE-ARRAY per argomenti costruiti a partire da sequenze con nuove modifiche cons.
  • È stato accelerato il funzionamento del ciclo "(LOOP FOR X IN (REVERSE LIST) …)", che ora utilizza meno cons.
  • Il ciclo "(LOOP … APPEND …)" è diventato più compatto e compie meno operazioni nell'aggiungere NIL.
  • Sono state accelerate e ridotte le verifiche dei tipi di vari array.

Fonte: opennet.ru

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