Liberigo de SBCL 2.3.9, efektivigo de la Common Lisp-lingvo

La liberigo de SBCL 2.3.9 (Steel Bank Common Lisp), libera efektivigo de la Common Lisp programlingvo, estis publikigita. La projektkodo estas skribita en Common Lisp kaj C, kaj estas distribuita sub la BSD-licenco.

En la nova eldono:

  • Staka atribuo per DYNAMIC-EXTENT nun validas ne nur por la komenca ligado, sed ankaŭ por ĉiuj valoroj, kiujn la variablo povas preni (ekzemple per SETQ). Tio ebligas, ekzemple, simpligi la konstruadon de kompleksaj aŭ rekursiaj strukturoj en stako per ripeto.
  • Kelkaj interfacoj en la SB-POSIX-modulo estas faritaj por konformiĝi al la specifo, kaj NULL-rezulto de la C-biblioteko estas konsiderita eraro se kaj nur se errno estas ŝanĝita per la voko. En ĉi tiu kazo, la signalo SYSCALL-ERROR estos generita.
  • Plibonigita funkciado de la makrooj DO-PASSWDS kaj DO-GROUPS en la modulo SB-POSIX. Ĉi tiuj makrooj estas dizajnitaj por labori sekure kun la pasvorto kaj grupa datumbazo.
  • Subteno por la platformoj Darwin x86 kaj PowerPC estis restarigita (danke al Kirill A. Korinsky, Sergey Fedorov kaj barracuda156).
  • Korektis malĝustan kompilon, kiu okazis pro erara tipa inferenco dum multiplikado de fiksnumaj valoroj per frakciaj valoroj.
  • Korektis eraron de kompililo, kiu okazis en iuj kazoj kiam oni kontrolas subskribitajn kaj nesubskribitajn 64-bitajn valorojn.
  • Korektis eraron de kompililo kiam la argumento ":INITIAL-CONTENTS" al MAKE-ARRAY estas ne-sekvenca konstanto.
  • Korektis eraron en kompilado de konvoluciaj funkcioj en donitan sinsekvan konstanton, kiam oni redonas malveran valoron de la funkcioj “:TEST” aŭ “:KEY”.
  • Korektis cimon dum kompilado de taraj funkcioj aŭ sekvencoj kun argumentoj kiuj implicas tre grandajn sinsekvojn.
  • Korektis eraron de kompililo, kiu okazas kiam la valoro redonita de ADJUST-ARRAY ne estas uzata.
  • Optimumigita kompililinferenco de funkciospecoj kiuj povas esti disvastigitaj malantaŭen tra meza reprezentantaro.
  • Plibonigita tipinferenco por LDB, LOGBITP kaj RATIO.
  • Optimumigoj estis faritaj por elimini nenecesajn saltajn kontrolojn por multaj kazoj de transitivaj komparoj.

fonto: opennet.ru

Aldoni komenton