Открыть список
Как стать автором
Обновить
  • по релевантности
  • по времени
  • по рейтингу

FreeBSD: отчет за четвертый квартал 2009

*nix
На freebsd.org опубликован очередной ежеквартальный отчет о развитии проекта. Отчет состоит из 38 пунктов. Разработчики особенно отмечают выход долгожданной FreeBSD 8.0 и готовящаяся релиз FreeBSD 7.3.

Краткое содержание отчета:

  • BSD-версия утилиты iconv
  • Замена компилятора GCC на CLang
  • Демон webcamd
  • VirtualBox и веб-браузер Chromium появились в дереве портов
  • Портирование фаервола pf из OpenBSD 4.5
  • Поддержка NFSv4 ACL
  • Перевод документации на немецкий, испанский и венгерский
  • Бета-версия видео-драйвера NVIDIA для FreeBSD/ia64


Читать полностью: http://www.freebsd.org/news/status/report-2009-10-2009-12.html
Всего голосов 17: ↑11 и ↓6 +5
Просмотры596
Комментарии 23

ClangBSD собирает себя

*nix
Процесс, описываемый на wiki.freebsd.org/BuildingFreeBSDWithClang, казалось, идет слишком медленно, или же совсем заглох. Однако недавно в рассылке появилось сообщение от Roman Divacky о том, что ClangBSD успешно собирает саму себя на tier 1 платформах (i386 и amd64).

Вкратце ClangBSD — попытка собрать ядро и мир FreeBSD с помощью компилятора clang, который, в свою очередь, является фронтендом к LLVM. Как известно, FreeBSD до сих пор использует GCC версии 4.2.1, т.к. последующие версии сменили лицензию. Clang же имеет BSD-лицензию, а так же имеет много других вкусностей.
У проекта были проблемы со сборкой libstdc++, однако теперь они преодолены. Единственный известный баг — загрузчик ОС превышает допустимый размер исполняемого файла. Пока что имеется workaround — собирать загрузчик без поддержки UFS1.

Сообщение разработчиков:
permalink.gmane.org/gmane.os.freebsd.current/124678

Low Level Virtual Machine:
llvm.org

Clang:
clang.llvm.org
Всего голосов 34: ↑26 и ↓8 +18
Просмотры850
Комментарии 71

Automatic Reference Counting: часть 1

Разработка под iOS
Перевод
Здравствуйте, коллеги.

Давно читаю блоги и статьи зарубежных разработчиков под iOS. И на днях попалась любопытная, довольно подробная статья об Automatic Reference Counting от разработчика по имени Mike Ash.
Статья довольно большая, потому перевод, сделанный мною, рискну разбить на несколько частей. Надеюсь, что уложусь в 2 части.
Часть первая
Всего голосов 34: ↑31 и ↓3 +28
Просмотры30.9K
Комментарии 15

LLVM 3.0 Release

Компиляторы
1 декабря состоялся релиз LLVM 3.0 (Low Level Virtual Machine) — «инфраструктуры для компиляторов», которая генерирует платформонезависимый оптимизированный байткод низкого уровня (см. обзор на Хабре). LLVM используется в том числе в официальных средствах разработки для Mac OS X и iOS.

С момента выхода LLVM 2.9 прошло шесть месяцев, новшеств довольно много, в том числе новый «жадный» аллокатор регистров. Он применяет интересные способы оптимизации и способен значительно улучшить производительность кода.
Читать дальше →
Всего голосов 36: ↑31 и ↓5 +26
Просмотры1.8K
Комментарии 7

Обзор конференции Going Native'2012

C++
Недавно завершилась конференция GoingNative’2012, организованная компанией Microsoft. Она проходила 2 и 3 февраля в Редмонде, и главной темой был C++11. Мне показалось, что это замечательное событие недостаточно полно освящено, и захотел исправить ситуацию.
«C++11 feels like a new language» Bjarne Stroustrup
«We’re all learning C++11» Herb Sutter
«We broke every single book on the planet, and we broke every single programmer on the planet» Herb Sutter

Герб Саттер во вступительном слове посвятил конференцию Деннису Ритчи, создателю языка C, и ключевому разработчику операционной системы UNIX.

Это очень важное событие для сообщества С++, где выступали и отвечали на вопросы люди, ставшие легендами в мире C++, во многом определяющие его развитие. Доклады очень интересные, и я вынес для себя много нового. Дальше идёт обзор всех докладов и сессий вопросов и ответов.
Читать дальше →
Всего голосов 68: ↑67 и ↓1 +66
Просмотры3.3K
Комментарии 41

Состоялся релиз LLVM 3.1

Компиляторы
22 мая состоялся релиз LLVM 3.1, семейства компиляторных инструментов, построенных на модульной основе. Проект активно развивается как альтернатива GCC такими компаниями, как Apple и Google.

Наиболее заметные изменения включают в себя улучшенную поддержку нового стандарта C++'11 Clang'ом (включая лямбды, списки инициализации, константные выражения, пользовательские литералы и атомики); появление AddressSanitizer — инструмента для динамического отлова ошибок работы с памятью; серьёзные улучшения времени компиляции и появление новых фич для ARM архитектуры; заметно улучшенная поддержка архитектуры MIPS (включая MIPS64).
image

Для тех, кому интересны подробности — добро пожаловать под кат.
Читать дальше →
Всего голосов 37: ↑36 и ↓1 +35
Просмотры4.3K
Комментарии 45

Qt/Objective-C++11 или сборка Qt-проекта с помощью GCC-4.7 и Clang

ПрограммированиеQtРазработка под MacOS
Tutorial
Всем доброго хабрадня!

Сегодня я расскажу уважаемым хабражителям об очередном извращении — о сборке проекта, написанного на Qt, под Mac OS X компилятором GCC-4.7.0 с примесью Clang'а (про шланг — в конце статьи, там станет понятно, зачем ещё и его приплетать будем).

Для чего нам GCC 4.7? Ну, например, чтобы использовать все те крутые фичи из стандарта C++11. Разве этого мало? Кроме поддержки нового стандарта, в нём очень много улучшений по сравнению с идущим в комплекте с Xcode GCC 4.2 (хотя он и оказывается на поверку i686-apple-darwin11-llvm-g++-4.2), так что смысл в переходе на 4.7 явно имеется. Но и проблемы присутствуют, о чём ниже.

Мы можем предположить, что нам потребуются некие фичи из Cocoa, а значит, нам потребуется компилятор Objcetive-C, а ещё лучше — Objective-C++, чтобы, например, интегрировать наше Qt-приложение в окружение Mac OS X.
Начнем!
Всего голосов 41: ↑34 и ↓7 +27
Просмотры10.6K
Комментарии 66

CLANG, игра для фанатов фехтования

Разработка игр
image

Нил Стивенсон, известный писатель-фантаст, оказывается, очень любит историческое фехтование. В компании Subutai он не только заседает в совете, но также отвечает за разработку и изготовление брони для фехтования.

9 июня Стивенсон представил на проекте Kickstarter свою компанию и её игровой проект «CLANG», что можно примерно перевести как “лязг”. Компьютерная игра, призванная как можно более реалистично отобразить сражения при помощи холодного оружия.
Читать дальше →
Всего голосов 31: ↑30 и ↓1 +29
Просмотры5.3K
Комментарии 54

Методы, как first class citizens в C++

Ненормальное программированиеC++
На днях, гуляя по багтрекеру gcc наткнулся на интересный баг, в нем используется сразу несколько возможностей C++11:


Анализируя этот баг, я подумал, что теперь можно удобно реализовать методы как first class citizens
Читать дальше →
Всего голосов 38: ↑36 и ↓2 +34
Просмотры3.2K
Комментарии 6

Отладка Objective-C ARC retain

Разработка под iOSObjective CОтладка
Иногда возникают ситуации, когда стандартных средств отладки недостаточно.

Например, в iOS 4.1 была возможность использовать valgrind в симуляторе. А в Lion x86_64 и iOS 5 valgrind работать уже перестал.
Это связано с 64-битной архитектурой и изменениями в симуляторе (в valgrind есть ряд
недоработок).

С переходом на ARC метод отладки retain исчез:

- (id) retain
{
    // Break here to see who is retaining me.
    return [super retain];
}

Читать дальше →
Всего голосов 11: ↑8 и ↓3 +5
Просмотры2.7K
Комментарии 8

Clang API. Начало

C++Компиляторы
Сейчас с уверенностью можно утверждать, что времена самописных C++-парсеров постепенно отходят в прошлое. На сцену медленно, но неумолимо выходит clang — полноценный C++-фронренд и компилятор, предоставляющий своим пользователям богатое API. С помощью этого API можно распарсить исходный текст на C/C++/Objective C, и вытащить из него всю необходимую информацию — от простого лексического значения токенов, до таблицы символов, AST-деревьев и результатов статического анализа кода на предмет всяких разных проблем. В связке с llvm и при сильном на то желании C++ можно использовать в качестве скриптового языка, парся и исполняя C++-программы «на лету». В общем, возможности перед программистами открываются богатые, надо только понять — как ими правильно воспользоваться. А тут, как это не редко случается, и начинается самое интересное.
Читать дальше →
Всего голосов 54: ↑53 и ↓1 +52
Просмотры31.9K
Комментарии 40

LLVM+Clang 3.2: собираем самим собой под Windows

ПрограммированиеC++
Tutorial
LLVM — это набор «кирпичиков» для построения компиляторов, а clang — новый компилятор C++ на его основе. По сравнению с gcc — обеспечивается большая скорость компиляции при сравнимом качестве кода, более человеко-понятные исходники т.к. они не несут десятилетия жесточайшей C-only разработки как в gcc.

Помимо этого, Clang и llvm распространяются под лицензией BSD, в отличии от GPLv3 у GCC. BSD позволяет не открывать исходники при распространении исполняемых файлов компилятора.

С LLVM+CLang будет интересно поиграть любому кто когда-либо хотел написать свой компилятор, или считает, что компилятор собранный своими руками дает более теплый бинарный код.

БОльшая часть часть разработчиков llvm/clang используют его под Linux/MacOS — и там его сборка/установка не вызывает каких либо проблем, путь основательно протоптан. А вот в случае windows ситуация несколько осложняется — об обходе нескольких граблей при сборке, о том, что связывает clang и gcc, и какие баги придется фиксить в релизе — под катом.
Читать дальше →
Всего голосов 38: ↑34 и ↓4 +30
Просмотры36.6K
Комментарии 67

Часто задаваемые вопросы про asm.js

JavaScript
Перевод
asm.js — необыкновенно оптимизируемое, низкоуровневое подмножество JavaScript. asmjs.org

asm.js — новый язык?


Нет, это просто подмножество JavaScript. Программа на asm.js одинаково поведёт себя и в существующих движках JavaScript, и в движке с предварительной (ahead-of-time, AOT) компиляцией, способном распознавать и оптимизировать asm.js; различаться будет её скорость, разумеется!

Какой выигрыш в производительности можно ожидать от asm.js?


Сейчас ещё рано утверждать. Однако наши предварительные измерения производительности программ, скомпилированных из Си в asm.js, показывают не более чем двукратное замедление по сравнению с компилированными в машинный код посредством clang. Мы опубликуем дальнейшие измерения, когда насобираем их.

Как я могу следить за ходом реализации?


Мозилла работает над первой реализацией оптимизирующего компилятора asm.js для SpiderMonkey. В вики Фонда Мозиллы также опубликован план разработки дальнейших выпусков и оптимизаций. Если авторы других движков JavaScript опубликуют собственные планы реализации компиляторов asm.js, мы их здесь упомянем.

Почему бы вам не разработать синтаксис байткода вместо необычного диалекта джаваскрипта?


Для компиляторов наподобие Emscripten или Mandreel синтаксис байткодового языка попросту не особенно значим. Притом большинство байткодов и вообще машинных языков имеют двоичный формат, не читаемый людьми. Однако мы можем создать на уровне asm.js более человеко-читаемый синтаксис, который будет и удобным в дизассемблировании, и пригодным для чтения и записи людьми.

То обстоятельство, что asm.js — это JavaScript, не обернётся ли непредсказуемым выполнением кода?


Предварительная (ahead-of-time, AOT) компиляция asm.js может генерировать код, выполнение которого весьма предсказуемо, потому что валидный код asm.js ограничен крайне небольшим подмножеством JavaScript, состоящим только из строго типизированных целых чисел, чисел с плавающей точкою, арифметических операций, вызовов функций и обращения к куче.

Почему бы тогда не NaCl или PNaCl вместо этого? Вы просто упорствуете насчёт JavaScript?


Принципиальным достоинством asm.js по сравнению с новыми технологиями вроде NaCl и PNaCl является то, что asm.js работает сегодня: существующие движки JavaScript ужé неплохо оптимизируют код, написанный в таком стиле. Что означает, что разработчики могут выпускать код на asm.js сегодня, а со временем его работа будет ускоряться. Другою важною пользою является заметно бóльшая простота реализации, для которой потребуется совсем немного дополнительных механизмов поверх существующих движков JavaScript — и не понадобится слой совместимости API.

Читать дальше →
Всего голосов 42: ↑24 и ↓18 +6
Просмотры40.9K
Комментарии 21

Официальный релиз LLVM 3.3

ПрограммированиеC++Компиляторы
Для тех, кто не следит пристально за развитием Clang/LLVM, сообщаю — состоялся релиз версии 3.3. LLVM продолжает развиваться семимильными шагами и новый релиз, как заявлено, первым поддерживает все фичи C++11, добавлена поддержка целой пачки новых таргетов и появилось несколько интересных тулов, основанных на инфраструктуре LLVM. Также продолжает развиваться оптимизатор — появился автовекторизатор, который работает по умолчанию на -O3, много сделано для улучшения уже существующих оптимизаций. Кому интересны подробности — добро пожаловать под кат.

Читать дальше →
Всего голосов 58: ↑55 и ↓3 +52
Просмотры13.5K
Комментарии 57

Исключение для библиотек времени исполнения GCC или почему в Clang до сих пор отсутствует поддержка OpenMP

Компиляторы
Используете GCC в проекте с закрытым исходным кодом? Применяете OpenMP? Вы же в курсе, что библиотека libgomp, с которой компонуются все OpenMP программы, распространяется на условиях GPLv3? Будьте так добры, откройте ваши исходники…
Читать дальше →
Всего голосов 29: ↑25 и ↓4 +21
Просмотры7.7K
Комментарии 9

OpenMP теперь доступен в Clang!

IntelКомпиляторыПараллельное программирование
Скоро первое сентября. Кто-то собирается в школу, кто-то — в институт. А мы предлагаем начать новые проекты с компилятором clang, который теперь поддерживает OpenMP!

Проект доступен здесь. Сейчас в его основе лежит clang 3.3. Небыстрый процесс ревью уже идет, и скоро код будет залит в транк clang'а, а значит войдет в его новые релизы.

Реализована полная поддержка стандарта OpenMP версии 3.1. Успешно проходятся следующие тесты: набор для валидации OpenMP от OpenUH Research Compiler, SPEC OMP2012 и внутренние тесты Intel. Исполняемый код c OpenMP, собранный clang'ом, демонстрирует производительность, сравнимую с другими компиляторами, поддерживающими OpenMP.
В качестве библиотеки времени выполнения использована библиотека Intel OpenMP Runtime Library, также доступная под свободной лицензией.
Читать дальше →
Всего голосов 28: ↑28 и ↓0 +28
Просмотры6.3K
Комментарии 4

Новости о LLVM для Windows

Компиляторы
Во многих новостях про Clang на хабре я наблюдал один и тот же вопрос: «когда будет нормальная поддержка Windows?».

Уверен, задававшим подобные вопросы будет интересна свежая новость из мира LLVM.
Читать дальше →
Всего голосов 66: ↑60 и ↓6 +54
Просмотры18.3K
Комментарии 34

«Разработчики PVS-Studio, вы вообще слышали про Clang?», или сравнение PVS-Studio и Clang без кода

PVS-Studio
Довольно часто, когда мы пишем статьи про статический анализатор C++ кода PVS-Studio, нам задают один из следующих вопросов:
  1. А чем PVS-Studio лучше, чем Clang?
  2. А вот Clang бесплатный, а вы стоите денег – не понятно, почему?
  3. Clang лучше, туда легко можно добавить свои диагностики, ведь это open source!
  4. Вам пора закрываться, Clang вас раздавит, если не сейчас, то когда отладят версию под Windows.(ну это даже и не как вопрос сформулировано).
Пришло время обстоятельно ответить на эти вопросы.
Читать дальше →
Всего голосов 19: ↑12 и ↓7 +5
Просмотры9.4K
Комментарии 11

Что нужно знать об ARC

Разработка под iOSObjective C
Из песочницы
Автоматический подсчет ссылок (Automatic Reference Counting, ARC) для языка Objective-C был представлен компанией Apple еще в 2011 году для iOS 4.0 и выше, Mac OS X 10.6 и выше, с использованием xCode 4.2 и выше. И, хотя всё больше библиотек, фреймворков и проектов сегодня используют ARC, до сих пор среди программистов встречается либо неприятие этой технологии, либо eё неполное понимание. Опытные программисты, привыкшие к retain/release, иногда считают, что они лучше и эффективней справяться с подсчетом ссылок, чем это за них сделает компилятор, а новички, начищающие сразу использовать ARC, полагают, что им не надо вообще думать об управлении памятью, и всё сделается магическим образом само.
Давайте расставим точки над i
Всего голосов 17: ↑17 и ↓0 +17
Просмотры50.5K
Комментарии 38