Наиболее важные изменения при переходе от lcc-1.23 к lcc-1.24 (changelog)
- Переход на совместимость с gcc-7.3.0. В lcc-1.23 была совместимость с gcc-5.5.0
- Поддержка
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