LINUX.ORG.RU

Компилятор


22

0

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

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

Группа Open Source

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

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

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

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

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

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

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

>>> Сообщение в канале

 , , , ,

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.

>>> Подробности

 , , ,

xsaeta
()

re2c 1.2

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

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

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

>>> Подробности

 , , ,

skvadrik
()

GCC 9.1

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

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

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

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

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

>>> Подробности

 , ,

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

>>> Подробности

 , , ,

playX
()

GCC 8.1

Группа GNU's Not Unix

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

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

>>> info-gnu@gnu.org

 , c++2a, , ,

Zmicier
()

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

Группа Google

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

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

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

>>> Подробности

 , , , ,

MadDeer
()

Вышел Clasp 0.4

Группа 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++-библиотеки.
  • Множество исправлений ошибок и улучшений.

>>> Подробности

 , clasp, , ,

loz
()

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

Группа Open Source

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

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

>>> Подробности

 , ,

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.

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

>>> Источник

 , , , ,

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++.

>>> Подробности

 , , ,

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).

>>> Подробности

 , ,

maxcom
()

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

Группа 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

>>> Подробности

 ekopath, ,

madgnu
()

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

Группа Ядро 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.

>>> Подробности

 , , license bsd, lll, , , ,

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 (на английском)

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

>>> Домашняя страница

 , , , ,

unsigned
()

Релиз LLVM 2.9

Группа Open Source

Состоялся новый релиз системы программирования Low Level Virtual Machine (LLVM). Среди заявленных изменений можно отметить улучшенную генерацию и оптимизацию кода, поддержку C++'0x в Clang, а также более продвинутый отладчик LLDB для C, Objective-C и C++, официально поддерживающий, правда, только Mac OS X i386 и x86-64.

Наиболее важные функциональные новинки включают встроенную поддержку ассемблера для ELF-файлов (прямую запись в объектный файл), некоторые улучшения в области оптимизации во время линковки файлов (Link Time Optimization, LTO), позволяющей компилировать приложения из большого дерева исходных кодов, автоматическую замену циклов на вызов memset и memcpy, улучшения в отладке оптимизированного кода, готовую инфраструктуру для оптимизации, базирующуюся на регионах (region based optimization), улучшенную поддержка кода, обращающегося к состоянию регистров, новый алгоритм распределения регистров.

Версия 2.9 — последняя в ветке 2.х. В 3-ей ветке планируется отказаться от компилятора llvm-gcc 4.2. Указывается, что проект Clang является лучшим решением для компиляции основанных на C языков, а проект DragonEgg является подходящим решением для тех, кто интересуется интеграцией LLVM с GCC.

Комментарии к релизу

>>> Подробности

 ,

ins3y3d
()

ClangBSD самособирается - нужны тестеры

Группа BSD

Roman Divacky от имени команды ClangBSD написал сегодня в рассылку:

ClangBSD - это бранч FreeBSD, который нацелен на интегрирование clang в FreeBSD, и замену GCC как системного компилятора. Недавно, мы достигли этапа, когда clang может откомпилировать весь базовый сет FreeBSD на архитектурах i386/amd64 (включая все приложения на C++ и самого себя) и загружаемое ядро. Поэтому мы считаем, что пришло время попросить коммьюнити выполнить более широкое тестирование на i386/amd64 (вы также конечно можете помочь и с другими платформами :)).

Все желающие помочь могут воспользоваться этой инструкцией.

>>> Подробности

 , , , ,

val-amart
()

Успешный бутстрап (bootstrap) Clang

Группа Open Source

Clang наконец-то способен откомпилировать сам себя!

Сегодня Clang впервые успешно выполнил бутстрап самого себя (более 550 тысяч строк на C++). Результирующие бинарники прошли все регрессионные тесты Clang и LLVM, а Clang, откомпилированный Clang'гом смог потом откомпилировать весь LLVM и Clang снова. Получившийся Clang (третий этап) также был полностью функциональным и таким образом завершил бутстрап.

Поздравляем всех разработчиков LLVM и Clang с этим важным этапом развития их проекта!

>>> Подробности

 , , ,

val-amart
()

DMD 1.050 и DMD 2.035

Группа Open Source

Не так давно вышел эталонный компилятор эффективного и производительного языка программирования D. Вот список основных изменений за последние несколько релизов:

  • Поддержка solaris.
  • Снижение ограничений на функции, выполняющиеся при компиляции.
  • Вывод информации о символах в формате json при передаче ключа -X
  • Обнаружение некоторых null-pointer dereference'ов при компиляции.
  • Глобальные переменные теперь thread-local по умолчанию
  • Около сотни багфиксов и добавления в стандартной библиотеке.

В подробностях ссылки на полную историю изменений и архивы.

>>> Подробности

 , ,

naryl
()

LLVM 2.6

Группа Open Source

Шесть месяцев усердной разработки принесли свежие плоды: релиз Low-Level Virtual Machine за номером 2.6.

  • Архитектуры
    • Серьёзно и основательно доработана кодогенерция x86-64
    • Поддержка архитектуры ARM V7 (включая Thumb2 и NEON)
    • Новые кодогенераторы для MSP430, SystemZ, и BlackFin
    • SSE 4.2
  • Новые виды оптимизации
  • Многопоточная компиляция и оптимизация кода
  • Оптимизация при линковке на ELF-архитектурах (плагин 'gold linker')
  • Clang
    • Компилятор для C и Objective-C перешёл в статус «production quality» на х86
    • По сравнению с GCC у Clang улучшены сообщения об ошибках и предупреждениях
    • Компиляция проходит в 3 раза быстрее, чем у GCC
  • Новые подпроекты:
    • compiler-rt: Compiler runtime library
    • KLEE: Symbolic Analysis & Test Case Generator
    • DragonEgg: «llvm-gcc» плагин для GCC 4.5
    • llvm-mc: фреймворк, ориентированный на операции с машкодом, в том числе ассемблер, дисассемблер и проч. Проект находится в ранней стадии.

Проект LLVM находит всё более широкое применение в самых различных областях. На данный момент:

  • Компания Apple использует LLVM для оптимизаций в OpenGL
  • Проекты Rubinius и MacRuby являются реализациями виртуальных машин языка Ruby
  • LLVM D компилятор
  • Unladen Swallow (Python)
  • Roadsend PHP compiler и многие другие

>>> Подробности

 , , ,

shahid
()