новый компилятор в OpenBSD
4 min
1.9K
Translation
По мотивам сообщения osnews.com/story.php/18771/More-on-OpenBSDs-New-Compiler
Несколько недель назад проект OpenBSD объявил о том, что Portable C Compiler был добавлен в дерево исходников OpenBSD. И разработчики будут стараться сделать его полноценной заменой GCC. Почему?
Несколько недель назад проект OpenBSD объявил о том, что Portable C Compiler был добавлен в дерево исходников OpenBSD. И разработчики будут стараться сделать его полноценной заменой GCC. Почему?
Радио-Т #91
1 min
500 — Удовольствия и разочарования FF3
— Subversion 1.5 наше все
— Наша кухня под атакой читателей одного известного журнала
— Очень зеленый и очень маленький компьютер
— openSUSE 11.0 вышла, а Java открылась
— ZFS ожидается прибытием
— Яндекс разваливает Yahoo
— Mail.ru наносит ответный удар
— GCC захотел странного
— Темы наших слушателей
Желающим послушать послеэфирные записи необходимо пройти тест на IQ
Скажем спасибо xshiriy, файл убран, подробности в комментариях.
— Subversion 1.5 наше все
— Наша кухня под атакой читателей одного известного журнала
— Очень зеленый и очень маленький компьютер
— openSUSE 11.0 вышла, а Java открылась
— ZFS ожидается прибытием
— Яндекс разваливает Yahoo
— Mail.ru наносит ответный удар
— GCC захотел странного
— Темы наших слушателей
Скажем спасибо xshiriy, файл убран, подробности в комментариях.
Задачка "Hello World"
1 min
6.4KИтак, вопрос знатокам: Сколько раз на экране появится заветная фраза при выполнении этой программы?
#include <iostream>
int main(int argc, char* argv[])
{
int i = 10;
std::cout<<"Hello World!"<<std::endl;
// Сколько раз???
while(i--)
{
// Сколько раз будет вызвана эта строка???/
for(int j=0; j<10; j++)
std::cout<<"Hello World!"<<std::endl;
}
return 0;
}
rethink their coding style…
1 min
14KВыдержка из исходников gcc, файл libcpp/files.c
Copy Source | Copy HTML
- /* off_t might have a wider range than ssize_t - in other words,
- the max size of a file might be bigger than the address
- space. We can't handle a file that large. (Anyone with
- a single source file bigger than 2GB needs to rethink
- their coding style.) Some systems (e.g. AIX 4.1) define
- SSIZE_MAX to be much smaller than the actual range of the
- type. Use INTTYPE_MAXIMUM unconditionally to ensure this
- does not bite us. */
- if (file->st.st_size > INTTYPE_MAXIMUM (ssize_t))
- {
- cpp_error (pfile, CPP_DL_ERROR, "%s is too large", file->path);
- return false;
- }
-
- size = file->st.st_size;
Unclesoсky podcast — Выпуск #29
1 min
300— 7 часов радости
— Вылавливание неисправностей
— gcc/g++ + gedit = счастье
— ЛФК «Феникс» — Reddish?! 3:4
— Футбольная несуразность
— Час в темноте от podстанции
— Простенькая NextGEN Gallery
unclesocky podcast29 / 17.7 Мб / 38:35 / MP3, 64 kbps
Download
Офф. сайт подкаста
RSS подкаста
— Вылавливание неисправностей
— gcc/g++ + gedit = счастье
— ЛФК «Феникс» — Reddish?! 3:4
— Футбольная несуразность
— Час в темноте от podстанции
— Простенькая NextGEN Gallery
unclesocky podcast29 / 17.7 Мб / 38:35 / MP3, 64 kbps
Download
Офф. сайт подкаста
RSS подкаста
Аpt-build. Неработающая оптимизация.
2 min
3.8KКросспостинг из блога
Опять же не пинать, это просто мысли.
Итак есть такой замечательный проект apt-build. Замечателен он тем, что создан с благой целью, а именно: пересборка бинарных пакетов под машину | архитектуру | процессор | с нужными оптимизациями. В принципе cool!
В чем же развод?
UPD: С помощью сообщества благополучно разобрался в работе apt-build. Оптимизация происходит. Но не совсем явным способом. Под катом детали.
Опять же не пинать, это просто мысли.
Итак есть такой замечательный проект apt-build. Замечателен он тем, что создан с благой целью, а именно: пересборка бинарных пакетов под машину | архитектуру | процессор | с нужными оптимизациями. В принципе cool!
В чем же развод?
UPD: С помощью сообщества благополучно разобрался в работе apt-build. Оптимизация происходит. Но не совсем явным способом. Под катом детали.
Лямбда выражения теперь и в С++
3 min
42K
Многие языки программирования позволяют создавать налету локальные не именованные функции внутри выражений. К этим языкам относятся C#3.0, Python, ECMAScript и практически все функциональные языки программирования (например, Haskell и Scheme). Такие функции обычно относят к лямбда функциям, которые имеют широкое применение.
Статический анализ кода C++
5 min
31KДля меня красота C++ заключается, в первую очередь, во вседозволенности и ужасающей мощи языка. Мы можем работать с памятью так же плотно, как и в C, и в то же время имеем такие средства абстракции, как шаблоны и STL, где параметризовать можно что угодно и чем угодно.
Плата за это соответствующая — не всегда вразумительные ошибки компилятора (попробуйте забыть поставить точку с запятой после определения класса), очень большой срок подготовки и обучения программистов, но самое главное — некоторые баги становятся заметными только во время исполнения программы.
Мы хотим больше полезных ворнингов до запуска наших программ. Одно из средств получения желаемого — статический анализ кода. Статический — значит, не запуская программу. Интересны не только вероятные ошибки, случаи undefined behaviour, утечки памяти, но и вещи вроде недоступности/неиспользуемости кода, рекомендации по повышению интуитивности стиля программирования.
Плата за это соответствующая — не всегда вразумительные ошибки компилятора (попробуйте забыть поставить точку с запятой после определения класса), очень большой срок подготовки и обучения программистов, но самое главное — некоторые баги становятся заметными только во время исполнения программы.
Мы хотим больше полезных ворнингов до запуска наших программ. Одно из средств получения желаемого — статический анализ кода. Статический — значит, не запуская программу. Интересны не только вероятные ошибки, случаи undefined behaviour, утечки памяти, но и вещи вроде недоступности/неиспользуемости кода, рекомендации по повышению интуитивности стиля программирования.
FreeBSD: отчет за четвертый квартал 2009
1 min
695На freebsd.org опубликован очередной ежеквартальный отчет о развитии проекта. Отчет состоит из 38 пунктов. Разработчики особенно отмечают выход долгожданной FreeBSD 8.0 и готовящаяся релиз FreeBSD 7.3.
Краткое содержание отчета:
Читать полностью: http://www.freebsd.org/news/status/report-2009-10-2009-12.html
Краткое содержание отчета:
- 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
Привет из свободного от libc мира! (Часть 1)
5 min
27K
Translation
В качестве упражнения я хочу написать программу на С. Достаточно простую для того, чтобы дизассемблировать ее и объяснить весь код самой себе.
Звучит несложно, правильно?
У читателя предполагается наличие опыта компиляции программ и работы в Линуксе. Небольшое умение читать ассемблерный код тоже пригодится.
Звучит несложно, правильно?
У читателя предполагается наличие опыта компиляции программ и работы в Линуксе. Небольшое умение читать ассемблерный код тоже пригодится.
Поддержка C++0x в Visual Studio 2010
3 min
7.2KТема поддержки нового стандарта C++0x различными компиляторами представляет наибольший интерес, т.к. совсем недавно был опубликован финальный черновик Комитета по стандартизации C++0x — C++0x Final Committee Draft(FCD), а это в свою очередь значит что в ближайшие два года стандарт будет полностью принят. И если сравнивать с предыдущей Visual Studio 2008(VC9), то в ней уже были сделаны пару основных фишек из нового стандарта.
Собираем gcc из исходников
1 min
6KНабор компиляторов gcc очень бурно развивается и там часто появляются какие-то новые фичи(например, из нового стандарта C++), которые хочется попробовать уже сегодня, а релиза ждать не хочется. Здесь выход один — собирать компилятор из исходников. Здесь я поделюсь своим опытом в этом.
Межпроцессное взаимодействие и Unix Domain Socket
8 min
2.6KНедавно по работе пришлось решать достаточно интересную задачу.
Нужно было написать приложение — демон, которое записывает мультикаст поток в файл.
При этом необходимо было писать несколько мультикаст потоков параллельно…
Более того… нужно централизованно управлять этими демонами!
Нужно было написать приложение — демон, которое записывает мультикаст поток в файл.
При этом необходимо было писать несколько мультикаст потоков параллельно…
Более того… нужно централизованно управлять этими демонами!
Сообщения об ошибках + templates: несколько простых советов
3 min
705Немножко лирики
Должен сразу предупредить, что эта тема вряд ли пригодится программистам, которые дружат с С++ давно и прочно. Моя цель — немного помочь тем, кто при использовании чужих библиотек с большим количеством template'ов впадает в легкую панику при виде сообщений об ошибках. Как показывает практика, зачастую всё совсем не так страшно, как выглядит и вполне помогает понять, в чём проблема.
Идея написать подобную заметку возникла в процессе написания программы, активно использующей Boost::Spirit2 — сложная грамматика, обилие semantic action, создание AST через attribute value и тому подобные радости. В какой-то момент я обратил внимание на то, что для исправления многих ошибок мне хватает одной-двух минут, в то время как в начале работы над проектом в аналогичных случаях на разбор ситуации могло уходить до часа.
Всё написано исходя из работы с gcc, но, думаю, провести аналогию с испольуземым %compiler_name& будет не сложно.
Самое время делиться!
Gcc vs Intel C++ Compiler: собираем FineReader Engine for Linux
5 min
26KПредпосылкой к написанию данной статьи было вполне естественное желание улучшить производительность FineReader Engine.
Существует мнение, что компилятор от Intel производит гораздо более быстрый код, чем gcc. И ведь было бы неплохо увеличить скорость распознаванияничего не сделав просто собрав FR Engine другим компилятором.
Существует мнение, что компилятор от Intel производит гораздо более быстрый код, чем gcc. И ведь было бы неплохо увеличить скорость распознавания
Оптимизация компиляции GCC на примере Gentoo
2 min
19KОптимизация сборки — одна из основных прелестей Gentoo, однако все описанное применимо к любому случаю компиляции ПО из исходных кодов. Все параметры сборки в Gentoo задаются в файле make.conf.
По сути нас интересует лишь переменная
По сути нас интересует лишь переменная
CFLAGS
. CXXFLAGS
должна быть равна CXXFLAGS="${CFLAGS}"
, а в MAKEOPTS
лишь указывается число параллельно запускаемых процессов компиляции (обычно задают общее число ядер процессоров + 1).Сборка Mingw в Windows своими руками
8 min
68K
Хак Bada IDE: собираем как хотим
4 min
2.3KПривет!
Эта небольшая статья адресована разработчикам приложений под мобильную платформу Samsung Bada, которые не желают мириться с мыслью, что Samsung «знает лучше, что надо», а также людям, занимающимся сборкой кода под ARM с помощью GNU Compiler Collection.
Эта небольшая статья адресована разработчикам приложений под мобильную платформу Samsung Bada, которые не желают мириться с мыслью, что Samsung «знает лучше, что надо», а также людям, занимающимся сборкой кода под ARM с помощью GNU Compiler Collection.