Izdanje SBCL 2.3.9, implementacije jezika Common Lisp

Objavljeno je izdanje SBCL 2.3.9 (Steel Bank Common Lisp), besplatne implementacije programskog jezika Common Lisp. Projektni kod je napisan u Common Lispu i C-u, a distribuira se pod BSD licencom.

U novom izdanju:

  • Dodjela stoga putem DYNAMIC-EXTENT sada se primjenjuje ne samo na početno vezanje, već i na sve vrijednosti koje varijabla može uzeti (na primjer, putem SETQ). To omogućuje, na primjer, pojednostavljenje konstrukcije složenih ili rekurzivnih struktura u stogu kroz ponavljanje.
  • Neka su sučelja u SB-POSIX modulu napravljena da budu u skladu sa specifikacijom, a NULL rezultat iz C biblioteke smatra se pogreškom ako i samo ako je errno promijenjen pozivom. U tom slučaju će se generirati signal SYSCALL-ERROR.
  • Poboljšan rad DO-PASSWDS i DO-GROUPS makronaredbi u SB-POSIX modulu. Ove su makronaredbe dizajnirane za siguran rad s lozinkom i bazom podataka grupe.
  • Podrška za Darwin x86 i PowerPC platforme je obnovljena (zahvaljujući Kirilu A. Korinskom, Sergeju Fedorovu i barracuda156).
  • Ispravljena je pogrešna kompilacija koja se dogodila zbog pogrešnog zaključivanja tipa prilikom množenja fixnum vrijednosti s frakcijskim vrijednostima.
  • Ispravljena je pogreška prevoditelja koja se javljala u nekim slučajevima prilikom provjere 64-bitnih vrijednosti s predznakom i bez predznaka.
  • Ispravljena je pogreška prevoditelja kada je argument ":INITIAL-CONTENTS" za MAKE-ARRAY konstanta koja nije niz.
  • Ispravljena je pogreška u kompajliranju konvolucijskih funkcija u zadanu konstantu niza pri vraćanju lažne vrijednosti iz funkcija “:TEST” ili “:KEY”.
  • Ispravljena je pogreška pri kompajliranju funkcija polja ili nizova s ​​argumentima koji impliciraju vrlo velike veličine niza.
  • Ispravljena je pogreška prevoditelja koja se javlja kada se vrijednost vraćena iz ADJUST-ARRAY ne koristi.
  • Optimizirano zaključivanje kompilatora o tipovima funkcija koje se mogu prenositi unatrag kroz posredni prikaz.
  • Poboljšano zaključivanje tipa za LDB, LOGBITP i RATIO.
  • Napravljene su optimizacije kako bi se uklonile nepotrebne provjere granica za mnoge slučajeve tranzitivnih usporedbi.

Izvor: opennet.ru

Dodajte komentar