LINUX.ORG.RU

Llvm


51

0

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

LLVM 3.4

 ,

Группа Open Source

Спустя 6 месяцев разработки было объявлено об очередном релизе LLVM. Этот релиз включает в себя большое количество изменений. Основные изменения:

  • clang поддерживает все возможности текущего рабочего драфта стандарта C++, временно называемого C++1y;
  • значительно улучшена поддержка С++ статическим анализатором;
  • clang включает новые возможности:
    • инструмент, называемый «clang-format» который может быть использован IDE или текстовым редактором для автоформатирования вашего кода в соответствии со встроенными стилями;
    • новый драйвер разработанный для совместимости с Visual Studio на Windows (экспериментальная поддержка).
  • значительный прирост производительности в кодогенераторе;
  • автоматическая векторизация циклов теперь включается при -Os и -O2 в дополнение к -O3 (для каждого уровня включаются, соответственным образом настроенные, эвристики);
  • автоматическая векторизация SLP («straight-line code») теперь тоже включается по умолчанию;
  • платформа R600 поддерживается по умолчанию (вместо экспериментальной поддержки);
  • несколько больших улучшений качества кода и времени генерации в кодогенераторе для PowerPC;
  • clang -O4 больше не включает link-time оптимизацию по умолчанию. LTO доступно с флагом -flto и может быть включено при любом уровне оптимизации. Старое поведение -O4 можно получить с помощью «clang -O3 -flto»;
  • llvm 3.4 будет последним релизом который будет собираться компилятором C++'98. Следующие релизы будут требовать встроенную поддержку С++'11 от компилятора.

LLVM 3.4 - это результат работы невероятного числа людей работавших вместе последние 6 месяцев, но релиз был бы невозможен без нашей команды добровольцев. Благодарности Bill Wendling за его работу по выпуску релиза, а также тестерам: Arnaud A. de Grandmaison, Ben Pope, Dimitry Andric, Duncan Sands, Erik Verbruggen, Hans Wennborg, Nikola Smiljanic, Paweł Worach, Rafael Espíndola, Renato Golin, Sebastian Dreßler, Sylvestre Ledru, and Tom Stellard.

Release Notes

Скачать

>>> Подробности (uiuc.edu)

encyrtid
()

FreeBSD 10 выйдет без GCC по умолчанию

 , , , ,

Группа BSD

Начиная с прошлой недели GNU Compiler Collection (GCC) больше не собирается по умолчанию как часть базовой системы FreeBSD 10. Известно, что на протяжении нескольких месяцев разработчики FreeBSD, а также пользователи BSD-семейства, добивались перехода на LLVM/Clang и ограничения роли GCC.

Функциональные возможности Clang в качестве компилятора C/C++ достигли уровня GCC, а распространение под лицензией BSD делает его более привлекательным для разработчиков системы. Кроме того, показатели эффективности LLVM продолжают расти: это и более быстрая компиляция, и меньший расход памяти.

GCC останется лишь на тех архитектурах, где неприменим Clang. Желающим продолжить использование GNU Compiler Collection на своей системе необходимо будет указать опции WITH_GCC и WITH_GNUCXX в файле src.conf

>>> Новость на Phoronix (phoronix.com)

Bagrov
()

В Clang появилась поддержка спецификации OpenMP

 , , ,

Группа Open Source

Инженеры корпорации Intel сообщили о завершении работы по полной реализации поддержки OpenMP 3.1 в компиляторе С-подобных языков Clang. На текущий момент реализация успешно проходит все тесты совместимости, исходники лежат на github отдельной веткой, и уже начат процесс объединения изменений с основной веткой Clang.

OpenMP является открытым стандартом по распараллеливанию программ на C-подобных языках и языке программирования Fortran. Наличие поддержки OpenMP в компиляторе позволяет с помощью pragma-директив распараллеливать выполнение ресурсоемких вычислений в таких программах как ImageMagic, GraphicsMagic и многих других. Следует также отметить, что в июле 2013 года вышла новая версия спецификации OpenMP 4.0.

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

shahid
()

Релиз LLVM 3.3

 ,

Группа Open Source

Вышел новый релиз LLVM.

В числе изменений:

  • CellSPU удалён;
  • Документация к LLVM и Clang мигрировала на Sphinx;
  • Улучшена производительность под X86 и ARM;
  • Синтаксис TableGen приведён к более простому виду;
  • MCJIT сейчас поддерживает обработку исключений;
  • Опции командной строки сейчас сгруппированы по категориям, для просмотра смотрите -help;
  • Поддержка архитектуры AArch64;
  • Добавлена поддержка парсера ассемблера PowerPC;
  • DragonEgg — плагин для GCC, который замещает оптимизатор и генератор кода GCC на соответствующие модули LLVM.

Изменения в LLDB — отладчике для LLVM, используемом для скриптов и отдельных приложений:

  • Поддержка watchpoints;
  • Интеграция с VIM;
  • Улучшена поддержка регистров;
  • Сборка с cmake/ninja/auto-tools/clang 3.3/gcc 4.6.

Также достаточно много изменений в целевых архитектурах LLVM.

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

anonymous
()

В Intel создали новую реализацию OpenCL для GNU/Linux

 beignet, , ,

Группа Linux General

Корпорация Intel выпустила первую версию Beignet — собственной открытой среды исполнения OpenCL и бекенда LLVM для Linux, рассчитанного на работу на процессорах с архитектурой Ivy Bridge. На данный момент частично реализована поддержка стандартов OpenCL 1.0 и 1.1. Проект не использует Gallium 3D. В рассылке intel-gfx ставится под сомнение необходимость создания этого проекта, так как он практически полностью дублирует уже существующую функциональность, доступную в Mesa.

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

prozium
()

Вышел LLVM 3.2

 ,

Группа Open Source

Chris Lattner из Apple представил новый релиз LLVM — низкоуровневой виртуальной машины, работающей на многих архитектурах, в байткод которой могут компилироваться многие популярные языки при помощи соответствующих фронтендов.

Разработчики называют данную версию большим скачком, она разрабатывалась более 6 месяцев и содержит большое количество улучшений и новой функциональности.

Clang теперь имеет лучшую в отрасли поддержку C++11, улучшена диагностика, улучшения в C11 и Obj-C (включая поддержку «ObjC literals»). Статический анализатор Clang теперь имеет поддержку кроссфункционального анализа вместе с улучшенной поддержкой Objective-C.

LLVM 3.2 теперь включает:

  • автоматический векторизатор (в ранней стадии разработки);
  • поддержку тюнинга для различных процессоров архитектуры ARM;
  • поддержку кодогенерации NVIDIA PTX (промежуточный код для устройств CUDA);
  • значительные улучшения в фазе компиляции SROA;
  • улучшения в поддержке AVX2 для процессоров x86;
  • значительные улучшения в бэкэнде для процессоров MIPS (включая поддержку ассемблера и дизассемблера);
  • серьезные улучшения в поддержке ELF для архитектуры PowerPC64;
  • LLDB — новый инструментарий для отладки;
  • многочисленные исправления ошибок и минорные улучшения.

Полный список изменений

>>> Подробности (uiuc.edu)

unfo
()

Продемонстрирован запуск openSUSE с ядром Linux, собранным при помощи Clang

 , , ,

Группа Ядро Linux

Разработчики openSUSE представили видеоролик, на котором продемонстрирован процесс загрузки и работы дистрибутива в графическом окружении, при использовании ядра Linux, собранного с использованием компилятора Clang вместо GCC. Сборка осуществлена с задействованием наработок проекта LLVMLinux, развиваемом при участии организации Linux Foundation с целью решения проблем со сборкой ядра в Clang и продвижения созданных патчей в upstream-проекты (ядро Linux и LLVM/Clang).

Использование компилятора Clang, распространяемого под лицензией BSD, позволяет задействовать дополнительные техники оптимизации и диагностики проблем, например, автоматизировать выявление фактов разыменования указателей и других ошибок, связанных с некорректной работой с памятью. Изначально проект LLVMLinux развивался в рамках инициативы Linaro и был ориентирован на сборку ядра для платформы ARM, но месяц назад была обеспечена поддержка архитектур x86_64 и i586.

Для упрощения формирования сборочного окружения и кросс-компиляции ядра с использованием Clang и LLVM подготовлен специальный сборочный инструментарий.

Сборка ядра для архитектур i586 и x86_64 полностью работоспособна и позволяет получать рабочие системы, что демонстрирует пример openSUSE, но официально подобные ядра пока не готовы для применения в конечных продуктах.

Дополнительно налажен ежедневный процесс сравнительного тестирования при помощи пакета Linux Test Project (LTP) свежих сборок ядра, собранных с использованием GCC и Clang.

>>> Подробности (opennet.ru)

Boy_from_Jungle
()

Pymothoa — новый JIT-компилятор для Python

 , , pymothoa,

Группа Open Source

Pymothoa расширяет возможности Python с помощью JIT без модификации кода интерпретатора. Pymothoa работает на уровне приложения, он использует AST, генерируемые Python. Это позволяет пользователю писать оригинальный код на Python, но с небольшими поправками на изменения, вносимые Pymothoa.

Для того чтобы Python произвел JIT-компиляцию, нужно всего лишь декорировать нужную функцию. Pymothoa использует LLVM как бекенд. В сравнении с написанием Си модулей для Python, Pymothoa менее громоздкий и более удобный для распространения исходников, т.к. не требует перекомпилирования модулей.

Написание приложений с использованием диалекта Pymothoa сравнимо с программированием на C. Переменные должны быть декларированы и статически типизированы. За исключением нескольких конструкций, код Python не претерпевает изменений.

На данный момент проект имеет ограничения, такие как: отсутствие исключений, отсутствие поддержки классов, отсутствие поддержки Python-объектов.

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

xpahos
()

Предложен проект создания сервера LLVM/Clang

 ,

Группа Open Source

Предложен для реализации проект постоянного кеширующего сервиса Clang Server (clangd) для обслуживания инфраструктуры из множества разнородных, сложных и интерактивных C++ инструментов. В частности этот сервисный слой позволяет обобщить и построить в рамках libclang удобное взаимодействие множества самых разнородных редакторов, интегрированных сред разработки (IDE) и популярных Unix-инструментов разработки. Этот сервис будет реализован строго в рамках Clang/LLVM и будет поддерживать разработку для языков C, C++, Obj-C и Obj-C++.

Сервис будет предоставлять функциональность, которая традиционно присуща для IDE, но при этом задумка заключается в том, чтобы в рамках единой среды дать возможность работать сразу с несколькими разными «плохо интегрированными в систему» редакторами с одновременным обеспечением связности с такими слоями LLVM, как Tooling library, libclang и в потенциале этот сервис будет иметь свою собственную расширяемую через плагины структуру.

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

>>> Подробности (opennet.ru)

Boy_from_Jungle
()

Вышел LLVM 3.1

 

Группа Open Source

После 6 месяцев, прошедших с выпуска LLVM 3.0, представлен очередной релиз проекта LLVM 3.1. LLVM (Low Level Virtual Machine) — универсальная система анализа, трансформации и оптимизации программ, реализующая виртуальную машину с RISC-подобными инструкциями. Может использоваться как оптимизирующий компилятор этого байткода в машинный код для различных архитектур либо для его интерпретации и JIT-компиляции (для некоторых платформ).

Некоторые изменения:

  • значительно расширена поддержка C++'11 в компиляторе Clang;
  • AddressSanitizer — инструмент для поиска ошибок работы с памятью, позволяющий обнаруживать типичные ошибки при программировании на Си и Си++, такие как выход за границы буфера и т.п.;
  • в генератор кода добавлена поддержка так называемых «связок инструкций», позволяющих значительно повысить качество генерируемого кода для архитектур процессоров VLIW;
  • улучшена работа MIPS и ARM бэкенда;
  • помимо основных функций, этот релиз включает в себя улучшение производительности, исправление ошибок и другие усовершенствования.

Напоминаю, что LLVM позволяет компилировать программы написанные на языках С, C++, Objective-C, Fortran, Ada, Haskell, Java, Python, Ruby, JavaScript, GLSL или любом другом, для которого реализован front-end. В рамках проекта разработан фронтенд Clang для языков C и C++ и версия GCC, использующие llvm в качестве бэкенда. В Glasgow Haskell Compiler также реализована компиляция посредством llvm, существует ещё множество программ, использующих данную инфраструктуру.

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

ymn
()

Поддержка NVIDIA CUDA добавлена в LLVM

 , , ,

Группа Open Source

Процесс открытия исходных кодов компилятора для NVIDIA CUDA завершается. Теперь поддержка CUDA добавлена в фреймворк для построения компиляторов и виртуальных машин LLVM. Это позволит расширить число пользователей CUDA и количество языков программирования с её поддержкой.

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

dinn
()

NVIDIA приоткрывает исходные коды компилятора CUDA

 , ,

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

Сегодня NVIDIA анонсировала открытие исходных кодов нового компилятора CUDA, основанного на технологиях LLVM, для академических групп и разработчиков програмного обеспечения. Это позволит облегчить программирование GPU на различных языках и добавить возможность запускать CUDA программ на альтернативных вычислительных архитектурах. Также в NVIDIA надеются на ускорение развития гетерогенных вычислительных архитектур нового поколения.

Новый CUDA компилятор, основанный на технологии LLVM доступен в последнем выпуске CUDA Toolkit (версия 4.1).

Разработчики программного обеспечения смогут использовать исходные коды компилятора для создания собственных решений.

Doug Miles, директор The Portland Group:

Эта инициатива позволит PGI создать нативные компиляторы CUDA Fortran и OpenACC. Также позволит безпроблемно выполнять отладку и профилирование, используя существующие инструменты, и PGI сфокусируется на высокоуровневой оптимизации и языковых особенностях.

Доступ к исходным кодам компилятора CUDA квалифицированные академические исследователи и разработчики программного обеспечения могут получить после регистрации здесь.

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

dinn
()

LLVM 3.0

 , ,

Группа Open Source

30.11.2011 в свет вышла очередная версия фреймворка для построения компиляторов и виртуальных машин.

Википедия

Low Level Virtual Machine (LLVM) — универсальная система анализа, трансформации и оптимизации программ, реализующая виртуальную машину с RISC-подобными инструкциями. Может использоваться как оптимизирующий компилятор этого байткода в машинный код для различных архитектур либо для его интерпретации и JIT-компиляции (для некоторых платформ).

Проект LLVM официально включает в себя следующие основные проекты:

  • LLVMCore - библиотеки для обеспечения платформонезависимой оптимизации и кодогенерации под различные виды процессоров и платформ;
  • CLang - компилятор языков C/C++/Objective-C для LLVM;
  • dragonegg - объединяет в себе парсер GCC-4.5 и оптимизацию и кодогенерацию на основе библиотек LLVM;
  • LLDB - дебаггер, использует Clang и LLVM;
  • libc++ - реализация стандартной библиотеки C++ (включает неполную поддержку стандарта C++11);
  • vmkit - реализация языков Java и .Net для LLVM;
  • SAFECode - память-безопасный компилятор С/С++.

Помимо упомянутых официальных проектов существует большое количество проектов, которые используют LLVM для компиляции программ для таких языков как Ruby, Python, Haskell, Java, D, PHP, Lua и т.д.

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

  • llvm-gcc больше не поддерживается, рекомендуется использовать clang или dragonegg;
  • LLVM IR (intermediate representation - платформонезависимый ассемблер для LLVM) включает в себя полную поддержку атомарных операций с памятью (load, store, compare, exchange, read/modify/write, etc.);
  • полностью переделан механизм обработки исключений в LLVM IR;
  • полностью переделана система типов LLVM IR;
  • MIPS backend доведён до production quality;
  • ...

Полный и подробный перечень изменений можно посмотреть в подробностях.

В настоящее время для скачивания доступен только исходный код (через svn). В ближайшее время на сайте в списке закачек ожидается появление бинарных сборок и тарболла.

>>> Подробности (англ.) (llvm.org)

shty
()

Анонсирована свободная переносимая реализация OpenCL

 , ,

Группа Hardware and Drivers

Portable OpenCL позволит разрабатывать и запускать программы, использующие OpenCL, на его свободной платформонезависимой реализации (до этого существовали SDK, предоставляемые вендорами аппаратуры).

Это свободная (MIT-лицензия), основанная на LLVM реализация стандарта OpenCL, которая может быть легко приспособлена для новых целевых платформ. Одна из задач проекта — улучшение «переносимости производительности» программ на OpenCL, избегая нужды в ручной оптимизации, зависящей от целевой платформы. Цель «native» включена, что позволяет запускать ядра OpenCL на CPU.

Также ведётся работа над реализацией OpenCL поверх драйверов видеокарт из Gallium3D (Clover state tracker), в котором можно отметить некоторый прогресс за лето, произошедший в рамках GSoC.

Сайт проекта: https://launchpad.net/pocl

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

ChALkeR
()

Статус готовности 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
()

Релиз 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.

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

>>> Подробности (uiuc.edu)

ins3y3d
()

Компилятор Clang теперь пригоден для сборки Linux-ядра

 , ,

Группа Ядро Linux

В блоге разработчиков Clang появилась информация о том, что с помощью Clang удалось собрать работоспособное ядро Linux версии 2.6.36 с поддержкой многопроцессорных систем (SMP). Несмотря на то, что некоторые компоненты ядра пока не поддаются компиляции, это событие приближает тот момент, когда Clang превратится в полноценный аналог GCC.

Немного технической информации:

  • В качестве основного стенда использовался Macbook 5.1 на базе Intel Core 2 Duo (не стоит забывать, что разработку Clang поддерживает в первую очередь компания Apple). На этой конфигурации удалось запустить ядро с работоспособным X-сервером, а также ядро в среде Qemu
  • В качестве второго стенда использовалась microATX-платформа на базе Intel Atom. В этом случае ядро также функционировало, однако разработчики не пытались запускать X-сервер
  • В системе на базе собранного ядра компилятор успешно собирает сам себя, а также новое ядро. Разработчики докладывают об успешной работе кода, полученного в ходе четвертого цикла самосборки.

Работоспособны следующие компоненты ядра:

  • Базовый код ядра, файловые системы, поддержка шин, в том числе и PCI, ACPI
  • SMP, SMT, SysV, pThreads и POSIX IPC
  • NUMA, управление памятью и SWAP
  • Сетевой стек IPv4, за исключением IPSec
  • Некоторые драйверы и прошивки

Пока не удалось добиться работы следующих подсистем:

  • CryptoAPI, а следовательно, и SELinux, Posix ACLs, IPSec, eCrypt
  • Стека IPv6 и код Netfilter/Router из-за зависимости от CryptoAPI
  • Виртуализации (поддержки гипервизора Xen)
  • Поддержки загружаемых модулей

Разработчики намерены и дальше улучшать совместимость между Clang и GCC и добиваться сборки с помощью Clang полностью работоспособного ядра.

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

frankincent
()

Вышел Mono 2.8

 , ,

Группа Open Source

Буквально на днях состоялся долгожданный выпуск Mono 2.8, обновивший платформу разработки Mono. Этот выпуск содержит в себе труд 10 месяцев: новые возможности, исправления стабильности, улучшенная производительность и исправления ошибок.

Основные изменения выпуска:

  • поддержка C# 4.0;
  • профиль 4.0 используется по умолчанию;
  • новый сборщик мусора (используйте --gc=sgen или mono-sgen для его включения) — если перейти к заметкам к выпуску и посмотреть графики тестирования производительности, то проделанная работа весьма впечатляет; на данный момент поддерживаются платформы ARM, x86, x86-64 и s390x;
  • новые фреймворки под лицензиями Mono MIT X11 и Microsoft MS-PL/Apache2:
    • ASP.NET 4.0 (очень много изменений, смотрите весь список в заметках к выпуску);
    • Parallel Framework, включая PLINQ;
    • System.XAML;
    • System.Dynamic;
    • Managed Extensibility Framework;
    • ASP.NET MVC 2;
    • System.Data.Services.Client (клиент для OData);
    • WCF Routing;
    • CodeContracts в .NET 4.0.
  • улучшения производительности:
    • общая производительность была значительно улучшена;
    • поддержка LLVM дошла до стабильного состояния (используйте mono-llvm для запуска нагрузки сервера через LLVM); учтите, что запуск приложения будет занимать больше времени, но зато возрастёт производительность во время работы.
  • API версии 2.0 для встраиваемых систем;
  • удалён профиль 1.1 и некоторые устаревшие библиотеки;
  • интегрирована поддержка OpenBSD;
  • Mono больше не зависит от GLib (заменена на eglib);
  • поведение исключений в пуле потоков теперь аналогично .NET 2.0.

Всех, кто использует C# и Mono для разработки — с праздником! Выпуск получился действительно очень «вкусным», с интересными изменениями, которые делают разработку на Mono ещё более лёгкой.

Для просмотра полного и подробного списка изменений обратитесь к заметкам к выпуску Mono 2.8.

>>> Сообщение в блоге Мигеля де Икасы (tirania.org)

MuZHiK-2
()

Вышел LLVM 2.8

 , , , ,

Группа Open Source

Спустя полгода активной разработки анонсирован выход версии 2.8 набора компиляторов LLVM , распространяемых по условиям BSD-подобной лицензии UIUC. Одновременно вышли и обновления подпроектов LLVM: компилятора C/C++ — Clang, модифицированной версии GCC 4.2.x (использует LLVM для генерации кода) — llvm-gcc, плагина для GCC 4.5 (и выше) — dragonegg.

Наиболее значимые изменения:

  • в основной проект вошел отладчик LLDB;
  • другим дополнением проекта стала замена libstdc++ — совместимая с C++0x стандартом библиотека libc++;
  • LLVM Machine Code (MC) — подсистема для поддержки ассемблирования, дизассемблирования и обработки бинарных форматов файлов (подробности в блоге);

    К сожалению, вышеперечисленные новшества реализованы в LLVM 2.8 только для платформ Mac OS X (x86 и x86-64).

  • llvm-diff для семантического сравнивания .ll-файлов.

В числе других изменений можно отметить:

  • оптимизация внутренних функций работы с памятью;
  • более эффективная отладка за счет генерации метаданных для отладчика в режиме реального времени;
  • более эффективная оптимизация циклов, вложенности функций (inlining), -loweratomic pass;
  • Clang теперь поддерживает ключи -momit-leaf-frame-pointer, -ffunction-sections, -fdata-sections;
  • значительно улучшен аллокатор регистров (особенно для -O0), возможен выбор алллокатора (в зависимости от ключа -O) при использовании ключа -regalloc=default, также будет задействованы SSE-регистры;
  • множество процессор-специфичных оптимизаций для платформ ARM и x86 (SSE, AVX, NEON).

Просмотреть полный список изменений (также по ссылке доступен и список нерешённых проблем выпуска).
Ознакомиться с материалами конференции разработчиков LLVM, прошедшей перед выпуском.
Загрузить source-tarballs.

>>> Сайт проекта (llvm.org)

Sylvia
()

Вышел Mono 2.6.7

 ,

Группа Open Source

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

  • Теперь mono включает в себя MVC2
  • Добавлен WCF — как клиент, так и сервер
  • Добавлена поддержка LLVM для улучшения производительности
  • Новый отладчик, который интегрирован в MonoDevelop 2.2
  • Добавлена поддержка модели безопасности CoreCLR
  • Множество мелких исправлений

>>> Подробности (mono-project.com)

Root-msk
()