2017-01-01から1年間の記事一覧

MoarVM の Configure.pl を Perl6 で書こうとした話

Perl が書けなかったので、MoarVM の ./Configure.pl を Perl6 で書いて理解してみようと思った: use v6; use Getopt::Long; constant $NAME = 'moar'; constant $GENLIST = 'build/gen.list'; sub MAIN() { my Bool $failed = False; my %args; my %default…

すごくシンプル過ぎるビルドシステム書いた

2 日も空いちゃったけど、書いた。 いつしか加わってしまった Emacs の markdown-mode の末尾の半角スペース 2 つが 2 つのアンダーバーになってしまう クソ現象で markdown-mode が使えないため、text-mode を使っている。 と思ったら、Emacs を再起動した…

Perl6 の参照の話

というわけで、アドベントカレンダーを登録してないけどそんな気持ちでクソエントリを書いていこうと思う。 前もやったかもしれないけど、Perl6 の参照の話をしよう。 my @puyo = (1, 2, 3); 簡単な配列を入れた @puyo を宣言する。 そして、それを $myon に…

虚無い

虚無(きょむ)い。 あるいは nil い。 つまるところ、こういう風に書いたら: (null? me) #t が返ってきそうな塩梅ということになる。 これは最近というわけでもなく、だいぶ前からだということになるんだけれども、例外が飛び出るわけでもなく、あまり問題が…

なんと Perl6 ではホームディレクトリを表すチルダを変換してくれない

嘘だろ?! って思ったんだけど、ほんとっぽい。 ~/.bashrc を /home/alice/.bashrc って変換してくれるようなバンドルされてるメソッドとか関数がないって意味ね。 # -*- mode: per6; -*- # \file: 00-childa.t use v6; use Test; plan 2; is $*HOME.add( '…

NativeCall つらい

GLib とか Gtk を NativeCall で呼び出そうとしてるんだけど、つらい。 C 言語でやるような typedef はどーやんの? GLib とかでこーいう感じの gsize は: typedef unsinged long gsize; Perl6 では以下のように constant る。 constant gsize = uint32; 構…

Perl6 の正規表現は不思議なんじゃなくて、自由だった

ここ を見て Perl6 のコードに移植するっていうのをやっていた。 Perl6 の正規表現が不思議すぎるなーと思って書いていたんだけど、よく読んだら自由だったらしい。 function isNumber (x) { if ( typeof x === 'number' ) return true; if ( /^0x[0-9a-f]+$…

GMake サバイバルガイド 便利そうな関数編

make は前回の記事で十分使えるようになったんじゃないかと思います*1。 私も険しいまけふぁいるの坂を駆け上がっている途中なので、ここで紹介できる関数は 2 つしかないのですが、 ええい、たらーん!!! という方もおられると思います。 そのような方はG…

GMake サバイバルガイド

この GMake サバイバルガイドでは、まけふぁいる*1をささっと書いて楽をしたいけど、 どーやって書くのかわからないといった様な人たちに向けてこんな感じに書けば良いんじゃないかなーというのを書いていると思います。 あと、この記事のまけふぁいるのサン…

LiveScript でつまずいたこと

関数呼び出し中の do hoge-func ham, tomato, beacon do a: \foo b: \bar が: hogeFunc( ham, tomato, beacon, { a: 'foo', b: 'bar' } ); になって欲しいのだが、時々こういう風になる: hogeFunc( ham, tomato, beacon({ a: 'foo', b: 'bar' }) ); うん、be…

あけおめ!

ʕ•͡ω•ʔ あけおめ