LINUX.ORG.RU

Компиляторы


22

0

Всего сообщений: 32

QBE 1.3

 , , qbe,

Группа Разработка

Состоялся выпуск новой версии QBE – универсального бэкенда для создания компиляторов.

От ближайшего аналога (LLVM) QBE отличается намного более простой кодовой базой, высокими скоростью работы и сборки (сам QBE собирается из исходников меньше чем за секунду на Core2Duo) и более дружелюбным для разработчика API, в том числе более простым промежуточным языком (IL). При этом QBE не предназначен для создания промышленных компиляторов с высокими требованиями к качеству генерируемого кода, но хорошо подходит для хобби-проектов и прототипов.

( читать дальше... )

>>> Подробности (c9x.me)

yorshka
()

Blaise - новый компилятор языка Pascal

 , ,

Группа Разработка

Грэм Гелденхейс (Graeme Geldenhuys), разработчик графического пользовательского интерфейса fpGUI, системы сборки PasBuild, системы тестирования FPTest и отладчика opdebugger представил Blaise - компилятор для диалекта языка программирования Object Pascal.

( читать дальше... )

>>> Blaise Pascal Compiler (github.com)

No
()

GCC 16

 , , ,

GCC 16
Группа Разработка

После года разработки опубликован выпуск свободного набора компиляторов GCC 16.1, первый значительный выпуск в новой ветке GCC 16.x. В соответствии со схемой нумерации выпусков, версия 16.0 использовалась в процессе разработки, а незадолго до выхода GCC 16.1 уже ответвилась ветка GCC 17.0, на базе которой будет сформирован следующий значительный релиз GCC 17.1.

( читать дальше... )

>>> Источник: OpenNET (opennet.ru)

dataman
()

Компилятор Си в виде shell-скрипта

 , ,

Группа Open Source

На Гитхабе выложен компилятор C89 в ELF64 на языке shell (sh, не bash). 7796 строк, лицензия ISC (isc.org) (эквивалентна MIT).

>>> Новость на opennet.ru

>>> Скрипт на GitHub (github.com)

question4
()

c3c 0.7.6

 c3, , , ,

Группа Разработка

4 октября состоялся выпуск 0.7.6 кроссплатформенного компилятора и стандартной библиотеки языка программирования C3 (c3-lang.org).

C3 – это эволюция, а не революция: язык, похожий на C, для программистов, которые любят C.
C3 – это язык программирования, основанный на синтаксисе и семантике языка C, с целью его развития при сохранении привычности для программистов C.
Благодаря полной ABI-совместимости с C, можно без труда смешивать C и C3 в одном проекте. В качестве демонстрации, vkQuake был скомпилирован с небольшой частью кода, преобразованной в C3 и скомпилированной с помощью компилятора c3c.

Компилятор написан на языке C с использованием фреймворка LLVM (поддерживаются версии 17-22) и распространяется по лицензии GNU LGPL.
Стандартная библиотека распространяется по лицензии MIT.

( читать дальше... )

>>> Подробности на GitHub (github.com)

dataman
()

МойОфис выложил в публичный доступ AOT-компилятор TypeScript

 , , , ,

Группа Open Source

Компилятор tsnative – это кроссплатформенный компилятор языка TypeScript в нативный код с использованием LLVM.

Ключевые особенности:

  • бесшовная интеграция с кодом на C++;
  • системные абстракции: сборка мусора, очередь событий, различные API;
  • реализация собственного подмножества ECMAScript;
  • AOT-компиляция с применением LLVM.

Поддерживаемые платформы: Linux.

Поддерживается совместимость с:

  • TypeScript ≥ 4.5;
  • ECMAScript ≥ 2016;
  • C++ ≥ 14.

( читать дальше... )

>>> Сообщение в канале (t.me)

eeiaao
()

Steel Bank Comon Lisp (SBCL) 2.4.9

 , , ,

Группа Разработка

29 сентября было объявлено о выходе корректирующего обновления свободной реализации языка программирования Common Lisp sbcl-2.4.9.

Пакет sbcl включает в себя компилятор, профайлер, дебаггер и другие полезные расширения. Распространяется как общественное достояние, с частями под лицензией MIT. Большая часть кода sbcl написана на Common Lisp. Официально поддерживаются платформы x86, x86-64, PowerPC, SPARC, Alpha, MIPS, HPPA, ARM с Linux, а также ряд других операционных систем на аппаратных плафтормах x86 и x86-64.

Изменения в выпуске 2.4.9:

  • Незначительное нарушение совместимости с предыдущими версиями: FIND, POSITION (и их варианты) теперь проверяют аргументы :START и :END на корректность как ограничивающие указатели индексов (bounding index designators) для последовательностей списков.
  • Поддержка платформ:
    • Улучшена поддержка Solaris и ее вариантов на x86 и x86-64 (благодарности Masatoshi SANO)
    • Исправлен баг в обработке таймаутов и прерванных системных вызовов в SB-UNIX:UNIX-SIMPLE-POLL (lp#2078824, благодарности Michał phoe Herda)
    • Исправлен баг в лисповом представлении ssize_t в Windows
    • Исправлено кодирование больших констант в RISC-V. (lp#2077307, благодарности Guillaume LE VAILLANT)
    • Более экономичные низкоуровневые типовые тесты на arm64
    • Сборка после выполнения git-archive должна завершаться без ошибок.
  • Исправлен баг: экспортирование символа во врема итерации пакета больше не пропускает другие символы. (lp#2080387, благодарности kbhit).
  • Оптимизация: улучшения в хэш-таблицах EQ и связанных хэш-функциях.
  • Оптимизация: проверка типа строки и строки-обозначения (string-designator) сделана более эффективной.
  • Оптимизация: компилятор лучше понимает природу результата CONCATENATE.

>>> Подробности (github.com)

xsaeta
()

re2c 1.2

 , , ,

Группа Разработка

В пятницу 2-го августа вышел релиз re2c — свободного генератора лексических анализаторов для языков C и C++. Напомним, что re2c был написан в 1993 году Питером Бамбулисом как экспериментальный генератор очень быстрых лексических анализаторов, отличающийся от других генераторов скоростью сгенерированного кода и необычно гибким пользовательским интерфейсом, который позволяет легко и эффективно встривать анализаторы в существующую кодовую базу. С тех пор проект развивается сообществом и продолжает оставаться площадкой для экспериментов и исследований в области формальных грамматик и конечных автоматов.

( читать дальше... )

>>> Подробности (re2c.org)

skvadrik
()

GCC 9.1

 , ,

GCC 9.1
Группа GNU's Not Unix

3 мая состоялся первый публичный выпуск девятой версии GCC: GCC 9.1. Он содержит множество существенных улучшений и добавлений по сравнению с восьмой версией.

( читать дальше... )

>>> Серия релизов девятой ветки GCC

>>> Руководства пользователя

>>> Подробности (gnu.org)

xaizek
()

Открыт исходный код компилятора C++ Zapcc

 , , ,

Группа Разработка

Zapcc — компилятор языка C++, основанный на наработках LLVM/Clang, данный компилятор отличается высокой скоростью компиляции из-за применения активного кеширования в различных этапах сборки программы. Данный компилятор может выступать в качестве замены gcc и clang, также он поддерживает интеграцию с любыми системами сборок. Исходный код был открыт под лицензией LLVM и располагается на GitHub.

Данный компилятор заметно ускоряет компиляцию C++, но для C это не настолько заметно, к примеру сборка Boost.Math производится в 10 раз быстрее чем у clang, сборка Webkit происходит в 2-4 раза быстрее, сборка Clang при помощи Zapcc выполняется в два раза быстрее, чем самим Clang.

Высокая скорость компиляции достигается применением zapccs, непосредственно выполняющего компиляцию и поддерживающего в оперативной памяти кэш компиляции, в котором между разными запусками сохраняется информация о всех этапах сборки.

Сборка Boost.Math

Сборка WebKit

Официальный сайт проекта

Репозиторий на GitHub

>>> Подробности (ycombinator.com)

playX
()

GCC 8.1

 , c++2a, , ,

Группа GNU's Not Unix

Спустя намеченный год после выхода предыдущего мажорного выпуска «Коллекции компиляторов ГНУ» [0], увидел свет GCC 8.1. Разработчики обещают свежие возможности и более жесткую оптимизацию.

( читать дальше... )

>>> info-gnu@gnu.org (gnu.org)

Zmicier
()

Google представила Grumpy — экспериментальный транскомпилятор Python в Go

 , , , ,

Группа Google

Google представила транскомпилятор и runtime для языка программирования Python — Grumpy. Инструмент планируется использовать в качестве замены CPython из-за плохой масштабируемости последнего.

Продукты компании содержат десятки миллионов строк Python-кода. Так, для фронт- и API-серверов сервиса YouTube, обрабатывающих миллионы запросов в секунду, до сих пор использовался CPython 2.7.

Grumpy позволит транспилировать Python-код в Go, который в свою очередь будет компилироваться в нативный. Из преимуществ подобного подхода — лучшая масштабируемость и совместимость с Go, что может в конечном итоге способствовать плавной миграции на этот ЯП.

>>> Подробности (googleblog.com)

MadDeer
()

Вышел Clasp 0.4

 , clasp, , ,

Группа Open Source

20 ноября вышел в свет Clasp 0.4 — новый релиз, включающий в себя совершенно новый компилятор, способный генерировать до 200 раз более быстрый код, чем его предшественник, так же улучшено взаимодействие с C++ и теперь реализация полнее соответствует стандарту ANSI Common Lisp.

Clasp — новая реализация Common Lisp с упором на легкое взаимодействие с библиотеками C++, используя LLVM для компиляции в нативный код, с целью использования большого количества существующих библиотек и программ. Встраивание их в среду Common Lisp'а позволяет воспользоваться быстрым прототипированием, инкрементальной разработкой и другими возможностями, делающими Common Lisp столь мощным языком.

Основные изменения:

  • Совершенно новый, оптимизирующий/встраивающий (inlining) компилятор — cclasp! (небольшое сравнение с C++ / SBCL / Python)
  • Значения типов fixnum, character и single-float теперь представлены напрямую.
  • Указатели на объекты и cons-ячейки теперь тегируются для скорости.
  • Библиотека Clbind позволяет программистам выставлять наружу внешние C++-библиотеки.
  • Множество исправлений ошибок и улучшений.

>>> Подробности (wordpress.com)

loz
()

GDC получил поддержку ARM

 , ,

Группа Open Source

GDC — GNU версия фронтэнда для языка программирования D получила поддержку архитектуры ARM. В качестве бекэнда используется компилятор GCC. В настоящий момент поддержка ARM далеко не полная и в первую очередь акцентирована на программирование в Linux дистрибутивах работающих на архитектуре ARM. Однако уже сейчас компилятор успешно проходит все внутренние тесты. В ближайшее время планируется доработать поддержку программирования на Android и iOS, что позволит разработчикам использовать язык D для программирования смартофонов.

Это далеко не единственный прогресс в пользу поддержки языком архитектуры ARM. Буквально неделю назад было объявлено, что LDC (компилятор на базе LLVM) так же получил экспериментальную поддержку ARM.

>>> Подробности (dlang.org)

Xroft
()

Компилятор Intel C++ v13.0 для Android временно бесплатен

 , , , ,

Группа Проприетарное ПО

На короткий период стал доступным для бесплатного скачивания и использования компилятор Intel C++ v13.0 для Android. Он ускоряет приложения на устройствах, работающих под Intel Atom. Чтобы увидеть улучшения иногда достаточно просто пересобрать проект. Рекомендованные ОС для запуска компилятора – Ubuntu 10.04 или 11.04, целевые платформы — Android Jelly Bean (4.3) и Ice Cream Sandwich (4.0). Работает только через командную строку, никакого GUI.

Ссылка для скачивания

>>> Источник (habrahabr.ru)

stevejobs
()

Intel Studio XE 2013 и Composer XE 2013

 , , ,

Группа Проприетарное ПО

В сентябре компания Intel выпустила новые наборы инструментов для разработчиков программного обеспечения Studio XE 2013 и Composer XE 2013. Подробности о компонентах можно посмотреть на сайте Intel.

Основные изменения и улучшения:

  • Оптимизированная производительность компиляторов.
  • Поддержка процессоров Ivy Bridge, Haswell и Intel Xeon Phi.
  • Поддержка профилирования приложений Java с низкими затратами вычислительных ресурсов для повышения скорости профилирования в смешанном режиме.
  • Более десяти новых функций профилирования для более точной настройки приложений.
  • Инструмент Pointer Checker для обнаружения случаев переполнения буфера, которые могут привести к прекращению работы и нарушению защиты.
  • Анализ роста динамической памяти для определения свободных ресурсов памяти, которые не могут быть выявлены с использованием традиционных инструментов.
  • Библиотека MPI с улучшенной устойчивостью к отказам для повышения надежности работы кластеров.
  • Условная побитовая воспроизводимость.
  • Поддержка различных стандартов, включая C++ 11, Fortran 2008 и MPI 2.2.
  • Расширенная функция Parallelism Assistance для поддержки Linux, Fortran и C# помимо Windows и C/C++.

>>> Подробности (intel.com)

dinn
()

25 лет GCC и выпуск 4.7.0

 , ,

Группа GNU's Not Unix

Состоялся выпуск GCC версии 4.7.0, приуроченный к 25-летней годовщине проекта.

Основные изменения в этой версии:

  • Поддержка транзакционной памяти на некоторых архитектурах.
  • Расширена поддержка C++11, включая атомарные операции и модель памяти.
  • OpenMP 3.1.
  • Улучшение оптимизации во время компоновки (Link Time Optimization).
  • Новые расширения для отладки кода.
  • Добавлена поддержка архитектур Adapteva's Epiphany, National Semiconductor's CR16, TI's C6X, Tilera's TILE-Gx и TILEPro.
  • Поддержка Intel Haswell и AMD Piledriver; Cortex-A7 (ARM).

>>> Подробности (gmane.org)

maxcom
()

Открыт код компилятора EKOPath 4

 ekopath, ,

Группа Open Source

Компания PathScale открыла исходный код собственного компилятора EKOPath 4. До этого компилятор выпускался под проприетарной лицензией, стоимость одной лицензии составляла порядка $2000.

Основные возможности EKOPath 4

  • Генерирует значительно более быстрый код, чем GCC
  • Оптимизации под x86_64 (Intel® 64/AMD64, поддержка Intel® MMX™, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AMD SSE4A и AVX)
  • Поддержка ISO C99/C++ 2003 и расширений GNU
  • Поддержка Fortran 90/95 и 2003
  • Поддержка DWARF4 и совместимость с GDB

В сравнении, произведенном Phoronix, преимущество EKOPath 4 перед GCC 4.5.2 составляет от 8% до 270%.

Исходный код доступен под лицензией GPLv3, поддержка коммерческих версий будет продолжена.

Также компания в скором времени планирует выпустить под свободной лицензией «убийцу CUDA», собственную реализацию GPGPU. Stay tuned.

Тесты от Phoronix: 1 2 3

>>> Подробности (pathscale.com)

madgnu
()

Статус готовности CLang к сборке ядра Linux

 , , license bsd, lll, , , ,

Группа Ядро Linux

В прошлом октябре был анонсирован проект по адаптации LLVM компилятора CLang к сборке ядра Linux. С тех пор прошло более полугода, и на днях разработчики опубликовали свой отчет о проделанной работе.

В целом:

  • Удалось получить работающую сборку ядер 2.6.37 и 2.6.38 (для некоторых конфигураций)
  • KVM и Xen использовать нельзя, причем последний пока даже не компилируется
  • Компилируются примерно 90% драйверов ядра, многие работают
  • Некоторые поставляемые сторонними вендорами драйвера (Broadcom, NVIDIA) работают отлично
  • Можно использовать многопроцессорные конфигурации (правда, только на x86), однако в некоторых случаях они требуют дополнительных усилий по доработке компилируемого кода

Что не работает:

  • Ассемблер для генерации кода реального режима (директивы code16gcc), поэтому, невозможно откомпилировать код начальной загрузки (для этой цели используется gas)
  • GCC-расширения языка C (некоторые работают, некоторые нет)
  • Опции генерации и оптимизации кода: -mregparm, -fcall-saved-reg, __arch_hweight*(), -pg, атрибут no_instrument_function, -fno-optimize-sibling-calls

Несмотря на возникающие трудности, разработчики полны энтузиазма. Свой проект они назвали LLL project, что расшифровывается как LLVM Linux project.

>>> Подробности (lwn.net)

ttnl
()

Вышел PCC 1.0

 , , , ,

Группа Open Source

Проект Portable C Compiler ставит своей целью создание альтернативы компилятору GCC для языка C под лицензией BSD. Проект берёт начало от оригинального компилятора C, использовавшегося в UNIX в семидесятые - восьмидесятые годы прошлого века. Компилятор отличают:

  • полная поддержка стандарта C99;
  • малый размер (640 КБ в архиве) и простой код;
  • быстрая компиляция.

Заявлена работа в ОС Linux, *BSD, Windows, Mac OS X, Solaris. Поддерживаются платформы i386 и amd64, другие платформы — ограниченно.

Генерируемый код, в большинстве случаев, сравним по эффективности с кодом, производимым GCC. На данный момент компилятор собирает FreeBSD, NetBSD и ядро OpenBSD.

Некоммерческая огранизация BSD Fund, спонсор проекта, объявляет конкурс по успешной сборке ядра Linux при помощи PCC. Также в их планах фронтенды для языков Fortran (почти готов) и C++.

Архитектура PCC (на английском)

Объявление о релизе

>>> Домашняя страница (ltu.se)

unsigned
()