Обновить
72.74

Компиляторы *

Из исходного кода в машинный

Сначала показывать
Порог рейтинга

В состав GCC фронтенда одобрено включение для языка Algol 68

Время на прочтение2 мин
Охват и читатели7.3K

В управляющем разработкой набора компиляторов GCC (GCC Steering Committee) комитете утвердили включение в кодовую базу GCC фронтенда (GNU Compiler Collection Front End) gcc-a68 для поддержки языка программирования Algol 68. После интеграции фронтенда штатный инструментарий GCC сможет использоваться для компиляции программ на языке Algol 68 без необходимости установки компилятора GNU Algol 68. В экспериментальном режиме фронтенд будет доступен в выпуске GCC 16, запланированном на весну следующего года.

Читать далее

Новости

Cloudflare нашли редчайший баг — прямо в компиляторе Go для ARM64

Время на прочтение2 мин
Охват и читатели5.8K

Да, это не опечатка: не рантайм, не race condition в их коде, а чистый косяк в сгенерированном машинном коде Go. И баг был настолько редким, что проявиться он мог только в инфраструктуре масштаба Cloudflare — при 84 миллионах HTTP-запросов в секунду.

На ARM64-машинах Cloudflare стали вылезать странные паники вроде traceback did not unwind completely — ошибка, указывающая на повреждённый стек при попытке раскрутки. Поначалу инженеры списали это на баг в старом коде с panic/recover, потом — на библиотеку Go Netlink. Но когда даже без неё паники продолжились, стало ясно: проблема глубже.

После недель отладки выяснилось: краш происходит при асинхронном вытестении (введённом в Go 1.14), когда рантайм прерывает горутину между двумя машинными инструкциями, корректирующими указатель стека. В этот момент стек оказывается в «разрезанном» состоянии — раскрутчик стека получает некорректный указатель и падает.

Инженеры написали минимальный Go-пример, где функция с большим стеком (>64 КБ) порождает тот самый двойной ADD. После пары минут работы программа стабильно умирала с SIGSEGV. Без сторонних библиотек. Только чистый Go...

Читать далее

Вышел Python 3.14 RC1 (release candidate 1) с официальной поддержкой Free-threaded

Время на прочтение1 мин
Охват и читатели4.9K

22 июля 2025 года состоялся выпуск Python 3.14 RC1 (release candidate 1) с официальной поддержкой Free-threaded. Выпуск Python 3.14 RC2 ожидается в конце августа.

Читать далее

Релиз свободного набора компиляторов GCC 14.3

Время на прочтение1 мин
Охват и читатели1.1K

Состоялся релиз стабильного выпуска свободного набора компиляторов GCC 14.3. Согласно схеме нумерации выпусков проекта, разработка версии GCC 14.0 началась в апреле 2023 года. Релиз свободного набора компиляторов GCC 14.1 случился в мае 2024 года. Разработка версии GCC 15.0 началась в апреле 2024 года. На её базе уже сформирован значительный релиз GCC 15.1.

Основные изменения и доработки в GCC 14.3 связаны с исправлением ошибок ветки GCC 14, включая важные фиксы регрессий и критических багов в GCC 14.2. Разработчики внесли в код проекта 211 патчей с момента предыдущего стабильного выпуска ветки GCC 14. Изменения затронули 57 файлов в решении.

Читать далее

Релиз свободного набора компиляторов GCC 15.1

Время на прочтение1 мин
Охват и читатели1.8K

Состоялся релиз первого стабильного выпуска свободного набора компиляторов GCC 15.1. Согласно схеме нумерации выпусков проекта, разработка версии GCC 15.0 началась в апреле 2024 года. Также создана ветка GCC 16.0, на базе которой будет сформирован следующий значительный релиз GCC 16.1. Релиз свободного набора компиляторов GCC 14.1 состоялся в мае 2024 года.

Читать далее

Qualcomm перевела в разряд открытых проектов компоновщик ELD

Время на прочтение2 мин
Охват и читатели459

Компания Qualcomm опубликовала в открытом доступе проект ELD: Embedded LD с кодом компоновщика ELD, используемого в наборе компиляторов Qualcomm (на базе LLVM) и оптимизированного для связывания объектных файлов в проектах для встраиваемых систем.

Читать далее

Вышел OpenLDK — это компилятор Just-In-Time (JIT) и среда выполнения для Java, полностью реализованная в Common Lisp

Время на прочтение2 мин
Охват и читатели5.5K

Разработчик Энтони Грин представил открытый проект OpenLDK — это компилятор Just-In-Time (JIT) и среда выполнения для Java, полностью реализованная в Common Lisp. Исходный код проекта написан на Java и Common Lisp и опубликован на GitHub под лицензией GNU General Public License v3.0.

Читать далее

Вышел GCC Front End для языка программирования Algol 68

Время на прочтение1 мин
Охват и читатели1.8K

1 января 2025 года состоялся выпуск фронтенда GCC (GNU Compiler Collection) Front End для языка программирования Algol 68 от разработчика Хосе Маркези. Это событие произошло более чем пятьдесят лет после публикации этого ЯП и спустя год после смерти швейцарского ученого Никлауса Вирта — разработчика Algol, Modula, Oberon и создателя Pascal.

«Работа продолжается, но фронтенд уже может компилировать большинство основных языковых конструкций и множество полноценных программ. Правильная система модулей также находится в разработке. Цель состоит в том, чтобы GNU Algol 68 стал строгим суперязыком (strict super‑language) Algol 68. На данный момент я уверен, что реализация жизнеспособна, и разумно продолжить разработку публично, не рискуя тратить чье‑либо время на пустое ПО», — пояснил автор проекта.

В середине декабря 2024 года состоялся выпуск фронтенда для COBOL.

Читать далее

Релиз Tinygo 0.34 — компилятора языка Go для маломощных систем

Время на прочтение2 мин
Охват и читатели1.8K

В конце октября 2024 года состоялся релиз открытого проекта Tinygo 0.34. Это компилятор языка программирования Go для маломощных систем, таких как микроконтроллеры и встраиваемые устройства, которым необходима генерация очень компактных исполняемых файлов и низкое потребление ресурсов. В проекте Tinygo компиляция для поддерживаемых целевых платформ реализована при помощи LLVM, а библиотеки функций заимствованы из основного инструментария проекта Go. Исходный код решения опубликован на GitHub под лицензией BSD.

Читать далее

Инженер Red Hat Никита Попов стал ведущим мейнтейнером проекта LLVM

Время на прочтение2 мин
Охват и читатели3.2K

Сообщество разработчиков единогласно одобрило и подтвердило назначение инженера Red Hat Никиты Попова официальным ведущим мейнтейнером проекта компилятора LLVM с открытым исходным кодом.

Читать далее

Релиз Python 3.13

Время на прочтение4 мин
Охват и читатели17K

7 октября 2024 года состоялся релиз стабильной версии языка программирования Python 3.13 с экспериментальным JIT-компилятором, улучшенным интерактивным интерпретатором на основе PyPy и экспериментальным режимом сборки free-threaded build mode. Поддержка этой ветки запланирована в течение полутора лет. Потом ещё три с половиной года для Python 3.13 будут выходить исправления с устранением уязвимостей.

Читать далее

Microsoft пообещала «невероятный прирост производительности» современных приложений Windows 11

Время на прочтение2 мин
Охват и читатели4.3K

Microsoft заявила, что приложения на основе Windows App SDK в Windows 11 теперь смогут работать значительно быстрее. Ранние тесты показывают улучшение времени загрузки до 50% и уменьшение размера пакета приложения в 8 раз. 

Читать далее

Вышла первая бета-версия языка программирования Python 3.13.0b1

Время на прочтение2 мин
Охват и читатели11K

8 мая 2024 года вышла первая бета-версия языка программирования Python 3.13.0b1 (3.13.0 beta 1) для тестирования с экспериментальным JIT-компилятором и улучшенным интерактивным интерпретатором на основе PyPy.

Читать далее

Ближайшие события

В альфа выпуск языка программирования Python 3.13.0a6 встроен JIT-компилятор

Время на прочтение1 мин
Охват и читатели11K

Опубликован альфа выпуск языка программирования Python 3.13.0a6, в который включена экспериментальная реализация JIT-компилятора, позволяющая добиться существенного повышения производительности. Для активации JIT в CPython добавлена сборочная опция "--enable-experimental-jit". Для работы JIT требуется установка LLVM в качестве дополнительной зависимости.

Читать далее

Вышел CVBasic v0.1.0 — первый релиз компилятора Basic для приставки ColecoVision 1982 года выпуска

Время на прочтение1 мин
Охват и читатели2.9K

В конце февраля 2024 года разработчик Оскар Толедо (aka nanochess) представил CVBasic v0.1.0. Это проект компилятора Basic для портирования и создания игр на приставке ColecoVision 1982 года выпуска.

Читать далее

Ушёл из жизни швейцарский ученый Никлаус Вирт — разработчик Algol, Modula, Oberon и создатель Pascal

Время на прочтение5 мин
Охват и читатели25K

1 января 2024 года ушёл из жизни швейцарский ученый Никлаус Вирт (Niklaus Wirth) — специалист в области информатики, один из известнейших теоретиков в области разработки языков программирования, профессор компьютерных наук Швейцарской высшей технической школы Цюриха (ETHZ), лауреат премии Тьюринга, автор книг по алгоритмам и структурам данных, ведущий разработчик языков программирования Euler, PL360, Algol W, Modula, Modula-2, Oberon, Oberon-2 и Oberon-07 и создатель Pascal. Пионер информатики и популяризатор парадигмы структурного программирования умер на 90-м году жизни в своём доме в окружении семьи и близких.

Читать далее

Инженеры — о системном программировании и разработке микропроцессоров в подкасте «Битовые маски»

Время на прочтение2 мин
Охват и читатели1.7K

Разработчики ежедневно пользуются инструментами, которые создают системные программисты. Но мало кто погружен в детали устройства компиляторов, дебаггеров виртуальных машин, симуляторов и тем более — работал над их созданием. С новым подкастом «Битовые маски» вы познакомитесь с историей развития системного программирования и убедитесь, что в этой сфере много интересных и нерешенных задач. Под катом — тизеры первых выпусков.

Читать далее

Релиз LLVM 17.0

Время на прочтение2 мин
Охват и читатели3.7K
После полугода разработки был выпущен проект LLVM 17.0, о чем сообщается на сайте проекта. LLVM 17.0 является GCC-совместимым инструментом (включая компиляторы, оптимизаторы и генераторы кода). Он компилирует программы в промежуточные биткоды, похожие на RISC виртуальные команды (это низкоуровневая виртуальная машина с системой многоуровневых оптимизаций). Созданный псевдокод может быть конвертирован в машинные команды на лету с помощью JIT-компилятора во время работы программы.
Читать дальше →

Android-разработчики могут тестировать в своих проектах компилятор K2

Время на прочтение1 мин
Охват и читатели1.3K

Google сообщила в своём блоге, что Android-разработчики могут тестировать в своих проектах компилятор K2 для языка программирования Kotlin. Это поможет понять, готов ли проект к переезду на Kotlin 2.0.

Читать далее

Вышел язык программирования Rust 1.70

Время на прочтение3 мин
Охват и читатели5.1K

Опубликован релиз языка программирования общего назначения Rust 1.70. Также была опубликована серия статей о внутреннем устройстве Rust.

Читать далее
1

Вклад авторов