Life is very short

2014-11-16

Perl 5.10以前では, リファレンス型はSVt_IVでなく SVt_RV

| 11:41

https://github.com/tokuhirom/Linux-Socket-Accept4/pull/6


ハマったのでメモ.


Perl 5.11以降では, SVt_RV(リファレンス型)は SVt_IV(整数型)のエイリアス(同値)

なのですが, それより前では異なる値です. リファレンス型の判定に SVt_IVしか

使っていなかったので, Perl 5.10.1ではその条件にマッチせず, 予期せぬ挙動と

なっていました. if文だと SvROKを使えばこんなことを気にせずいけるのですが,

今回は switch文だったので, ハマりました.


switch文の場合は同値の caseは書けないので, ifdefによる分岐も必要になります.


参考

http://perldoc.perl.org/perlapi.html#SV-Flags

新しい perldoc perlapiには下記の通り同値であることが示されています.

SVt_RV is an alias for SVt_IV, which exists for backward compatibility

2014-11-02

MELPA badge

| 13:10

最近 MELPA badgeというものができました.


こんな感じのやつです


パッケージ作者は貼っておくと, いつ更新されたものか,

melpa-stable落とせるのはどのバージョンかというのが

わかってよいかと思います.


すごく長いので, Markdownの下記に以下のリンク群の定義を追加すると

よいでしょう. snippet化しておくとよいと思います.

(git-gutterの部分をあなたのパッケージ名に置き換えてください)

[melpa-link]: http://melpa.org/#/git-gutter
[melpa-stable-link]: http://stable.melpa.org/#/git-gutter
[melpa-badge]: http://melpa.org/packages/git-gutter-badge.svg
[melpa-stable-badge]: http://stable.melpa.org/packages/git-gutter-badge.svg

パッケージ名は MELPAに登録されているパッケージ名で, githubリポジトリ名では

ないので注意してください.


参照するところ(Markdownの先頭あたり)に以下を追記します.

[![melpa badge][melpa-badge]][melpa-link] [![melpa stable badge][melpa-stable-badge]][melpa-stable-link]

これで badgeが表示されます.