タグ

GCCに関するiwadonのブックマーク (50)

  • FreeBSD 10アルファ,ビルドをClangに移行

    Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。このでは、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

    FreeBSD 10アルファ,ビルドをClangに移行
  • GCC - GNU Toolchain (@gnutools) | Twitter

  • GDBでデバッグするなら-g3オプション - 2013-05-08 - ククログ

    RubyPythonなどのスクリプト言語では実行中に例外が発生するとバックトレースを出力してくれます。バックトレースがあるとどこで問題が発生したかがわかるためデバッグに便利です。一方、CやC++では不正なメモリアクセスをすると、バックトレースではなくcoreを残して1終了します2。デバッガーでcoreを解析するとバックトレースを確認できます。 このように、CやC++でデバッグするときにデバッガーはなくてはならない存在です。スクリプト言語にもデバッガーはありますが、デバッガーを使わなくてもデバッグできる範囲が広いため、CやC++をデバッグするときのほうがデバッガーのありがたさがわかります。 この記事では、広く使われているデバッガーであるGDBをもっと便利に使うためのGCCのコンパイルオプション-g3を紹介します。 サンプルプログラム まず、この記事で使うサンプルプログラムを示します。マクロ

    GDBでデバッグするなら-g3オプション - 2013-05-08 - ククログ
    iwadon
    iwadon 2013/05/09
  • GCC 4.8のリリースノートとC++関連の変更

    GCC 4.8 Release Series — Changes, New Features, and Fixes - GNU Project - Free Software Foundation (FSF) GCC 4.8のリリースノートから興味深い点を紹介する。 まず、GCC 4.8は、C++で書かれるようになった。これはつまり、GCC 4.8のビルドには、C++03に準拠したコンパイラーが必要になる。 GCC 4.8は、ループ最適化の方法として、ループ回数の上限をaggressiveに解析するようになった。これは言語規格で許されている範囲の実装である。これにより、既存の規格違反のプログラムが正しく動かなくなる。たとえば、SPEC CPU 2006の464.h264ref (H.264のリファレンスエンコーダーを流用したSPECのベンチマーク)や、同じくSPECのベンチマークである41

    iwadon
    iwadon 2013/03/30
  • GCC 4.8がリリースされた - Faith and Brave - C++で遊ぼう

    GCC 4.8 Release Series Changes, New Features, and Fixes C++周りの変更は以下。 言語 thread_localキーワードのサポートを追加。 属性構文のサポートを追加。GCCに元々あった独自属性も、C++11属性の構文で提供されるようになりました。 alignas属性のサポートを追加。 継承コンストラクタのサポートを追加。 C++1yの実験的サポートのために、「-std=c++1y」コンパイルオプションを追加。このオプションをオンにすることで、N3386で提案された「戻り値型を推論する関数宣言構文」が利用可能になります。 ライブラリ(libstdc++) forward_listを、標準のアロケータ要件を満たすよう修正(allocator_traits) this_thread::sleep_for()、this_thread::sl

    GCC 4.8がリリースされた - Faith and Brave - C++で遊ぼう
    iwadon
    iwadon 2013/03/29
  • sonson.jp

    Nov 28, 2017 iOS 11 ProgrammingでCore MLについて書きました. Sep 27, 2017 High Sierraのインストール問題 Sep 20, 2017 HTMLSpecialCharactersの内部実装の速度について Sep 18, 2017 iOSDC2017 Jun 30, 2017 iOS11 Programming - CoreML Mar 28, 2017 try swift 2017 感想 Nov 17, 2016 質問の大切さ,おもしろさ Apr 25, 2016 Let's Encryptを疑え!信用はお金で買え! Apr 14, 2016 imgurで画像アップロードできないので怒った Jan 26, 2016 ガチエンジニアがお勧めする科学絵シリーズ〜よーするに医学絵シリーズ Jan 26, 2016 ガチエンジニアがお勧

  • XCode 4.5 'tr1/type_traits' file not found

    I use the wxwidget library and I have the following problem: #if defined(HAVE_TYPE_TRAITS) #include <type_traits> #elif defined(HAVE_TR1_TYPE_TRAITS) #ifdef __VISUALC__ #include <type_traits> #else #include <tr1/type_traits> #endif #endif here the #include isn't found. I use the Apple LLVM compiler 4.1. (with the c++11 dialect). If I switch to the LLVM GCC 4.2 compiler I have no error there, but t

    XCode 4.5 'tr1/type_traits' file not found
  • mrubyでmemsetやmemcpyが少ない理由.

    リンク先には,次のような記述があります. Looks like on ARM architecture, GCC and other compilers may mis-optimize memcpy and assume certain memory alignment, whichcreates errors on unaligned access. To avoid this, either don't use memcpy, or, cast the pointers to char* to disable this misoptimization. More details here: http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.faqs/ka3934.html 意訳) ARM みたいに memcpy で

    mrubyでmemsetやmemcpyが少ない理由.
  • undefined reference to memcpy - 後悔^H^H公開日記:別館

    UINT foo[40] = { 0 }; なんてやると,memcpyが無いという身に覚えの無いエラーを受ける. 初期化する領域が長いとき,GCC*1はmemsetやmemcpyを使って速度最適化を図る*2.しかし,言うまでもなくfreestanding環境ではmemsetの存在が期待できないため,この最適化は行ってはならない. しかし,いくつかのバージョンのGCCは,この最適化を抑止することができない*3.残念ながらPizzaFactoryが使っているGCC3.4系は,この地雷をモロに踏んでいる. このバグは割と有名なようで,例えば,Bruce Evans氏がバグなんじゃねぇの?と言ったりもしている. 既に家での開発が終了したGCC3.4系は,誰かが直してくれるという期待はできない.まあ私が直すわけですが. ちなみに最も安直な逃げ方は,下記の通り. static UINT foo[40

    undefined reference to memcpy - 後悔^H^H公開日記:別館
    iwadon
    iwadon 2013/02/27
  • [Prog] gcc で x86 のインラインアセンブラを書くために - NAKAMURA Minoru's Diary

    DFS: A File System for Virtualized Flash Storage FAST10 にプリンストン大学の William K. Josephson らの DFS: A File System for Virtualized Flash Storage という論文が投稿されている。 NAND flash 上に構築するファイルシステムの理想形はこうなると考えたプロトタイプである。 DFS という名前だが分散ファイルシステム(Distributed File System)ではなく、 Direct File System の略である。 ZFS、btrfs、ext4 などと同じローカル用のファイルシステムだ。 ただし Fusion-io 社が噛んでいて ioDrive に実装している。 ioDrive 固有の機能も利用していると推測される。 逆に最近 Fusion-io

  • Debianはどこまでいくのか

    Debianは非常に懐の広いディストロだ。まず、サポートしているアーキテクチャが広い。LinuxカーネルとGNU tool setがサポートしている環境ならすべてに対応することを目指している。 そればかりではない。Debianでは、ひとつのカーネルに依存しない試みもある。Linuxカーネルの他に、FreeBSDカーネルとGNU Hurdカーネルも利用可能だ。Debian GNU/kFreeBSDは、FreeBSDカーネルを利用したもので、だいぶ実用的に動く。ただし、FreeBSDは様々な点で、Linuxに遅れている。たとえば、Kernel Mode Settingの実装も、いまだ頑張っている最中なので、グラフィックドライバーも、ものすごく古いものを使わなければならない。Debian GNU/Hurdは、GNU Hurdカーネルを利用したもので、これは・・・お世辞に言ってもハードウェアのサポ

    iwadon
    iwadon 2012/07/12
    『FreeBSDを必要とする人間は、GPLを毛嫌いしている浅はかな人種なのだから、そういう人種の期待に答えるためにも、GCCから離れたいのだろう。』
  • 発想の不思議

    GCCは最近、エラーメッセージの改良に勤めている。これは明らかに、Clangに影響されたものである。 ひとつ不思議なのは、なぜGCCがいままで、エラーメッセージを改良しようと思わなかったのかということだ。プログラマーはエラーメッセージを頻繁に読まなければならない人種である。したがって、エラーメッセージの読みやすさは重要である。GCCの開発者とてプログラマーである以上、しかもコンパイラーの開発者である以上、コンパイラーのエラーや警告のメッセージは、多くの場合、無視してはいけないものであることを誰よりも理解しているはずだ。なぜエラーメッセージを改良する動きがなかったのか。 GCCにエラーメッセージを改良する技術力や労力がなかったわけではあるまい。現に、Clangが頭角を表してからは、すぐさま、追いかけるようにエラーメッセージを改良していった。これは不思議だ。GCCの開発者にエラーメッセージを改

    iwadon
    iwadon 2012/07/12
  • GCC Explorer - an interactive take on compilation — Matt Godbolt’s blog

    One of the things I spend a fair amount of time doing at work is compiling my C/C++ code and looking at the disassembly output. Call me old-fashioned, but I think sometimes the only way to really grok your code is to see what the processor will actually execute. Particularly with some of the newer features of C++11 — lambdas, move constructors, threading primitives etcit’s nice to be able to se

    iwadon
    iwadon 2012/05/24
  • Compiler Explorer

    Add new...Clone CompilerExecutor From ThisOpt RemarksStack UsagePreprocessorASTLLVM IROpt PipelineDeviceRust MIRRust HIRRust Macro ExpansionGHC CoreGHC STGGHC CmmGCC Tree/RTLGNAT Debug TreeGNAT Debug Expanded CodeControl Flow Graph

    Compiler Explorer
    iwadon
    iwadon 2012/05/24
  • FreeBSD 10はGCCからLLVM/Clangに移行する

    [Phoronix] FreeBSD 10 To Use Clang Compiler, Deprecate GCC FreeBSDのGCC離れが加速しているようだ。FreeBSD 10では、Clangがデフォルトのコンパイラーとなり、GCCはdeprecated扱いとなる。FreeBSDの思想からすれば、GNUのツールチェインからなるべく離れたいのは分かる。Clangのライセンスは、FreeBSDにとって非常に都合がいい。 すでにFreeBSDのカーネルは、Clangによって警告なしでコンパイルが通るそうだ。FreeBSDのパッケージも、「Clangでビルドできなければバグ」とみなして、問題の洗い出しを進めているそうだ。 LLVMとClangは、最近、目覚しい発展をしている。GCCがコードベースのモジュール化を検討するほど危機感を持つのも分かる。 その他のFreeBSDの動向については、

  • Lydux - Overview

  • GCC 4.8のビルドはデフォルトでC++になるかも

    Diego Novillo - Switching to C++ by default in 4.8 GCC開発者の一人でGooglerのDiego Novilloは、今月の3日にMLで、GCC 4.8のビルドをデフォルトでC++にしようと提案している。これは、GCC自体をビルドする際のデフォルトの言語をC++にするという意味である。GCCがコードをデフォルトでC++としてコンパイルするのではない。現在のGCCビルドシステムの言語モードをC++に切り替えるのは非常に簡単で、必要なのはテストだけだという。 2011年、GCCの実装で、C++を使用可能にする採択が受け入られている。GCC自体のコンパイルをデフォルトでC++にすることは、GCC実装におけるC++の利用を更に加速するだろう。 GCCにおけるC++利用のコーディング規約は、目下作成中である。コーディング規約が完成する前に、GCCのビ

    iwadon
    iwadon 2012/04/06
  • GCC -mtune 何やってるか

    概要 gcc -mtune=hoge ってあんまよくわからず付けてるけど意味あんの? 効果 前のk10 vs coremaみたいな感じでparsecをひととおり動かした -O2 の時間を1.0とした時の処理時間の比 app |-O2 -mtune-native streamcluster | 1.016 canneal | 1.016 vips | 0.954 bodytrack | 0.966 x264 | 1.049 blackscholes | 0.986 swaptions | 0.981 ferret | 0.997 なんらかの効果がある…ように見える…? (ネタバレ: -march=avxが付いてて、それの効果が出ている) 超簡単にGCCのコード解説 gcc/*.c アーキ非依存のコード gcc/config/i386/* i386のコード gcc/config/i386/i3

  • GCC-4.7.0 がリリースされた - 野良C++erの雑記帳

    GCC の最新版, GCC-4.7.0 がリリースされました. http://gcc.gnu.org/gcc-4.7/ http://gcc.gnu.org/ml/gcc/2012-03/msg00347.html Git ミラーにおける ID はこちらです: gcc-4.7.0 93c5ebd73a4d1626d25203081d079cdd68222fcc GCC-4.7.0 は,実に1年ぶりとなる新機能追加版であり, 主に C++11(C++0x) の実装が強化されているほか,エラーメッセージ等が改善されています. また, C++11 を有効にする為のオプションとして,今までの -std=c++0x に加えて -std=c++11 というオプション指定も使えるようになっています. 追加された C++11 の機能は,以下を参照してください: http://gcc.gnu.org/gcc

    GCC-4.7.0 がリリースされた - 野良C++erの雑記帳
    iwadon
    iwadon 2012/03/23
  • niw.at — GCCが... 無い...!

    Xcode 4.2のあるバージョンを以降を入れるとgccが消えるようです。つまり、 $ ls /usr/bin/gcc /usr/bin/gcc -> llvm-gcc-4.2 「えっ」 「聞いてない…」 となるわけです。 でも、Appleは散々gccはオワコンと言っているので復活する兆しは無いでしょう。このへんはgccのライセンス周りが大きく影響してそうです。 で、困るのは今後標準になるclangは色々エラー出まくるとか、llvm-gccが微妙にgccと違う挙動をするとか、あぁ、もう今そういう問題に付き合ってる暇はないんだよおおぉぉ!ってなるわけです。 でも、無い物はない。困った。 そこで、一番手抜きな方法でgcc-4.2だけをいっこ前のXcodeから入れましょう。 Xcode 4.1を用意します。App StoreのXcodeは4.2になってしまっていますがここからダウンロードできます