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