middlenum
現代的なCPUは128bitとかのレジスタを普通に備えているので、長そうで長くない少し長い整数としてmiddlenumを作ると良いかもしれない。現状のmoshはbignum(多倍長整数)とfixnum(30bit?整数)の2種類しかなく、プロトコル等の演算で大部分を占める32bit長の演算をbignumでなければできない。
もちろん64bit専用にするといった方法で簡単に導入できるという面もあるが、実際はもうちょっと複雑で、
type | ストレージ | 演算 |
---|---|---|
fixnum | native | native |
middlenum | native | soft |
bignum | soft | soft |
(float4) | native | native |
という違いが考えられる。
...もちろん、4要素くらいのshort vectorに対する需要もかなり大きいので、その対応も含めて一緒に考えないといけない。