タグ

gccに関するmohnoのブックマーク (13)

  • malloc.c を読む (malloc / free)

    このシリーズではこれらの関数が内部でどのように処理されるのかを調べていきます。 malloc.c を読む (malloc / free) malloc.c を読む (bins) malloc.c を読む (arena) 今回は malloc() free() の全体像を紹介します。 注意としてここでの目的は全体を俯瞰して、詳細を詰めずとも各 bins の役割を理解し、攻撃手法を理解できるようにすることです。それに合わないマルチスレッドや最適化などにおける緻密なトリックやコーナーケースなどは暗黙的に実装されていると仮定します。その詳細についてはソースコードや他の資料を参考にしていただきたいです。 ここで扱う glibc のバージョンは v2.38 です。また glibc のソースコードはブラウザ上で読むことができます。 https://elixir.bootlin.com/glibc/lat

    malloc.c を読む (malloc / free)
    mohno
    mohno 2024/07/17
    malloc/freeの作りが雑だとメモリーの確保/解放の順序でパフォーマンスに差が出るので、各社のコンパイラがしのぎを削っていた。前世紀ですでに数千行レベルだった記憶(なので読もうとは思わなかった)
  • C言語をマスターしたい人はGCCのバージョン14を使いましょう - pyopyopyo - Linuxとかプログラミングの覚え書き -


    CC++gcc-14使 gcc-14 C C6 int main() { int buf[10]; buf[10] = 0; return 0; }  : : :  buf[10]=0 CC gcc 14  6gcc14使  test.c 
    C言語をマスターしたい人はGCCのバージョン14を使いましょう - pyopyopyo - Linuxとかプログラミングの覚え書き -
    mohno
    mohno 2024/06/11
    gcc 14が新しいのか古いのかも知らなかったが新しいんだな。「gcc 14を使うと,問題がある場合はその理由をアスキーアートで解説してくれるようになりました」←コンパイル時に分かるヤツは、ってことか。
  • 「//このコメントを消したら動かない」は大体Shift_JISの2バイト目が原因で発生する - Qiita

    TL;DR Shift_JISにしただけでコンパイラが通らなくなる恐ろしい事件とその回避法について。 \ (¥)のASCIIコードは0x5c 表、能は良くない UTF-8は神 2023/12/06追記 誤りがあったので訂正します。こんな読まれると思ってなかったので正直ちょっとびっくりしていますが、いろいろコメントありがとうございました。(ツイート等全て拝見しました。) Shift_JISが悪いわけではない(デフォルトのエンコーディング設定の問題)→追記しました UTF-8にはUTF-FSSという仕様でこの問題が回避されている→マジでタメになる知識ありがとうございます OSによってデフォルトのエンコーディング設定が異なるせいで、デフォルト環境での動作がOSにより異なる→なるほど?(調査中) CRLFとLF問題では→なるほど?(調査中) そんな問題何を今更→UTF-8が出てから生まれたからです

    「//このコメントを消したら動かない」は大体Shift_JISの2バイト目が原因で発生する - Qiita
    mohno
    mohno 2023/12/05
     Windowsgcc/g++Mac/LinuxMac/LinuxShiftJIS/ShiftJIS  



    C

    ShiftJIS











    gcc

    Linux
     
  • Pythonコードを35000倍に高速化したい


     PythonPython Python35000  Python35000 SIMD使 44000 35000 202352ModularPython使CMojoPythonPython
    Pythonコードを35000倍に高速化したい
    mohno
    mohno 2023/05/07
    「逆転の発想として、C++を高速化するのではなく、比較対象のPythonを遅くすればどうでしょう?」←逆転すぎるけど、structの導入から考えてもありそう。「比較元のPythonコードは公開されていない」←そうなんだ。
  • 「バグを意図的にバグのまま残す」という選択肢がある


     gcc v12.1C++std::regex("")""     gcc v12.1使C++
    「バグを意図的にバグのまま残す」という選択肢がある
    mohno
    mohno 2022/07/31
    要約すると「バグ仕様」/かつてInternet Explorerで規格に合わせろと言われても合わせなかった理由。/Windowsは旧バージョンとの互換モードが山ほどある。
  • Can one set std=c99 in GCC as a default?

    mohno
    mohno 2021/02/26
    gccがデフォルトでC99でコンパイルできるようにするのって、こんなに面倒なのかと。
  • ゲーム開発者のための C++11~C++20, 将来の C++ の展望 - CEDEC2020 - Speaker Deck

    ゲーム開発者のための C++11~C++20, 将来の C++ の展望 【CEDEC ページ】https://cedec.cesa.or.jp/2020/session/detail/s5e8327a52702c 【解説付きの書籍版 📚】https://zenn.dev/tetsurom/books/cpp11-cpp20-for-game-developers

    ゲーム開発者のための C++11~C++20, 将来の C++ の展望 - CEDEC2020 - Speaker Deck
    mohno
    mohno 2020/09/03
    ゲーム開発では新しい規格が活用されているのか。「初期化付き条件分岐」とか「三方比較演算子」とか未知の世界すぎる。VC++サポートしてないじゃん、と思ったらデフォルトがオフになってるだけだった。
  • C言語から0番地へアクセスする方法についての個人的まとめ - /var/log/hikalium


    uchan_nosC0 @8 Day131 BitNOS (@uchan_nos) 2020212  uint8_t *p = 1; p--; *p = v; hikalium (@hikalium) 2020212    uchan0C0NULL
    C言語から0番地へアクセスする方法についての個人的まとめ - /var/log/hikalium
    mohno
    mohno 2020/02/16
     ud2 Compiler Explorer   

    hikalium

    C







    Linux

    gcc

    Compiler Explorer
     
  • 本の虫: GCCのgit移行が難航中

    GCCはgitへの移行を計画しているが、GCCの既存のsubversionレポジトリをgitレポジトリに変換する作業が難航している。 GCCの移行作業を検証しているのは他ならぬEric S. Raymond(ESR)だ。 ESRお手製の変換ツール、reposurgeonはsubversionからgitへの変換ができる。 Resource page for reposurgeon 3.44 しかしGCCは30年もの歴史を持ち、そのsubversionレポジトリも複雑だ。 ESRはGCCのためにreposurgeonのバグを潰し、勢い変換しようと試みたが、意外な障害に出くわした。メモリ不足だ。 GCC's Conversion To Git Is Being Held Up By RAM, a.k.a. Crazy DDR4 Prices - Phoronix ESRの所有する64GBのメモリ

    mohno
    mohno 2018/07/31
    何が大変なのかと思ったら履歴ごと移行しようとしてるのか→「ESRお手製の変換ツール、reposurgeonはsubversionからgitへの変換ができる」「今のソースツリーの状態をそのままgitにしていちからはじめるほうがマシかもしれん」
  • MicrosoftからC99開発者へ: ISO C++を使え

    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が最近リリースされ、重要な変...

    MicrosoftからC99開発者へ: ISO C++を使え
    mohno
    mohno 2018/03/10
    「C90または、ISO C++のどちらの一部でもないISO Cの機能をサポートする予定はない」「MSがCに対してリソースを無駄にしないことには賛成だ」
  • 例え話をしないC言語のポインタの説明 | 右や左の旦那様


         Hello, World   void main() { int a; int b; int c; a = 1; b = 2; c = a + b; } #include <stdio.h>C  c = a + b
    例え話をしないC言語のポインタの説明 | 右や左の旦那様
    mohno
    mohno 2018/02/01
    「1と3で同じ”*”という記号を使っているくせにイミが違うのは少しヒドい」w gcc/gdb ってのが微妙にハードルが低くないが、次は配列だ! アセンブリ言語からはじめると分かるんだけどねー。そのハードルが高いけど。
  • サイン、コサインをインテルの CPU で計算すると少しバグっているらしい


       鹿    http://nlab.itmedia.co.jp/nl/articles/1508/28/news145.html 使 調CPU sin(x)  
    サイン、コサインをインテルの CPU で計算すると少しバグっているらしい
    mohno
    mohno 2017/06/05
    Pentiumバグじゃなくて:-O 多項式で計算してるのに速い(くらいCPUの処理って遅い)んだ。
  • gccの正規表現がバグだらけという話 - Qiita


      "_"    gcc 4.9.2  4.9.3  2gcc 4.9.2   string s("~"); smatch m; regex re(R"([~\-_])"); if (regex_search(s, m, re)) { cout << m[0] <<endl; } else { cout << "Not matched" <<endl; }
    gccの正規表現がバグだらけという話 - Qiita
  • 1