タグ

ブックマーク / hakobe932.hatenablog.com (4)

  • Kansai.pmでコルーチンについて発表してきた - はこべにっき ♨

    Kansai.pm#11にて「Perlで学ぶコルーチン」という発表をしてきました. だいぶ前のRuby勉強会でRuby 1.9のFiberをみてPerlでもいろいろやってみていたので,その時しらべたことを中心にぐだぐだとしゃべりました. Perlで学ぶコルーチンView more presentations from hakobe. コルーンは継続や並行処理などいろいろな概念がからんでいて調査がたいへんでした.PerlでのCoroの実装がどうなっているのかもう少し詳細に調査/発表できたらよかったです. スライドにも書いてますが,Ruby 1.9のFiberとまったく同じインターフェースをもったFiber.pmをつくってみました.githubで 公開しています. http://github.com/hakobe/perl-fiber/tree 以下のように簡単にFiber(=コルーチン)をつ

    Kansai.pmでコルーチンについて発表してきた - はこべにっき ♨
  • CoroはCoroutineのCoro - PerlでFiber - はこべにっき#

    Ruby勉強会@関西でFiberについて勉強してきた - はこべブログ ♨でPerlでもGeneratorをうまく書けるモジュールがないかなーとこぼしていたところ. perlではCoroでほぼ同じ事ができるが、どちらにしろCoroを使う利点は1個1個をresumeすることじゃなくて 非同期に実装することだと思うのでgenerator云々はちょっと用途が違う気もするです http://b.hatena.ne.jp/lestrrat/20090202#bookmark-11922880 というブコメをいただきました.id:lestrratさんありがとうございます. Coroについて調べてみたところ,Coro::Introによると The natural application for these is to include a scheduler, resulting in cooperati

    CoroはCoroutineのCoro - PerlでFiber - はこべにっき#
  • Parse::RecDescentでJSONをパース - はこべにっき ♨

    JSON::Hatchet の構文解析子 - Tociyuki::DiaryのJSONパーサがすっきりと書けていたのものだから,ちょっとうちもJSONパースしたくなってので書いてみました.といってもLL構文のパーサを1から書くのも芸がない感じだったので.Parse::RecDescentというCPANモジュールを使ってJSONのパーシングをしてみました. Parse::RecDescentはその名のとおり,汎用の再帰下降型パーサです.LL(1)文法にのっとっていれば,パースが可能です.*1 id:tociyukiさんがの記事にあるBNFを流用させてもらい,JSONのパーサを書くと以下のようになりました. このように,BNFっぽいものを記述するだけでパースを行うことができてお手軽です.パターンとして正規表現を書くこともできて,スキャナーに相当することもやってくれてます. 構文規則に合わせてパ

    Parse::RecDescentでJSONをパース - はこべにっき ♨
  • githubでforkしたリポジトリから本家にpush - はこべにっき#

    昨日いっていた問題が解決したので,あらためてgithubでforkしたリポジトリから家にpushする方法. 家にコミット権があるのが前提なので,ふつうは家をcloneして作業すれば問題ないです.ただ,途中までforkで開発してたんだけど,ある日,コミット権をもらったりして家に反映したいような時には便利です. 以下folkしたリポジトリのcloneのmaster branchにて, # remote リポジトリを設定する $ git remote add jugyo git@github.com:jugyo/termtter.git $ git fetch jugyo # git pullして家の変更を取り込む $ git pull --rebase jugyo # 変更をgit pushする $ git push jugyo いろいろまわり道したけど,すごいやったことある,コレ.

    githubでforkしたリポジトリから本家にpush - はこべにっき#
  • 1