Perl - clessc のバインディング
なんとなくできたが
- 外部の src をどのように build したらいいかよくわからない。 本当は ./configure && make してできた オブジェクトファイルを必要なものだけリンクするようにしたいがどうやればいいかわからず、Moudle::Build の c_source に書いておいた。 -> https://github.com/perl-seis/Seis や https://github.com/goccy/p5-Compiler-Lexer を参考にしてだいたい解決。
- minlla で minil.toml をかえても、Buidl.PL が更新されない。-> 解決
- たまにsegment faultする。(これはclessc自体の問題な気が...)
などがよくわかっていない。どなたか教えてください。
#!/usr/bin/env perl use strict; use warnings; use CSS::clessc qw(less_compile); use CSS::LESSp; use Benchmark qw(cmpthese); my $less = <<'...'; .rounded-corners (@radius: 5px) { -webkit-border-radius: @radius; -moz-border-radius: @radius; -ms-border-radius: @radius; -o-border-radius: @radius; border-radius: @radius; } #header { .rounded-corners; } #footer { .rounded-corners(10px); } ... cmpthese 0, { clessc => sub { less_compile($less); }, LESSp => sub { CSS::LESSp->parse($less); }, }; __END__ Rate LESSp clessc LESSp 1375/s -- -83% clessc 8005/s 482% --
CSS::LESSp よりは速い。