今回のリリースでは実装をシンプルにするために機能を削除しました。
削除した機能
バージョン 0.2 で実装した Snidel::map()
です。 この機能についての説明は Snidel 0.2 をリリースしました に書いています。
削除した理由
バージョン 0.6 で内部的なアーキテクチャを大幅に変更して、親プロセス・子プロセスの間でデータの受け渡し方が変わったのですが、0.6 の時点では Snidel::map()
は対応できておらず、旧方式のままでした。
当初は Snidel::map()
も変えていこうと考えていましたが実装が難しかったのと、よくよく考えてみると 0.2 リリース時の記事に書いてるとおり、この機能は実験的に作ったので「並列処理を手軽に実行する」という Snidel で解決したい課題にはそもそも必要ないんじゃないかと思いはじめました。
なのでバッサリ削除してシンプルにすることにしました。
おかげでコードもすっきりして、カバレッジや Scrutinizer のスコアも改善しました。
(削除した部分は、別のライブラリとして作るかもしれません)
今後の展望
Snidel がタスクを子プロセスに渡したり、その処理結果を受け取る際に system v message queue を使っているのですが、これを外部ストレージも使えるようにしたいです。その理由も含めて、次回リリース時の記事にまとめたいと思います。