by
Anonymous Coward
on 2014年05月06日 22時18分
(#2595200)
元コメ主です。 不慣れでちと荒れてしまいましたがここにぶら下げてみます。 Mac 限定なのは、OS X が GCC を捨てて Clang に移行しているのに Intel Compiler (icc/icpc)は GCC 環境に依存していた為です。
・Intel Composer XE 2012 辺りまでは幸せでした。 当初のサポート対象は OS X 10.5 と 10.6。Linux 版との GCC バージョンの違いもそう無いため、Linux と同じコードがコンパイルできました。
・Intel Composer XE 2013 SP1 (icpc version 14) で Mac OS X だけ取り残されました。 SP1 でついに RHEL5 が deprecated になりRHEL6 の gcc-4.4 が最古のサポートGCCバージョンとなったと認識しています。 この時点で Intel (とEDG)は GCC-4.4〜GCC-4.8 までの様々な libstdc++ に依存しながらも Intel Compiler (icpc)としては同じ動作ををするというある意味凄いことをしているのですが、残念ながら Mac OS X 版の icpc version 14 だけは libstdc++-4.2.1 との組み合わせの為、Linux 版と同じコードがコンパイルできなくなってしまいました(あくまでも個人的感想です)。 Mac OS X 版 icpc 13 以降には -use-clang-env という Clang 環境のヘッダ群を使うオプションが用意されましたが、元が g++ に似た動作をするように作られた icpc ですので g++ とも clang++ とも違うコンパイル振る舞いをして微妙な感じでした。
さて、Intel(とEDG)は今後も Linux 版の為に GCC に似た動作をする icc/icpc を作成していくのですが、それに加えて "Linux 版と同じように Mac OS X の icpc の C++11/14 サポート頼むね。あっでも依存する libstdc++ は 4.2.1 ね" というのは無理ゲーですよね。
そこで、 Intel の取った方法は LLVM-Clang のフロントエンドを使う新しいコンパイラを提供するということでした。(色々選択肢があったとは思います) Mac OS X 版の Composer XE 2015 beta ではこれまでの icpc に加えて icl++ という Clangベースの C++ が提供されています。 この icl++ ちょっと使った感じでは凄くいいです。まんま clang-3.3 という感触で、Mac OS X ユーザとしては嬉しいかぎりです。 Mac OS X 版で実績を積んでもらって、ぜひ Linux 版や Windows 版にも icl++ が提供して欲しいです。
動機 (スコア:0)
ちょっと待てみんな、これ Clang の将来性とか性能の話じゃなくって、Mac OS X の libstdc++-4.2.1 ではどう逆立ちしても C++11 とか C++14 とか対応できなくなってきた為だからじゃないのか。
Re: (スコア:0)
なんでMac限定?
それにOS Xって既にGCCからLLVMに移行してるんじゃなかったっけ。
Re:動機 (スコア:0)
元コメ主です。
不慣れでちと荒れてしまいましたがここにぶら下げてみます。
Mac 限定なのは、OS X が GCC を捨てて Clang に移行しているのに Intel Compiler (icc/icpc)は GCC 環境に依存していた為です。
・Intel Composer XE 2012 辺りまでは幸せでした。
当初のサポート対象は OS X 10.5 と 10.6。Linux 版との GCC バージョンの違いもそう無いため、Linux と同じコードがコンパイルできました。
・Intel Composer XE 2013 SP1 (icpc version 14) で Mac OS X だけ取り残されました。
SP1 でついに RHEL5 が deprecated になりRHEL6 の gcc-4.4 が最古のサポートGCCバージョンとなったと認識しています。
この時点で Intel (とEDG)は GCC-4.4〜GCC-4.8 までの様々な libstdc++ に依存しながらも Intel Compiler (icpc)としては同じ動作ををするというある意味凄いことをしているのですが、残念ながら Mac OS X 版の icpc version 14 だけは libstdc++-4.2.1 との組み合わせの為、Linux 版と同じコードがコンパイルできなくなってしまいました(あくまでも個人的感想です)。
Mac OS X 版 icpc 13 以降には -use-clang-env という Clang 環境のヘッダ群を使うオプションが用意されましたが、元が g++ に似た動作をするように作られた icpc ですので g++ とも clang++ とも違うコンパイル振る舞いをして微妙な感じでした。
さて、Intel(とEDG)は今後も Linux 版の為に GCC に似た動作をする icc/icpc を作成していくのですが、それに加えて
"Linux 版と同じように Mac OS X の icpc の C++11/14 サポート頼むね。あっでも依存する libstdc++ は 4.2.1 ね" というのは無理ゲーですよね。
そこで、 Intel の取った方法は LLVM-Clang のフロントエンドを使う新しいコンパイラを提供するということでした。(色々選択肢があったとは思います)
Mac OS X 版の Composer XE 2015 beta ではこれまでの icpc に加えて icl++ という Clangベースの C++ が提供されています。
この icl++ ちょっと使った感じでは凄くいいです。まんま clang-3.3 という感触で、Mac OS X ユーザとしては嬉しいかぎりです。
Mac OS X 版で実績を積んでもらって、ぜひ Linux 版や Windows 版にも icl++ が提供して欲しいです。
# なんか文章変。日本語難しい...