2018年3月24日のブックマーク (2件)

  • Package::Prototype をリリースした - アルパカ三銃士

    Package::Prototype というモジュールを開発した。 metacpan.org これは bless($ref :HashRef[, $classname :Str]) メソッドにハッシュリファレンスを与えるとインスタンスを作成し、 _ で始まらないキーに対応する値を返すような動作をするメソッドを stash(Symbol Table Hash) へ登録してくれる。この時、指定した $classname の stash をリセットしてメソッドを登録する。デフォルトで $classname は __ANON__ としている。 全部 XS で作成してるため、パフォーマンスは劣らないはず。 以下は Package::Prototype を用いて bless を行う時と通常の bless を行った場合のメソッド定義の振る舞いを確認するためのコードである。(眠すぎてめちゃくちゃ...)

    Package::Prototype をリリースした - アルパカ三銃士
    codehex
    codehex 2018/03/24
    書いた
  • JITコンパイルでの冒険 パート1:インタプリタ | POSTD

    記事は、JITコンパイラに関するシリーズの第1回目です。計画としては、シンプルな入力言語を使ってそのインタプリタとJITをいくつか開発し、段々と複雑なものにしていくつもりです。このシリーズが終わるまでに、JITコンパイラの開発に何が必要か、そのためにどんな支援ツールが使えるかを、読者の皆さんによく理解していただけるようになれば幸いです。 入力言語は Brainfuck です。シリーズでは以後、BFと呼んでいきます。BFはプログラマビリティの質を突き詰めるので、今回の目的に適した言語だと思います。BFは、プログラミングは非常に冗長ですが、なじみのC構造体に直接マップするメモリポインタやループのような概念を持つ点で、プログラミング言語としてはかなりの”メインストリーム”です。 実装言語にはC++を使います。”手始め”の言語としては一般的ではないかもしれません。とはいえ、私の知っている大部

    JITコンパイルでの冒険 パート1:インタプリタ | POSTD
    codehex
    codehex 2018/03/24
    面白そう