Наткнулся на старый пост про автовекторизацию. Если в кратце, то автор жаловался на то, что компиляторы не могут ничего сделать даже на простейших примерах. Я просто не мог не проверить как те простейшие примеры отработают на Эльбрусе :)
пятница, 23 мая 2014 г.
четверг, 1 мая 2014 г.
Про оптимизации, безопасность и "нормальные языки".
В конце 2013 года вышла довольно интересная статья "Towards Optimization-Safe Systems: Analyzing the Impact of Undefined Behavior" про то как компиляторы, применяя различные агрессивные оптимизации убирают проверки безопасности. Хочу поделиться своими мыслями на этот счёт.
пятница, 28 марта 2014 г.
Эльбрусы. Новые и не очень.
Недавно сгонял на выставку "Новая электроника - 2014", где меня целенаправленно интересовал стенд МЦСТ. Особенностью этого стенда было то, что на нём представлен новый процессор "Эльбрус-4С". Он нём и ещё о паре забавных железок расскажу под катом.
суббота, 21 декабря 2013 г.
Шпаргалка по сборке gcc
Оставлю тут шпаргалку по сборке gcc из транка:
$ # скачаем исходники
$ svn checkout svn://gcc.gnu.org/svn/gcc/trunk gcc
$ cd gcc
$ # соберём компилятор
$ mkdir obj bin
$ cd obj
$ ../configure
$ make -j2
$ make DESTDIR=/anywhere/gcc/bin/ install
$ # а теперь пересоберём его самим собой, но с уже интересующими нас опциями
$ make clean
$ rm * -rf
$ ../configure CC="/anywhere/gcc/bin/usr/local/bin/gcc" CXX="/anywhere/gcc/bin/usr/local/bin/g++" CFLAGS="$CFLAGS -O3" CXXFLAGS="$CXXFLAGS -O3" LIBS="-L/anywhere/gcc/bin/usr/local/libs $LIBS"
$ make -j2
$ make DESTDIR=/anywhere/gcc/bin_opt/ installпонедельник, 18 ноября 2013 г.
Установка Gentoo на шифрованный раздел
Решил поэкспериментировать с шифрованием разделов в gentoo. Т.к. не нашлось готовых мануалов, по которым бы всё сразу завелось пришлось долго гуглить и ходить по граблям. В посте будет полное описание данного процесса. Нет, не неуклюжего хождения по граблям, а готового решения, которое сработало на моём ноутбуке.
пятница, 1 ноября 2013 г.
Ошибка в комментарии
На старых фронтэндах был простой способ получить ошибку в плохо написанном комментарии. Связано это с триграфами. Сам столкнулся с такой на старой версии edg - фронтэнда, который используется в компиляторе intel.
Подробней о проблемах с триграфами можно почитать на вики. Тут интересен вопрос "а почему вообще возникает такая проблема?". Фишка кроется в стандарте, раздел 5.1.1.2 Translation phases. Грубо говоря препроцессирование делится на 6 стадий. При этом триграфы разворачиваются на первой стадии, а комментарии удаляются только на 3-ей.
На современных компиляторах такой проблемы замечено не было.
$ cat test.c
/**
* ??!
*/
int main(){}
$ lcc_i test.c
lcc: "test.c", line 2: error: support for trigraphs is disabled
[-Werror=trigraphs]
* ??!
^
1 error detected in the compilation of "test.c".
Подробней о проблемах с триграфами можно почитать на вики. Тут интересен вопрос "а почему вообще возникает такая проблема?". Фишка кроется в стандарте, раздел 5.1.1.2 Translation phases. Грубо говоря препроцессирование делится на 6 стадий. При этом триграфы разворачиваются на первой стадии, а комментарии удаляются только на 3-ей.
На современных компиляторах такой проблемы замечено не было.
воскресенье, 6 октября 2013 г.
Если octave при запуске выдаёт такое:
On entry to octave parameter number 13 had an illegal value
то скорей всего он был собран с ключом -ffast-math. Эта опция допольно деструктивная, включается только руками или по -Ofast. Придётся для конкретно этого пакета (у меня он называется sci-mathematics/octave) включать -fno-fast-math.
Подписаться на:
Сообщения (Atom)