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--