Vydanie SBCL 2.3.9, implementácia jazyka Common Lisp

Bolo zverejnené vydanie SBCL 2.3.9 (Steel Bank Common Lisp), voľnej implementácie programovacieho jazyka Common Lisp. Kód projektu je napísaný v jazykoch Common Lisp a C a je distribuovaný pod licenciou BSD.

V novom vydaní:

  • Pridelenie zásobníka cez DYNAMIC-EXTENT sa teraz vzťahuje nielen na počiatočnú väzbu, ale aj na všetky hodnoty, ktoré môže premenná nadobudnúť (napríklad cez SETQ). To umožňuje napríklad zjednodušiť konštrukciu zložitých alebo rekurzívnych štruktúr v zásobníku pomocou iterácie.
  • Niektoré rozhrania v module SB-POSIX sú vyrobené tak, aby zodpovedali špecifikácii a výsledok NULL z knižnice C sa považuje za chybu vtedy a len vtedy, ak sa volaním zmení errno. V tomto prípade sa vygeneruje signál SYSCALL-ERROR.
  • Vylepšené ovládanie makier DO-PASSWDS a DO-GROUPS v module SB-POSIX. Tieto makrá sú navrhnuté tak, aby bezpečne pracovali s databázou hesiel a skupín.
  • Podpora pre platformy Darwin x86 a PowerPC bola obnovená (vďaka Kirillovi A. Korinskému, Sergejovi Fedorovovi a barracuda156).
  • Opravená nesprávna kompilácia, ktorá sa vyskytla v dôsledku chybného odvodenia typu pri násobení hodnôt fixnum zlomkovými hodnotami.
  • Opravená chyba kompilátora, ktorá sa vyskytla v niektorých prípadoch pri kontrole podpísaných a nepodpísaných 64-bitových hodnôt.
  • Opravená chyba kompilátora, keď argument ":INITIAL-CONTENTS" pre MAKE-ARRAY je nesekvenčná konštanta.
  • Opravená chyba pri kompilácii konvolučných funkcií do danej sekvenčnej konštanty pri vrátení nesprávnej hodnoty z funkcií „:TEST“ alebo „:KEY“.
  • Opravená chyba pri kompilácii funkcií poľa alebo sekvencií s argumentmi, ktoré naznačujú veľmi veľké veľkosti sekvencií.
  • Opravená chyba kompilátora, ktorá sa vyskytuje, keď sa nepoužije hodnota vrátená z ADJUST-ARRAY.
  • Optimalizovaný kompilátor odvodzovanie typov funkcií, ktoré môžu byť šírené spätne prostredníctvom strednej reprezentácie.
  • Vylepšené odvodenie typu pre LDB, LOGBITP a RATIO.
  • Boli vykonané optimalizácie, aby sa eliminovali zbytočné kontroly hraníc pre mnohé prípady prechodných porovnaní.

Zdroj: opennet.ru

Pridať komentár