GCC
“allocaをinline関数で使うと危険である"という要旨のメールがoss-securityに流れてて、これは一体どういうことだ…と思った。 長い文章でも無いしそんなに難しくもないが、どうやらGCCのオプティマイザの展開順に問題があるようだ。 http://www.openwall.com…
多分みなさんはstd::shared_ptrを使ってるとシングルスレッドで使うんだからスレッドアンセーフでいいのにとか思うことが良くありすぎて再実装したくなると思います。ならない方はなって下さい。設計が悪いと言う人はrecursive mutexを今後使わないで下さい…
これは恐らくC++ Advent Calendar 2014の15日目です。古来[要出典]より人々はいかに例外を投げた奴をトレースするかに命をかけてきた[要出典]。投げられた例外自体や、そのメッセージを確認することはできるが、一体誰がその例外を投げたかという情報は一切…
Boost.Move 1.56 で追加されたBOOST_MOVE_RET*1*2というマクロがあるのですが、GCC 4.9のC++14モードだけなぜかコンパイルできないと言う事象にぶつかってしまい、そういえばここらへんの暗黙のmoveとかって最後にドタバタしてたなぁと思いつつあんまりしっ…
Boost.Coroutineに関してBoost users MLでrange-based forに関する面白い話が流れたので紹介したい。 この話は私も初めて聞いて驚いた。C++11で新規追加されたrange-based forはconceptが削除されたタイミングでその挙動をどうするかで議論していた。なつか…
Ubuntu 11.04からアーキテクチャ依存関係のヘッダやライブラリとかが /usr/lib/x86_64-linux-gnu とかに移った影響でGCCのビルドが通らなかったりうまくリンクできなかったりしていた問題は、従来自分でパッチ書いたり環境変数でpathを通したりしなければな…
1.51以前のboost::result_ofを使用しているコードでC++11モードをenableにしている場合、1.52に更新するとコンパイラによってはコンパイルエラーになるかもしれない。 というのもboost::result_ofはBoost 1.52から挙動が変わり、従来TR1式のresult_ofであっ…
Ubuntu 11.04以降で幾つかのアーキテクチャ依存ファイルのパスが変更されてしまい、upstream GCCを自前コンパイルするとインクルードやリンクが通らないという問題があります。通常、/etc/environmentに CPATH=/usr/include/x86_64-linux-gnu LIBRARY_PATH=/…
結構前から議論が上がってて見てたけどそういえば書いてなかったので今更ですけど...例えばLinux等POSIX系OSで #include <chrono> #include <thread> int main() { std::this_thread::sleep_for(std::chrono::seconds(1)); } としてもGCCは hoge.cpp: In function ‘int main(</thread></chrono>…
GCCはC++を使用することを決定したわけですが、その実際の動きがありました。 http://gcc.gnu.org/wiki/cxx-conversionconfigureに --enable-build-with-cxx を叩きこむと一部のソースがC++コンパイラでコンパイルするようになるわけですが、このブランチは…
GCC4.8からdiagnostic messageを改良する動きが出ています。 http://gcc.gnu.org/wiki/ClangDiagnosticsComparison GCC4.6からdiagnostic messageの改良が始まっていましたが、これまでのは例えば struct S { ... snip ... } int i; というコードで意味不明…
GCC4.6.3/4.7.0のlibstdc++から修正されたversioned namespaceを有効にするとboost/detail/container_fwd.hppのforward declとぶつかって曖昧性が生じるためコンパイルエラーになる部分が発生しています。 Interprocessでも同様の問題があったようですが、こ…
http://ftp.tsukuba.wide.ad.jp/ をよく訪れる人は知ってるかも知れないですが、ちょくちょく更新しています。普段はミラー対象が増えたとかですが、今回は開発者の方々に向けたservice updateです。http://ftp.tsukuba.wide.ad.jp/ の下の方に GIT readonly…
例えばclangはGCCの__attribute__をいくつかサポートしている。 例えば__attribute__((noreturn) )。gcc/clang両方でコンパイル通るように書いてるわけだけど挙動が異なる部分を発見した。 例えば typedef void func_t( void ); void g( func_t * ); void __…
※boost::mpl::identityがなくなれって言ってるわけではありません。その使用方法の1つがってだけです。http://gcc.gnu.org/ml/gcc-bugs/2011-07/msg01663.html http://gcc.gnu.org/ml/gcc-bugs/2011-07/msg01664.html上の2つのメールがあなたの目にはどの…
http://gcc.gnu.org/gcc-4.7/changes.html http://gcc.gnu.org/projects/cxx0x.html何が嬉しいって?そりゃ決まってるでしょ。 「すべてのクラスは派生される可能性があるからdtorには必ずvirtualを付けろ」教をたたきつぶすことが出来るんですよ? 今日を国…
やっぱGNU makeはいろいろやばい もうおわこんだろ・・・というのもGNATのビルドプロセスを追ってみればわかる。例えばGCC 4.4が入ってる環境でGCC 4.5をビルドしようとする。ちなみに各コマンドは同一シェル内で実行する。 あと、4.4のインストールされてい…
いろいろ調べても$INCLUDEにズラズラ書けばできる的なことが書いてあったけど上手く引っ張れなかったので window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t;…
http://ftp.tsukuba.wide.ad.jp/software/gcc大元から引っ張ってこようとすると結構遅いので使ってみるといいかも? そとからどれぐらい出るかしらんけど...あと、なんかミラーして欲しいのがあったら「やれやゴルァ」って言ってもらえれば頑張るかも。
タイトルのとおりです。現在日本は2箇所(ftp.dti.ad.jpとring.etl.go.jp)が登録されてますが、私の手元ではring.etl.go.jpさんが応答してくれないので実質1箇所になってるのでしょうか。 今後のC++0xの普及速度を鑑みてやはりここはミラーを建てる時だと…
2010-12-24 - Flast?なにそれ、おいしいの? 2010-09-06 - Flast?なにそれ、おいしいの? でも取り上げてるvim7.3とGCC4.6の相性は更に悪くなった :set nrformats+=alpha を実行してもらいたい。見事に $ vim Error detected while processing /home/flast…
ひとりだといろいろアレ♂なので、だれか賛同者が1,2人欲しい... 最終的にはメインラインに乗ると嬉しいんだけどな...ちなみに今のvim7.3はGCC4.6でコンパイルするとバイナリは出来るけど行削除とか(多分ヤンクまわり)で死にます。なので、C99=>GCC4.6の順に…
lambdaについて調べてたら・・・ - にゃははー にも書いたやつが一向に加筆修正されないからよくわからん。GCCはg5のようなコードをrejectするけどiが参照出来てしまっているのは問題なはず。 それともsizeof operatorだけ(あとその類)だけは例外?ちょっと…
C++0xでconstexprが導入されましたがそれによってstatic constがconstant-expressionから外されたということで無ければバグです。 ちょっと今は時間無いので仕様読んで明日あたり更新します。つまり以下のようなコードがエラーになってしまいます。 template …
template < typename T > int f( const T &, const char * ); template < typename T > decltype( f( T(), "" ) ) g( const T &t ); void h() { g( 0 ); } https://ideone.com/qkxJ1 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47488 が死ぬ。どうやらdec…
GCC4.6.0のinternal compiler error - にゃははー のICEがfixされたようです。 46552 – [4.6 Regression] [C++0x] Internal compiler error on pointer to member variable with templateP-stadeも元に戻るのかな?
GCC4.6のRelease NotesにC1Xに関する記述がなされました。まだC++0xの様なページは出来てない様ですが、Cは(機能とかがどうということではなく)非常にメジャーな言語なので注目度は高いのではないでしょうか。 そうでもない?まぁなんでそんなの作ったか分か…
GCC4.6.0でのinternal error - にゃははー が修正されたようです。いや、それだけですがね。まぁP1が無くなるのはまだ1月ぐらいはかかるんじゃないんですかね。
C++98/03からある変な(?)として例外仕様がある。C++0xのnoexceptと同じようなことをサポートしている機能だ。 通常例外仕様を書く事はないだろう。ましてやunexpected handlerなぞ・・・例外仕様を記述することで予期しない例外を処理することが可能になる。…
GCC4.6のバグ - にゃははーで発生したバグによるGCC4.6との相性 - にゃははーはどうやらfix! - Flast?なにそれ、おいしいの?のGCCの修正によって無くなったようです。ので-fltoをつけてコンパイル。GCC4.5でのサイズから若干割増になったけどこれもLTOでイ…