タグ

CとRubyに関するcrafのブックマーク (3)

  • メモリアロケーションからみた拡張ライブラリに大切なこと

    2. 自己紹介 • 樽家 昌也 (MasayaTARUI) • twitter id: @taru • ircnet: tal_ • freenode: tarui • 平日はふつうに?サラリーマン。 • 年に1,2度、networkと無縁な生活を求めて旅に • 仕事で直接Rubyが対象になることは今のところない • Rubyを使い始めてから13年目ぐらい? 3. これまで 1. Rubyを使い始める 2. よくわからない不具合はRubyレベルのWorkaroundで適当にごまかす 3. メモリリークとかSEGVに泣かされる 4. 仕方がなく、Cコードに手を入れる 5. Rubyの独特な構成が面白くてCコードに手を入れる ← Now!!

    メモリアロケーションからみた拡張ライブラリに大切なこと
    craf
    craf 2013/06/27
  • if と真偽値 | すぐに忘れる脳みそのためのメモ

    Java の if 文での検査は真偽値のみ 最初に馴染んだ言語が Java だったので、「if 文での検査で使えるのは当然 true または false でしょ」という感覚が染み込んでいる。例えば、Java で if (0){ ... } をコンパイルしようとすると、 Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - 互換性のない型 期待値: boolean 検出値: int というエラーが表示される。 Java言語規定 ブロック及び文 の 「14.8 if 文」によると、 if ( Expression ) Statement … 式(Expression) は,論理型をもたなければならない。そうでなければ,コンパイル時エラーが発生する。 (太字は引用者による) という仕様で

    if と真偽値 | すぐに忘れる脳みそのためのメモ
  • メモリ破壊の現場を見つけるTips - I am Cruby!

    RubyAdventJP, GC, Ruby(この記事はRuby Advent Calendar jp: 2009 : ATNDの4日目です。前日はmrknさんでした) 健全なるRubyistであれば、RubyのGCをいじることが週に一度はあるでしょう。そのときに困るのが、GCをいじってしまったことによるバグの修正です。GCをいじるというのは想像以上に難しく、少しでも書き間違えるとメモリ破壊が発生します。そのときに使えるTipsをこの記事で書くことにします。 みなさんご存じの通り、メモリ破壊というのは原因を特定するのが困難です。これは問題が発覚する場所とメモリ破壊が起こった現場が位置的に遠いことに起因しています。偉大なるハッカーのまつもとさんですら、その発見は困難です。 [ruby-dev:38628] Re: [BUG: trunk] called on terminated objec

  • 1