List::UtilsBy::XS 0.06をリリースした

metacpan.org

github.com

Debugビルドした Perlだと extract_by で assertionに引っかかることがあった問題の修正. 戻り値の個数が引数の数より多い場合 EXTEND を使って Stackを確保しないといけないという理解. 他のメソッドはなんで引っ掛からないんだって思ったけど引数の数と戻り値の数が同じ場合は問題ないようである. どちらも stackを使って渡されておりその分確保されているためだと思われる

Perlたまにテストが通らないとか動かないとかのレポートを受けてコード見るけど, XSはマジでわからん. 他の言語の C言語拡張も書いたことがあるけど, ここまで VMの構成を意識しないといけないのはないよなと思う. まあ最初期のもので他言語をそれを見て扱いやすいものにしたのだと思うけど. 今回は Perl coreにバンドルされるソースに似たものがあったので何とかなったという具合でした.