Entries from 2016-01-01 to 1 year

travis ciで失敗したテストを再実行する

perlのmoduleを開発しているとき、travis ciでときどき失敗するテストがあり、失敗するたびにRestart buildボタンをポチっと押すという不毛なことをしていた。 もちろん失敗する原因をちゃんと特定し、テストをなおすのが一番だが、とりあえず失敗したテスト…

forkを使うテストではTest2::IPCを使うといい

perlでforkを使うテストでは Test::SharedFork をuseしておくと安心なことが知られているが、最近その実装をみたところTest2がロードされていたら、そのIPC実装を使うように変わっていた。 よっていま、forkを使ったテストを新しく書くなら、直接Test2::IPC…

pipeを他プロセスから読み書きする

長らくpipeは自プロセスもしくは 親子プロセスでしか読み書きできないものと思っていたが、 最近、他のプロセスからも読み書き可能なことを発見した。つまり/proc/pid/fdを使えばよい。 自分としてはかなりの驚きであった。 例えば、 #!/usr/bin/env perl us…

use Foo () としたときFoo->importが呼ばれないのはなぜか

perl5の話題。 use FooとするとFooをrequireしつつ、Foo->importが呼ばれることはよく知られているが、 use Foo ()としたときには、importは呼ばれない。 これをどういう風にして実現しているのか前から疑問に思っていた。 というのも普通の関数は「引数なし…

plenv-update

UPDATE Ooops, there already exists https://github.com/hfm/plenv-update . You should use it! github.com Are your plenv and its plugins up-to-date? Make sure they are up-to-date with plenv-update. plenv-update adds plenv update command that …

plenv freeze

plenv のplugin、plenv freezeを作った。 github.com たとえばCPAN moduleを作っている人は、テストのため あるperlのinstallationを コアモジュール以外何もインストールしていない状態に保っていたいことがあるかもしれない。 plenv freezeは、あるperlのi…

Install latest perl to Ubuntu on Windows

Have you tried Ubuntu on Windows? It looks great! To use perl in Ubuntu on Windows, it seems that we should set dont_use_nlink true in at least File::Find. See https://github.com/Microsoft/BashOnWindows/issues/186 for details. So here is h…

WEB+DB PRESSにPerl6の記事を書いた + Gotanda.pmでPerl6の話をした

6/24に発売されたWEB+DB PRESS Vol.93に「Perl6の歩き方」という記事を書かせてもらった。 gihyo.jp 内容としては Perl6のインストール方法 僕がPerl6をさわってまっさきに関数の書き方がたくさんあるなと感じたので、関数のこと エコシステム(モジュールイ…