YAPC::Fukuoka 2025
採択
トーク(40分)

転ばぬ先のXS入門

polamjag polamjag polamjag
14

普段から業務でPerlのWebアプリケーションを開発・運用している方であっても「cpanfileに ::XS とついたモジュールがいくつか並んでいるところまではわかっているが、難解そうで、実装を追ったりするのはなんとなく避けてしまっている」というような方は少なくないのではないでしょうか (かくいう私もそのような時期がありました……)。

そんなXS、Perlにおけるネイティブ拡張のための仕組みは、

  • データベースクライアントなど既存のCライブラリへのラッパー
    • (libmysqlclientに対応するDBD::mysqlや、ImageMagickに対応するPerlMagickなど)
  • ネイティブコードによる最適化がウリのライブラリ
    • (JSON::XS、Type::Tiny::XS、……)

など、Webアプリケーション開発において必須とも言えるモジュール群で使われている技術です。一方で、とっつきにくく思われている節があり、なかなか手ほどきを受ける機会もないように思います。

本セッションでは、普段Perlを読み書きしているがXSにはあまり触れたことがない方を主な対象に、XSモジュールに対する心理的なハードルを下げ、リファレンスなどを参照しながら既存のライブラリなどの実装を理解したり、トラブルシューティングができるようになることを目指します。また、Perlに馴染みがない方にとっても、スクリプト言語におけるネイティブ拡張の仕組みのケーススタディとして楽しんでいただければと思います。

トーク内容

  • CPANモジュールを取り巻くツールチェインのおさらい
  • XS "急"速入門
    • 「XS言語」の基本的な文法・構造から、外部ライブラリの呼び出しなど
  • XSモジュール探訪
    • 実際のXSモジュールのコード読解