Наиболее важные изменения при переходе от lcc-1.23 к lcc-1.24 (changelog)¶
Переход на совместимость с gcc-7.3.0. В lcc-1.23 была совместимость с gcc-5.5.0
Переход на edg-5.0. В lcc-1.23 использовался edg-4.14
Поддержка
int128
Поддержка
float128
для e2kПоддержка
__builtin_*_overflow
Поддержка intrinsic’ов от gcc-7.1.0
В режиме языка C++ изменился стандарт по умолчанию. По умолчанию используется режим
-std=gnu++14
. В lcc-1.23 по умолчанию использовался режим-std=gnu++98
Добавлена экспериментальная поддержка C++17
Переход на совместимость с gfortran-5.5.0, плюс поддержка отдельных конструкций из gfortran-6.5.0 и gfortran-7.3.0. В lfortran-1.23 была совместимость с gfortran-4.9
Поддержка отладочной информации в Фортране
Сильно изменилось внутреннее устройство компилятора Фортрана, что привело к потере бинарной совместимости по Фортрану с lfortran-1.23
Добавлена поддержка процессоров elbrus-v6
Для elbrus-v5 и выше добавлена поддержка 128-битных атомарных операций. Generic-версии atomic’ов поддерживают в том числе и работу с дескрипторами защищённого режима
Реализация Memory Sanitizer для e2k
Реализация Leak Sanitizer для e2k
Переход на Address Sanitizer версии llvm-5.0.1 (там очень много изменений)
Реализация Value Profiling для режима
-mptr64
Доведение режима
-fwhole
до промышленного уровняПереход на поддержку OpenMP версии 3.1. В lcc-1.23 была поддержка OpenMP версии 2.5
Русскоязычные сообщения, пока ещё не имеющие перевода на английский язык, по умолчанию печатаются в кодировке UTF-8 (а не KOI8-R, как раньше)
Приведена в порядок работа с исходниками, написанными в кодировке UTF-8