noboxというprimitive型のArrayのwrapperライブラリ作った

特にすぐに必要なわけでもないけど、なんとなく作った。

https://github.com/xuwei-k/nobox


Scalaには、ArrayOpsとかWrappedArrayとかあるんですが、それらも、保持してるのは内部的にArrayでも、mapしたりしたときに結局一旦boxingやunboxingされてしまっている場合がある(?)ので、それらを防ぐだけのもの。マクロとかspecializedアノテーション使って頑張ることもできたかもしれないけど、ここまでやるなら、もう最初からコード生成してしまったほうがわかりやすいというか確実なので、primitiveの8種類毎にループ回してひたすらコード生成です。

spire も、ある程度specializedアノテーション使った、boxingを防ぐためのものがありますが、コレクションのメソッドなどは提供していない(?)ようだったので、spireとも機能はほとんど重複していないはずです。


一応versionつけて、bintraryにpublishしておきました。が、なんとなく作りたくなって作っただけなので、今後継続してメンテするかどうかはわかりません・・・。


あと、そもそもこんな細かいパフォーマンスがボトルネックになるなんて、競技プログラミングでもやってない限りありえないだろうし、普通はScala標準ライブラリで十分なはずですよ