Наиболее важные изменения при переходе от 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