From: "Yugui (Yuki Sonoda)" <yugui@...>
Date: 2008-08-25T15:03:10+09:00
Subject: [ruby-dev:35947] [Feature: trunk] relayouting struct RNode

This is a multi-part message in MIME format.
--------------040906040508060804040709
Content-Type: text/plain; charset=ISO-2022-JP
Content-Transfer-Encoding: 7bit

Yuguiです。

「第7回RHGの逆襲」(http://qwik.jp/rhg-strikes-back/78.html )の結果とし
て、RNode::nd_fileは誰も利用していないことが分かりました。

よって、RNodeのレイアウトにおいてポインタ長だけ空間が余っています。添付
のパッチでは、とりあえずこの空間をvoid *reservedとして、YARVに残っている
無駄なNULL pointer代入を削除してみました。

さて、この空間を何らかの形で有益に活用したいと思います。関係者に聞いてみ
たところでは次のような案が出てきました。

1) 行番号に使う
  行番号のMAXが15bit増えます。現状では32bit環境でも2**17あるので現実的に
特に困ることはないと思いますが、もう少し増えても悪くはないかもしれません。

2) RNodeを4分木にする
  ASTの分岐の数を増やします。笹田さんによれば、これで楽になるケースが少
しはあるとのことです。


どのようにしたら良いか、ご意見をいただければと思います。

-- 
Yugui <yugui@yugui.jp>
http://yugui.jp
私は私をDumpする

--------------040906040508060804040709
Content-Type: text/plain; x-mac-type="0"; x-mac-creator="0";
 name="rnode.patch"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
 filename="rnode.patch"

ZGlmZiAtLWdpdCBhL2luY2x1ZGUvcnVieS9ub2RlLmggYi9pbmNsdWRlL3J1Ynkvbm9kZS5o
CmluZGV4IGQ4M2Y1NTAuLjY2MjFhYzEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvcnVieS9ub2Rl
LmgKKysrIGIvaW5jbHVkZS9ydWJ5L25vZGUuaApAQCAtMjQyLDcgKzI0Miw3IEBAIGVudW0g
bm9kZV90eXBlIHsKIAogdHlwZWRlZiBzdHJ1Y3QgUk5vZGUgewogICAgIHVuc2lnbmVkIGxv
bmcgZmxhZ3M7Ci0gICAgY2hhciAqbmRfZmlsZTsKKyAgICB2b2lkICpyZXNlcnZlZDsKICAg
ICB1bmlvbiB7CiAJc3RydWN0IFJOb2RlICpub2RlOwogCUlEIGlkOwpkaWZmIC0tZ2l0IGEv
aXNlcS5jIGIvaXNlcS5jCmluZGV4IGI5NjQxNzYuLjlkZTY0OGIgMTAwNjQ0Ci0tLSBhL2lz
ZXEuYworKysgYi9pc2VxLmMKQEAgLTExOCwxMiArMTE4LDEwIEBAIHNldF9yZWxhdGlvbihy
Yl9pc2VxX3QgKmlzZXEsIGNvbnN0IFZBTFVFIHBhcmVudCkKICAgICBpZiAodHlwZSA9PSBJ
U0VRX1RZUEVfVE9QKSB7CiAJLyogdG9wbGV2ZWwgaXMgcHJpdmF0ZSAqLwogCWlzZXEtPmNy
ZWZfc3RhY2sgPSBORVdfQkxPQ0sodGgtPnRvcF93cmFwcGVyID8gdGgtPnRvcF93cmFwcGVy
IDogcmJfY09iamVjdCk7Ci0JaXNlcS0+Y3JlZl9zdGFjay0+bmRfZmlsZSA9IDA7CiAJaXNl
cS0+Y3JlZl9zdGFjay0+bmRfdmlzaSA9IE5PRVhfUFJJVkFURTsKICAgICB9CiAgICAgZWxz
ZSBpZiAodHlwZSA9PSBJU0VRX1RZUEVfTUVUSE9EIHx8IHR5cGUgPT0gSVNFUV9UWVBFX0NM
QVNTKSB7CiAJaXNlcS0+Y3JlZl9zdGFjayA9IE5FV19CTE9DSygwKTsgLyogcGxhY2UgaG9s
ZGVyICovCi0JaXNlcS0+Y3JlZl9zdGFjay0+bmRfZmlsZSA9IDA7CiAgICAgfQogICAgIGVs
c2UgaWYgKFJURVNUKHBhcmVudCkpIHsKIAlyYl9pc2VxX3QgKnBpc2VxOwpkaWZmIC0tZ2l0
IGEvdm0uYyBiL3ZtLmMKaW5kZXggNzMwZDg5Yy4uYjFiNjdkOCAxMDA2NDQKLS0tIGEvdm0u
YworKysgYi92bS5jCkBAIC03NDgsNyArNzQ4LDYgQEAgdm1fY3JlZl9wdXNoKHJiX3RocmVh
ZF90ICp0aCwgVkFMVUUga2xhc3MsIGludCBub2V4KQogewogICAgIHJiX2NvbnRyb2xfZnJh
bWVfdCAqY2ZwID0gdm1fZ2V0X3J1YnlfbGV2ZWxfY2FsbGVyX2NmcCh0aCwgdGgtPmNmcCk7
CiAgICAgTk9ERSAqY3JlZiA9IE5FV19CTE9DSyhrbGFzcyk7Ci0gICAgY3JlZi0+bmRfZmls
ZSA9IDA7CiAgICAgY3JlZi0+bmRfdmlzaSA9IG5vZXg7CiAKICAgICBpZiAoY2ZwKSB7Cg==
--------------040906040508060804040709--