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