Објавено е објавувањето на SBCL 2.3.11 (Steel Bank Common Lisp), бесплатна имплементација на програмскиот јазик Common Lisp. Кодот на проектот е напишан во Common Lisp и C и се дистрибуира под лиценцата BSD. Во новото издание:
- Мали некомпатибилности:
- Преносите со надворешен формат наведен со „:REPLACEMENT“ ќе ги применат податоците за да ги заменат информациите еднаш по пренос, што ќе резултира со грешки при декодирање (наместо, во некои случаи, еднаш за низа од бајти од кои секој не е валиден знак почетна позиција за овој надворешен-формат).
- Спецификаторите на надворешен формат сега ќе сигнализираат грешка кога се користат неподдржани или непрепознатливи варијанти.
- Подобрувања:
- При испраќање генерички функции кои користат стандарден или метод на кратка комбинација, ако нема достапни примарни методи, системот ќе ја повика генеричката функција SB-PCL:NO-PRIMARY-METHOD, чиешто стандардно однесување е да сигнализира грешка. Корисниците можат да дефинираат методи за оваа генеричка функција.
- Надворешните формати сега поддржуваат варијанти на нова линија за шифрирање од еден бајт и utf-8.
- Грешките за кодирање и декодирање на знаци сигнализирани со стрим или октет функции сега поддржуваат рестартирање на USE-VALUE за ракувачи кои обезбедуваат замени за влез или излез.
- READ-SEQUENCE и WRITE-SEQUENCE поддржуваат секвенци дефинирани од корисникот; стандардната имплементација обработува елемент по елемент, читајќи или пишувајќи еден бајт или знак до/од протокот, соодветно.
- Оптимизации:
- Надворешните формати со :REPLACEMENT веќе не ги поврзуваат ракувачите со грешки за функциите на конверзија, што треба да го намали бројот на лоши операции и да ги подобри перформансите.
- Ако :EXTERNAL-FORMAT е аргументот за STRING-TO-OCTETS или OCTETS-TO-STRING и е константа за компајлирање, тогаш надворешниот формат се решава во време на вчитување наместо на секој повик.
- Компајлерот може да ги ограничи видовите на аргументи за некои функции врз основа на заклучениот или имплицираниот тип на вредноста што се враќа од таа функција.
- Компајлерот го намалува бројот на непотребни проверки на тип во функции како ASSOC и GETF.
- Поправени грешки:
- OCTETS-TO-STRING правилно сигнализира или применува замени кога се користат надворешни формати од еден бајт за поретко шифрирање (како што е iso-8859-3), наместо да зема битови од NIL адресата и да ги конвертира тие битови во знаци.
- FILE-STRING-LENGTH сега враќа NIL ако влезните вредности не се кодирани во форматот на надворешен пренос.
- Табеларните повеќебајтни надворешни формати (EUC-JP, Shift-JIS, GBK) сега го почитуваат знакот за замена (во надворешен формат или преку рестартирање) кога се кодираат во октети.
- Конвертирањето од октети со помош на надворешни формати UCS-2, UCS-4 и UTF-32 повеќе не го чита крајот на октетната низа со нецелоброен број од два или четири бајти единици.
- Конвертирањето од октети користејќи надворешни формати UCS-2, UCS-4 и UTF-32 сега враќа едноставна низа, како што се бара од дефиницијата за типот OCTETS-TO-STRING.
- Користењето неточен формат на надворешен аргумент за ОТВОРЕНО или СО ОТВОРЕНО-ДАТОЈКА (или внатрешен MAKE-FD-STREAM) повеќе не предизвикува протекување на дескрипторот на датотеката.
- SB-ROTATE-BYTE ги дефинира BYTE спецификациите надвор од границите пред лошите страни на многу големи цели броеви за користење маски и смени.
- Поправете ги заклучоците за типот при составување форми SB-ROTATE-BYTE со POSITION не-нулта во дефиницијата за бајти.
- Поправени неколку асемблер грешки при компајлирање MAKE-ARRAY, MAKE-STRING и други со голема константна големина.
- Поправете ја внатрешната грешка при компајлирање (SETF-SBIT) со голем константен индекс.
- Поправена внатрешна грешка на компајлерот за функцијата ламбда со неточна листа на параметри во LABELS.
- Поправете внатрешна грешка на компајлерот при составување на некои бесконечно рекурзивни форми на LABELS.
- Поправена е внатрешна грешка на компајлерот кога се обидувате да внесете скок до веќе избришана етикета.
- ПОПОИНТЕР ЗА ПОПОЛНУВАЊЕ никогаш не треба да биде негативен.
Извор: opennet.ru
