いつだったか NODE を見てて思ったんだけど、 ファイル名を char* で持つんじゃなくて ID みたいのにすれば、 ファイル名と行番号の二つで 32 ビットに収められるんじゃなかろうか。 たとえばファイルと行番号にそれぞれ 16 ビット使えばよい。 8000 行を越えるファイルはありそうだが、 65000 行を越えるファイルは滅多にないだろう。 1 プロセスで 65000 以上のファイルを使うこともたぶんないだろう。 強いて言うと自動生成したコードで eval を細かく使いまくり、 すべてに別の名前を与えたような場合か。
あるいは、ファイルと行番号を独立に持たないほうがいいかもしれないな。 「1 から 3503 まではこのファイル」みたいな情報を持っていれば、 トータル 2^32 行まで対応できる。
まあいずれにしても、これまでの行番号の上限 (8192 行) からはかなり増加して、 さらに NODE のフラグが 13 ビット空く。 とはいえ、NODE のフラグが増えても特に使い道がなさそうだ。 YARV で使ったりするかなあ?
(03:10)
Copyright (c) 2002-2007 青木峰郎 / Minero Aoki. All rights reserved.
nd_line は使うけどファイル名は使わないから。
実際に使っているのは12000ファイルですが、可能性として100000ファイルに対応しておいて欲しい用途があります。
# 逐一 close してたら関係ないのかな?
1.9だと17bit
そっか使わないか > YARV
じゃあどうでもよかったなあ。
10 万ファイルって、ライブラリのファイルが
10 万あるって話ですか? > babie さん
すんません、前後良く読んでませんでした。ただのファイルです。