2019-05-01から1ヶ月間の記事一覧

ID (4)

ID は 229 = 約 500M と言ったな、あれは嘘だ。というわけで、4 bit フラグで使っていたので、228 = 268,435,456 = 約 250M 個でした。 下 1 ビットは、ID_STATIC_SYM というフラグを埋め込むためのものみたいだけど、知らないなあ。今度調べます。 ID の種…

ID (3)

さて、IDの種類を見るには、symbol.h に定義してある id_type(ID) 関数を使う。 static inline int id_type(ID id) { if (is_notop_id(id)) { return (int)(id&ID_SCOPE_MASK); } else { return -1; } } is_notop_id() の詳細はおいといて、とりあえずこれが…

ID (2)

ID は 29 bit と紹介したが、では (1) 32 bit 限定なの? (2) 3 bit はどこいった? という疑問が生じる。回答を述べると、(1) は、Yesで、(2) は ID の種類に使っている。 32ビットの理由。一般的な辞書的テーブルには key と value にそれぞれ VALUE が入…

ID

ID は、インタプリタプロセス寿命の中で、文字列に一意な数値をつけるもの、と述べた。例えば "hello" に 100 という数値を付けたら、プロセスが再起動するまでずっと 100 になる。 (C) 文字列 -> ID への変換は、rb_intern(const char *) で行う。引数は St…