タグ

internalに関するkamipoのブックマーク (11)

  • Shibuya.pm#12でLTしました - Islands in the byte stream (legacy)

    Shibuya.pm#12でLTしました。 perly.yをハックしてブロック付きメソッド呼び出しを可能にする,という話をしました。 たとえばこんなことができるようになります: File->open('<', $foo){ my($io) = @_; $io->grep{ /foo/ }->each{ say @_ }; }; まとめ: perly.yを変更するとPerlの文法を変えられる perly.yを変更したらmake regen_perlyを忘れずに 高度に発達したPerlRubyと見分けがつかない パッチ: --- perly.y 2009-11-29 18:04:19.000000000 +0900 +++ perly-new.y 2009-11-29 19:49:50.000000000 +0900 @@ -732,12 +732,33 @@ TOKEN_GETMAD($4

    Shibuya.pm#12でLTしました - Islands in the byte stream (legacy)
  • perl - B::Concise で VM の気持ちに触れる : 404 Blog Not Found

    2009年03月27日19:30 カテゴリLightweight Languages perl - B::Concise で VM の気持ちに触れる こういう時に便利な標準モジュール、B::Conciseを紹介します。 YappoLogs: CPUの気持ちは大事だけど、VMの気持ちも考えようよ ブロックがあるという事は、スコープがあると同義なのは当たり前ですが、スコープが変わるという事はレキシカル変数の処理などをやらなきゃいけないわけで、{}があるだけでもPerlは処理をいっぱいするわけですコマンドラインから B::系列のモジュールは、こちらが標準的な使い方。 % perl -MO=Concise -e '{$a=1}' 9 <@> leave[1 ref] vKP/REFC ->(end) 1 <0> enter ->2 2 <;> nextstate(main 2 -e:1) v:{

    perl - B::Concise で VM の気持ちに触れる : 404 Blog Not Found
  • Shibuya.Pm#10 Lt Wakapon

    Shibuya.Pm#10 Lt Wakapon - Presentation Transcript SV アリーナ概要 話者: wakapon アジェンダ なぜ今回,話者になったのか Perl 処理系のヒープメモリプールについて 時間があれば ExtraStage まずは自己紹介から こんなブログを 書いている 中の人 こんなブログを やっています まだ題に いきません 引き続き 今回話者になった いきさつ ひとことで表すと ゆっくりしすぎた ゆっくり ゆっくり ゆっくりしすぎた この結果 21:30 ころにはすでに締切り だいたい 2 時間くらい? わらにすがってみた そんな折, 残り 1 つの LT 枠で 何か話しませんか? from 竹迫さん ktkr ! でもなに話そう ... そうだ, ブログに書いた あれにしよう 処理系のヒープメモリプール管理 処理系内部のメモリ管理ってど

  • tokuhirom blog

    Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at

  • wakaponさんの超☆痛々しいPerl備忘帳: threads.xsめもめも

    threads.xsで使われているインタプリタスレッドの構造についてまとめたものをめもめ.最初にPerlithreadsの概要について説明してから,管理構造,提供されるメソッド,マジックについて説明していく. 1. Perlのスレッドの概要 Perlのスレッドはインタプリタスレッド(ithreads)と呼ばれる.スレッドのモデルはネイティブスレッドモデルである.1つのインタプリタスレッドは,1つのネイティブスレッド上で実行される.1インタプリタスレッドの親スレッドから指定されたサブルーチンは,インタプリタスレッド上に用意されたインタプリタインスタンスで実行される. スレッド間でのデータ共有は明示的に行う.1つのインタプリタスレッドから新たなスレッドを生成した場合,親スレッドのインタプリタインスタンスの内容がすべて子スレッド中のインタプリタインスタンス内にコピーされる.そのため,明示的に共

  • ファイルハンドルをめぐる冒険(ただしマニア向け) - daily dayflower

    以下は Perl 5.8.8 のソースを元に記述しました。Perl 5.10 でもそう変わってはいないと思いますが,結構内部が変更されているので違うかもしれません。大まかには同じだと思います。 イントロダクション Perl でのファイルハンドルは内部的には [http://search.cpan.org/perldoc?IO::Handle:title=IO::Handle] オブジェクトとして保持されています。そのような記述は perl5004delta くらいでしか見つかりませんでした。ラクダにもなかったような。 Internal change: FileHandle class based on IO::* classes File handles are now stored internally as type IO::Handle. The FileHandle module

    ファイルハンドルをめぐる冒険(ただしマニア向け) - daily dayflower
  • tokuhirom blog

    Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at

  • Perlの正規表現のバグ? (後編) - moriyoshiの日記

    追記: ケース4についての記述がなかったので言及。 前回の調査で、[[:print:]] と \p{IsPrint} は実は等価でないということが分かったわけだけど、これだけではまだ再現できなかった理由、つまり、 use encoding 'utf-8'; $_ = "\t"; # 1. マッチしない printf("%d\n", /[[:print:]]/); # 2. マッチする printf("%d\n", /^[[:print:]]/); # 3. マッチする printf("%d\n", /[[:print:]]$/); # 4. マッチする printf("%d\n", /^[[:print:]]$/); # 5. マッチしない printf("%d\n", /[[:print:]]+/); # 6. マッチする printf("%d\n", /^[[:print:]]+/);

    Perlの正規表現のバグ? (後編) - moriyoshiの日記
  • wakaponさんのよく☆ある☆ふつーの備忘帳: perl useしなくても使えるモジュール

  • http://www.cpa-lab.com/tech/032

  • Perl の正規表現リテラル中の変数展開を読む

    Perl の正規表現リテラル中の変数展開では、文法上、 解釈にあいまいさが生じることがあります。 この文章では、Perl インタプリタのソースコードから、 実装上でどのようにあいまいさが解決されるのかを説明します。 更新履歴 2008-06-05: 公開 Perl の判断 Perl では、文字列リテラルや正規表現リテラルの中で変数展開を行えます。 use Test::More tests => 2; my $name = 'Alice'; $_ = "My name is $name"; is($_, 'My name is Alice', '$name として Alice が展開される'); s/$name/Bob/g; is($_, 'My name is Bob', 'Alice が Bob に置き換えられる'); しかし、正規表現リテラルのなかで配列の要素を展開する際には、 [ 〜

  • 1