タグ

2010年3月3日のブックマーク (3件)

  • メモリ破壊の現場を見つける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

  • I am Cruby!

    この記事はパーフェクトRuby Advent Calendar 2013 - Adventar の9日目です。 前の日のエントリーはパーフェクトRuby Advent Calendar 2013(8日目) Let's Sinatra Life - たちブログです。 まだ参加できますので、みなさまもぜひ。 パーフェクトRuby Advent Calendar 2013 - Adventar パーフェクトRuby Rubyの仕様に大変詳しい同僚への献をインターセプトして読ませていただきました。 さまざまな機能をまとめたとてもよいだと思います。 著者のみなさまの苦労が偲ばれました。 1行の修正 Ruby1.9.3に対するこんな感じのパッチを送りました。 diff --git a/object.c b/object.c index 0a0b260..1ab28a3 100644 -

    I am Cruby!
    kiszk
    kiszk 2010/03/03
  • クロージャからProject Lambdaへ

    今回はJava SE 7で導入される機能について紹介していきます。 筆者が思うに、Java SE 7で最も議論を起こすであろう機能はクロージャです。クロージャの導入には紆余曲折がありましたが(詳しくは記事の後半で述べます)、とうとう2009年11月に正式に導入されることが決まりました。 そこで、連載ではいち早くクロージャについて取りあげることにします。 とは言うものの、現在提案されている仕様はまだたたき台レベルです。このため、今後仕様が大幅に変化する可能性があります。その点をご了承ください。 関数型とクロージャ クロージャの仕様を紹介する前に、クロージャがどういうものかということを説明しましょう。 ここでは例として、ボタンをクリックしたときのイベント処理を考えてみます。 Swingではイベントの処理をリスナを用いて行います。例えば、以下のようなコードになります。 JButton but

    クロージャからProject Lambdaへ
    kiszk
    kiszk 2010/03/03