LINUX.ORG.RU

Llvm


51

0

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

Вышел 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 (wikipedia.org) — как клиент, так и сервер
  • Добавлена поддержка LLVM для улучшения производительности
  • Новый отладчик, который интегрирован в MonoDevelop 2.2
  • Добавлена поддержка модели безопасности CoreCLR
  • Множество мелких исправлений

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

Root-msk
()

Сообщено о возможности clang собрать себя на платформе ARM

 , , , ,

Группа Open Source

В рассылке clang было сообщено об успешном bootstrap'е компилятора clang на платформе ARM. Сборка производилась на Debian-ARM.

Способность clang бутстрапиться на платформе ARM делает возможным использование его не только в качестве кросскомпилятора для встраиваемых решений, но и для разворачивание полноценных систем в устройствах на базе процессора ARM.

Напомним, что clang — компилятор на базе фреймворка LLVM, развиваемый Apple и сообществом. Распространяется он под BSD лицензией.

Домашняя страница проекта

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

vaulter
()

Dovecot переходит на CLang

 , , ,

Группа Open Source

Автор популярного IMAP/POP3 сервера Dovecot давно хотел перейти на CLang, но многие важные проверки на возможные ошибки не были реализованы, например проверка на корректность формата в printf() из-за этого и использовался GCC.

В последние пару дней один из разработчиков стал добавлять такие проверки. И у него это получилось лучше, чем у команды GCC.

Были проведены тесты, которые показали, что код собранный CLang работает на 7% быстрее.

Похоже, что это первый из наиболее крупных проектов, которые официально сказали что CLang/LLVM это mainstream.

>>> Оригинал (dovecot.org)

catap
()

LLVM 2.7

 , , , , ,

Группа Open Source

Low-Level Virtual Machine - инфраструктура компиляторов для различных языков программирования, кодогенераторов байт-кода и двоичного исполняемого кода для различных платформ.

  • Clang
    • Умеет собирать сам себя
    • Улучшена поддержка Objective-C ABI
    • Поддержка ARM для Linux и Darwin ABI
    • Множество улучшений в анализаторе кода
  • DragonEgg - плагин для gcc, заменяющий встроенные в gcc оптимизаторы и кодогенераторы аналогами от LLVM. Поддерживает C, C++, Fortran, Ada и слегка Obj-C.
  • llvm-gcc работает с gcc-4.5 и поддерживает ARM v7 NEON
  • Новый логотип
  • Ассемблер и дисассемблер машкода
  • И множество других улучшений в кодогенераторах, оптимизаторах, интерпретаторах и JIT, кодоанализаторах и поддержке ARM...

LLVM развивается силами корпорации Apple и сообщества. Исходники доступны под лицензией BSD.

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

shahid
()

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

 , , , ,

Группа BSD

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

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

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

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

val-amart
()

GCC-плагин DragonEgg прошёл тест на самосборку

 , , ,

Группа Open Source

Разработчики проекта LLVM сообщили о новом достижении - GCC-плагин DragonEgg достиг состояния, позволяющего пересобрать самого себя. В начале с использованием DragonEgg были пересобраны исходные тексты GCC-4.5, LLVM и dragonegg, а затем эксперимент был повторен с задействованием для пересборки свежескомпилированного бинарного файла.

DragonEgg представляет собой подключаемый к набору компиляторов GCC плагин, позволяющий в максимально прозрачном режиме использовать в стандартном GCC оптимизаторы и генераторы кода, разработанные в рамках LLVM.

В настоящий момент до достаточно высокого уровня доведена работоспособность DragonEgg для языков Си и Си++, частично реализована поддержка Fortran и Ada, хуже обстоят дела с поддержкой Obj-C и Obj-C++, много работы предстоит проделать для поддержки Java. На текущей стадии развития DragonEgg поддерживает архитектуры x86-32 и x86-64, может работать в Linux и Darwin.

Запись в блоге LLVM

>>> Взято с Opennet.ru (opennet.ru)

jeuta
()

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

 , , ,

Группа Open Source

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

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

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

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

val-amart
()

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 и многие другие

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

shahid
()

Unladen Swallow: новая реализация интерпретатора Python на базе LLVM

 , , ,

Группа Open Source

В лучших традициях большинства популярных интернет-ресурсов и по просьбе читателей мы делаем репост интересной новости от 28 марта 2009 года, исправленный и дополненный.

Несколько сотрудников компании Google, принимающие участие в разработке CPython, объявили о выпуске новой версии высокопроизводительной экспериментальной реализации интерпретатора языка Python — Unladen Swallow, в которой производится обкатка некоторых идей по существенному увеличению производительности.

Основные задачи:

  • Довести свою ветку Python до, как минимум, пятикратного увеличения производительности по сравнению с классическим CPython.
  • Производительность Python-приложений не должна опускаться ниже определённого уровня.
  • Доработка совместимости на уровне исходного кода с приложениями и расширениями CPython.

Хотя разработчики пока не рекомендуют использование данного ПО в промышленной эксплуатации, оно уже проходит все стандартные тесты на совместимость с базовой реализацией языка. Команда Unladen Swallow не планирует создавать форк Python - лишь заниматься поддержкой собственной ветки.

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

wyldrodney
()

Проект FreeBSD намерен сменить GCC на LLVM+Clang

 , , ,

Группа BSD

В квартальном отчете проекта FreeBSD сообщается о желании заменить набор компиляторов GNU Compiler Collection на связку LLVM и Clang, в текущее время развиваемого корпорацией Apple. Сообщается, что на текущий момент новый компилятор удачно справляется с 99% пакетов, в том числе и с ядром FreeBSD на архитектурах i386 и amd64. Разработчики команды FreeBSD уже отправили более 100 багрепортов в проект Clang.

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

shahid
()

Проект Unladen Swallow

 , , ,

Группа Open Source
Проект Unladen Swallow ("Ласточка налегке", отсылка к Monty Python) имеет целью увеличить производительность интерпретатора Python 2.6.1 минимум в 5 раз. при этом сохраняя совместимость со всеми Python-приложениями и модулями расширения. Проект не рассматривается как форк Python, и все усовершенствования планируется слить в основную ветку.

Самое существенное намеченное изменение - использование LLVM вместо текущей Python-специфичной VM, но запланированы и менее радикальные изменения, направленные на быстрое получение практически полезного ускоренного Python - усовершенствования "классического" интерпретатора (ceval.c), GC, внутренних структур данных, и эксперименты с новейшими GCC. Работа будет разбита на несколько этапов, с ежеквартальными релизами. Более подробный план работы здесь: http://code.google.com/p/unladen-swal..., уже достигнутые результаты здесь: http://code.google.com/p/unladen-swal....

Ссылка на Monty Python: http://www.armory.com/swallowscenes.html

Да, и регулярные выражения тоже планируется починить ;)

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

tailgunner
()

Вышел LLVM 2.2

 ,

Группа Open Source
LLVM -- это оптимизирующий компилятор из C, C++ и других языков в низкоуровневое представление, имеющее много общего с системой команд RISC-процессоров, а также трансляторы (статические и для преобразования "на лету") из этого промежуточного представления в команды обычных процессоров. LLVM поддерживает эффективную оптимизацию на этапах компиляции, компоновки (в том числе между процедурами) и выполнения, оставаясь "прозрачным" для разработчиков и сохраняя совместимость с существующими скриптами сборки.

Новое в версии 2.2:

  • генерация кода для процессоров Cell
  • экспериментальная поддержка преобразования Ada и FORTRAN через gcc-backend в промежуточное представление
  • поддержка типа long double на x86/x86_84 (80 бит) и Darwin PPC/PPC64 (128 бит)
  • поддержка более чем одного адресного пространства
  • в комплект поставки включены учебные руководства

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

AEP
()