Вопрос: Как дела с catch(...) в MS?
Aug. 16th, 2011 12:38 pmДумаю, многие из вас в курсе, что в NPTL механизм pthread_cancel() реализован с помощью исключений. Таким образом, следует избегать нейтрализации catch(...).
Знающие люди, а скажите, есть ли в мелко-мягкой среде какие-то подводные камни, из-за которых тоже следует избегать такой нейтрализации?
Заранее благодарен! :-)
Update: Обратные ссылки: alextutubalin: Об исключениях (C++)
Знающие люди, а скажите, есть ли в мелко-мягкой среде какие-то подводные камни, из-за которых тоже следует избегать такой нейтрализации?
Заранее благодарен! :-)
Update: Обратные ссылки: alextutubalin: Об исключениях (C++)
Подкралось незаметно, проявившись на больших файлах.
Причём, и в файле (по которому идёт греп), и в запросе - символы только ASCII с кодами < 127. ( Read more... )
Вот такие вилы с производительностью из-за интернационализации в grep'е на моей платформе. :-(
Upd: Возвращаясь к выводу "strace -r ...", всплывают следующие подробности. ( Read more... )
Причём, и в файле (по которому идёт греп), и в запросе - символы только ASCII с кодами < 127. ( Read more... )
Вот такие вилы с производительностью из-за интернационализации в grep'е на моей платформе. :-(
Upd: Возвращаясь к выводу "strace -r ...", всплывают следующие подробности. ( Read more... )

(Натолкнула на размышления вот эта строка из chrome/content/filterClasses.js проекта Adblock Plus. В POSIX API regcomp()/regexec() всё также работает, как и в JavaScript.)
Почему срабатывает следующее выражение?
> echo "a.b" | grep -E '[ -#]' a.bВедь в ASCII и UTF-8 точка находится после диеза.
Поправить легко:
> echo "a.b" | LANG= grep -E '[ -#]'
Оказывается, это устойчивое поведение.
> touch 'a ' ; touch 'a!' ; touch 'a"' ; touch 'a#' ; touch 'a.' ; touch 'a,' > ls a a, a! a. a" a# > LANG= ls a a! a" a# a, a.
Братцы, как называется эта Collating sequence для этих знаков, отличная от ASCII/Unicode?
Update: http://www.collation-charts.org/ (Спасибо Яше!)
Ticket #703 (closed merge: fixed), Opened 3 years ago, Last modified 3 months ago
The GNU toolchain supports marking object files that do not need to use an executable stack. Currently all object files produced by GHC lack these notes and so the linker defaults to using an executable stack for the resulting binary.
This makes some people grumpy. In particular it makes the Gentoo QA people grumpy. :-)
The long story:
http://www.gentoo.org/proj/en/hardened/gnu-stack.xml
The quick story:
Every .S file produced by ghc should include:
P.S.: I like Gentoo. Thanks, Daniel!
Non-executable stacks
The GNU toolchain supports marking object files that do not need to use an executable stack. Currently all object files produced by GHC lack these notes and so the linker defaults to using an executable stack for the resulting binary.
This makes some people grumpy. In particular it makes the Gentoo QA people grumpy. :-)
The long story:
http://www.gentoo.org/proj/en/hardened/gnu-stack.xml
The quick story:
Every .S file produced by ghc should include:
Currently this does not happen for either -fasm or -fvia-C..section .note.GNU-stack,"",@progbits
P.S.: I like Gentoo. Thanks, Daniel!
Я уже писал, что занимаюсь проблемой 2038-го года. В сязи с этим вспомнил и узнал несколько забавных фактов.
Угадайте:
( Ответы. )
Так же читайте в моём блоге: Критическая статья о Boost Date-Time library и std::pair vs. std::swap.
Угадайте:
- Каков диапазон целочисленных значений, который может принимать переменная типа time_t?
- Какое значение возвращает функция mktime для идентификации ошибки?
- Какое значение вернёт функция mktime, если передать ей отрицательный день или 14-й месяц?
( Ответы. )
Так же читайте в моём блоге: Критическая статья о Boost Date-Time library и std::pair vs. std::swap.