12 июня было объявлено о выходе новой стабильной версии Small Device C Compiler (компилятор языка C для встраиваемых устройств). Он поддерживает архитектуры 8051, DS390, Z80, Z180, Rabbit 2000, HC08, STM8 и PIC (работа в процессе). Основные изменения:
- Заимствование наработок из основной ветки binutils 2.25.
- Уменьшено использование памяти при работе компилятора.
- Изменён диалект языка по-умолчанию на
--std-sdcc11
. - Новое диагностическое сообщение для пропущенного спецификатора типа. Теперь неявное указание типа
int
не является допустимым в режимах, отличных от C90. (модераторам: Поправьте это, ибо я не уверен в правильности. «Diagnostic for missing type specifier: No implicit int outside of C90 mode anymore») - Generic selections из C11.
- Тип
char
теперь беззнаковый по умолчанию. - Символьные константы теперь имеют тип
int
вместоchar
. - ISO C95 и ISO C11 wide character constants (?).
- ISO C95 и ISO C11 wide string literals (?).
- В стандартной библиотеке появилась базовая поддержка wide characters: c16rtomb(), mbrtoc16(), mbsinit(), mbtowc(), mbrlen(), mbrtoc32, c32rtomb(), mbrtowc(), wcrtomb(), mblen(), wctomb().
- Переработка обработчиков прерываний для z80, z180, r2k, r3ka, tlcs90, gbz80.
- Для stm8 учитывается баг аппаратного делителя.
- Добавлен вывод ELF/DWARF для stm8.
- Для ELF выводится таблица символов.
- Для PIC16 теперь по умолчанию используется начальный инициализатор
crt0iz
, который инициализирует глобальные и статические переменные как 0. - Переработано руководство пользователя. Теперь информация, относящаяся к конкретному порту, находится в чётко обозначенной секции.
- Ну и, конечно же, множество исправлений ошибок и улучшений.
Доступны официальные бинарные сборки для всех основных платформ. Исходные коды и документация также доступны на официальном сайте.
>>> Подробности