アルパカ三銃士

〜アルパカに酔いしれる獣たちへ捧げる〜

大学生活がそろそろ終わりを迎える

2/23 を最後に、大学生活がほぼ終わった。
端的に言うと、嫌なこともあったけど全体を通して最高だったと思う。

そこで、これまでの大学生活を簡単に振り返ってみようと思う。
(文章は自分で理解できる程度に書いたため、かなり雑)

続きを読む

XS での pTHX/pTHX_, aTHX/aTHX_ について

今日は以前紹介したList::Flatten::XS を更新してバージョン 0.03 をリリースしたのだが、リリースした途端に次のような issue が飛んできた。

github.com

内容はスレッド Perl でビルドができないというもので、一番最初のレポートが去年の 4 月頃になっていた。(CPAN RT であったために全然気づかなかった...反省)
実はスレッドが使えるPerlをビルドしたことがなく、初めてそのビルド行って上記の issue を修正した。

その時に活用したものが pTHX, aTHX だった。

続きを読む

フィボナッチ数列の LLVM IR を読む

LLVM IR を読んでみた。
以下のような記事を見つけたため、今後のためにメモを残すことにした。

takoeight0821.hatenablog.jp

今回読むのは次のフィボナッチのコードである。

int fib(int n) {
  int i, t, a = 0, b = 1;
  for (i = 0; i < n; i++) {
    t = a + b; a = b; b = t;
  }
  return b;
}
続きを読む

Perl で Compiler::CodeGenerator::LLVM を用いて LLVM IR を出力する

約 4 年前になると思うが、@goccy54 さんが LLVM のライブラリを用いて、Perl のコードから LLVM IR を生成するといった夢のようなモジュールを作成されていた。

それが Compiler::CodeGenerator::LLVM である。

これをどのような感じで使うのかは、@papix さんによって以下のリンクで解説されている。

Compiler::CodeGenerator::LLVMで遊ぼう! | Hachioji.pm 日めくりテックトーク

上の記事が Publish されてから 1 年後に僕は Perl をやり始めて、Perl に関する情報を仕入れる中でこの記事に出会い、こういうことをやってみたいなーと強く憧れていたのを今でも覚えている...

それは置いといて、約 4 年間更新が止まった Compiler::CodeGenerator::LLVMLLVM 5.0.1 に対応させることができたため記録を取る。
なお、当時は LLVM 3.2 を用いていた。

続きを読む