--0016e659f7f20f1790049694da7f Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Hi, 2010/12/3 Yusuke ENDOH <mame / tsg.ne.jp>: >>> ... Oops! ¨Âèéäïåó îï÷ïòë áó åøãåðôåä ¨Â èáâåìéåöåä ôèáô ôèéó >>> would work... ¨Âèù äïî§ùïáììïôèéó>> >> Currently refine doesn't work without blocks, but do you mean that? > > Ah sorry. > > ¨ÂïäõìÆïïÅøô > ¨Âåæéî卯éøîõíäï > ¨Âåæ ¯¨ïôèåò©ñõï¨ïôèåò©åî> ¨Âîä > ¨Âîä > ¨ÂïäõìÂáòÅøô > ¨Âîãìõäå ÆïïÅøô ïò õóéîÆïïÅøô > ¨Âîä > ¨Âóéîç ÂáòÅøô > ¨Â £½áãôõáì°¬ åøðåãôå䨱¯² I forgot to support it. Please apply the attached patch. I have also added Kernel#refine. >> I think it's hard to add new keywords by a gem. ¨Âáöùïáâáîäïîå>> keywords? ¨Â ðòåæåò ôï ôèëåù÷ïòòåæéîå ôï ôèíåôèïä òåæéîå ÷éôèïõ>> blocks suggested by you. > > I first said in [ruby-core:33375]: > >> However, we should discuss this topic (new keyword) towards >> 2.0. ¨Âïäõìå§íåôèïäáòîïâáä¬ áó ðáòô ïæ òåæìåãôéïî >> features (such as Module#define_method for `def' keyword). > > Needless to say, we must not add any new keywords to 1.9.x, especially > normal simple word like "refine." ¨Â§í ïë ôï éîãìõäôèéó æåáôõòéî > 1.9.x, and now I believe that gem is a good idea as the first step. > > However, I received many negative comments to this approach (gem), > from nars*, kosak*, ko*, nakad*, shyouhe*. ¨Âèåóååí ôï ôèéîôèáô > it is better to import your patch "as is". I also wouldn't like to see such a language core feature in a gem. >> Isn't it enough to introduce refinements as an experimental feature, >> at least in trunk? > > I don't like to include a feature called "experimental", not because > it is not complete yet, but because it becomes "de facto standard." > It would be good if there are not only "document" but also "mechanism" > to inform users that the feature is experimental, such as warning or > a new method like "RubyVM.enable_experimental_features". As far as I know, the current status of trunk is unstable, and if new features break backward compatibility, Yugui will create the branch ruby_1_9, won't you, Yugui? So, we don't need the above mechanism until new experimental features are decided to include to 1.9.x. > Note that this is just my opinion, and that I seem to be in the > minority ;-) > I hope that 1.9.x would be stable, but many other committers seem to > hope to include new feature in 1.9.x aggressively. I also hope that 1.9.x would be stable, but I'd like to develop aggressively in trunk. I don't think the current design and implementation of refinements are mature, but I can't make them mature on my own, so I'd like to have help from other committers. -- Shugo Maeda --0016e659f7f20f1790049694da7f Content-Type: text/x-patch; charset=US-ASCII; name ndirect_using_and_kernel_refine_20101204.diff" Content-Disposition: attachment; filename ndirect_using_and_kernel_refine_20101204.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_ghagnoyy0 ZGlmZiAtLWdpdCBhL2V2YWwuYyBiL2V2YWwuYwppbmRleCA2ZDVhZjdiLi5iY2VmMWQ5IDEwMDY0 NAotLS0gYS9ldmFsLmMKKysrIGIvZXZhbC5jCkBAIC04OTgsOCArODk4LDE5IEBAIHJiX292ZXJs YXlfbW9kdWxlKE5PREUgKmNyZWYsIFZBTFVFIGtsYXNzLCBWQUxVRSBtb2R1bGUpCiAgICAgcmJf Y2xlYXJfY2FjaGVfYnlfY2xhc3Moa2xhc3MpOwogfQogCit2b2lkIHJiX3VzaW5nX21vZHVsZShO T0RFICpjcmVmLCBWQUxVRSBtb2R1bGUpOworCitzdGF0aWMgaW50Cit1c2luZ19tb2R1bGVfaShW QUxVRSBtb2R1bGUsIFZBTFVFIHZhbHVlLCBWQUxVRSBhcmcpCit7CisgICAgTk9ERSAqY3JlZiA9 IChOT0RFICopIGFyZzsKKworICAgIHJiX3VzaW5nX21vZHVsZShjcmVmLCBtb2R1bGUpOworICAg IHJldHVybiBTVF9DT05USU5VRTsKK30KKwogc3RhdGljIGludAotdXNpbmdfbW9kdWxlX2koVkFM VUUga2xhc3MsIFZBTFVFIG1vZHVsZSwgVkFMVUUgYXJnKQorb3ZlcmxheV9tb2R1bGVfaShWQUxV RSBrbGFzcywgVkFMVUUgbW9kdWxlLCBWQUxVRSBhcmcpCiB7CiAgICAgTk9ERSAqY3JlZiA9IChO T0RFICopIGFyZzsKICAgICBpbnQgaTsKQEAgLTkxMSwxNCArOTIyLDE4IEBAIHVzaW5nX21vZHVs ZV9pKFZBTFVFIGtsYXNzLCBWQUxVRSBtb2R1bGUsIFZBTFVFIGFyZykKIHZvaWQKIHJiX3VzaW5n X21vZHVsZShOT0RFICpjcmVmLCBWQUxVRSBtb2R1bGUpCiB7Ci0gICAgSUQgaWRfb3ZlcmxheWVk X21vZHVsZXM7Ci0gICAgVkFMVUUgb3ZlcmxheWVkX21vZHVsZXM7CisgICAgSUQgaWRfb3Zlcmxh eWVkX21vZHVsZXMsIGlkX3VzaW5nX21vZHVsZXM7CisgICAgVkFMVUUgb3ZlcmxheWVkX21vZHVs ZXMsIHVzaW5nX21vZHVsZXM7CiAKLSAgICBDaGVja19UeXBlKG1vZHVsZSwgVF9NT0RVTEUpOwor ICAgIENPTlNUX0lEKGlkX3VzaW5nX21vZHVsZXMsICJfX3VzaW5nX21vZHVsZXNfXyIpOworICAg IHVzaW5nX21vZHVsZXMgPSByYl9hdHRyX2dldChtb2R1bGUsIGlkX3VzaW5nX21vZHVsZXMpOwor ICAgIGlmICghTklMX1AodXNpbmdfbW9kdWxlcykpIHsKKwlyYl9oYXNoX2ZvcmVhY2godXNpbmdf bW9kdWxlcywgdXNpbmdfbW9kdWxlX2ksIChWQUxVRSkgY3JlZik7CisgICAgfQogICAgIENPTlNU X0lEKGlkX292ZXJsYXllZF9tb2R1bGVzLCAiX19vdmVybGF5ZWRfbW9kdWxlc19fIik7CiAgICAg b3ZlcmxheWVkX21vZHVsZXMgPSByYl9hdHRyX2dldChtb2R1bGUsIGlkX292ZXJsYXllZF9tb2R1 bGVzKTsKICAgICBpZiAoTklMX1Aob3ZlcmxheWVkX21vZHVsZXMpKSByZXR1cm47Ci0gICAgcmJf aGFzaF9mb3JlYWNoKG92ZXJsYXllZF9tb2R1bGVzLCB1c2luZ19tb2R1bGVfaSwgKFZBTFVFKSBj cmVmKTsKKyAgICByYl9oYXNoX2ZvcmVhY2gob3ZlcmxheWVkX21vZHVsZXMsIG92ZXJsYXlfbW9k dWxlX2ksIChWQUxVRSkgY3JlZik7CiB9CiAKIC8qCkBAIC05MzUsNiArOTUwLDcgQEAgcmJfbW9k X3VzaW5nKFZBTFVFIHNlbGYsIFZBTFVFIG1vZHVsZSkKICAgICBJRCBpZF91c2luZ19tb2R1bGVz OwogICAgIFZBTFVFIHVzaW5nX21vZHVsZXM7CiAKKyAgICBDaGVja19UeXBlKG1vZHVsZSwgVF9N T0RVTEUpOwogICAgIENPTlNUX0lEKGlkX3VzaW5nX21vZHVsZXMsICJfX3VzaW5nX21vZHVsZXNf XyIpOwogICAgIHVzaW5nX21vZHVsZXMgPSByYl9hdHRyX2dldChzZWxmLCBpZF91c2luZ19tb2R1 bGVzKTsKICAgICBpZiAoTklMX1AodXNpbmdfbW9kdWxlcykpIHsKQEAgLTk5NCw2ICsxMDEwLDIx IEBAIHJlZmluZW1lbnRfbW9kdWxlX2luY2x1ZGUoaW50IGFyZ2MsIFZBTFVFICphcmd2LCBWQUxV RSBtb2R1bGUpCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAorc3RhdGljIFZBTFVFCityZWZpbmVt ZW50X21vZHVsZV9uZXcoVkFMVUUga2xhc3MpCit7CisgICAgSUQgaWRfcmVmaW5lZF9jbGFzczsK KyAgICBWQUxVRSBtb2QgPSByYl9tb2R1bGVfbmV3KCk7CisKKyAgICBDT05TVF9JRChpZF9yZWZp bmVkX2NsYXNzLCAiX19yZWZpbmVkX2NsYXNzX18iKTsKKyAgICByYl9pdmFyX3NldChtb2QsIGlk X3JlZmluZWRfY2xhc3MsIGtsYXNzKTsKKyAgICByYl9kZWZpbmVfc2luZ2xldG9uX21ldGhvZCht b2QsICJtZXRob2RfYWRkZWQiLAorCQkJICAgICAgIHJlZmluZW1lbnRfbW9kdWxlX21ldGhvZF9h ZGRlZCwgMSk7CisgICAgcmJfZGVmaW5lX3NpbmdsZXRvbl9tZXRob2QobW9kLCAiaW5jbHVkZSIs CisJCQkgICAgICAgcmVmaW5lbWVudF9tb2R1bGVfaW5jbHVkZSwgLTEpOworICAgIHJldHVybiBt b2Q7Cit9CisKIC8qCiAgKiAgY2FsbC1zZXE6CiAgKiAgICAgcmVmaW5lKGtsYXNzKSB7IGJsb2Nr IH0gICAtPiBzZWxmCkBAIC0xMDA2LDcgKzEwMzcsNyBAQCByYl9tb2RfcmVmaW5lKFZBTFVFIG1v ZHVsZSwgVkFMVUUga2xhc3MpCiB7CiAgICAgTk9ERSAqY3JlZiA9IHJiX3ZtX2NyZWYoKTsKICAg ICBWQUxVRSBtb2Q7Ci0gICAgSUQgaWRfb3ZlcmxheWVkX21vZHVsZXMsIGlkX3JlZmluZWRfY2xh c3M7CisgICAgSUQgaWRfb3ZlcmxheWVkX21vZHVsZXM7CiAgICAgVkFMVUUgb3ZlcmxheWVkX21v ZHVsZXMsIG1vZHVsZXM7CiAKICAgICBDaGVja19UeXBlKGtsYXNzLCBUX0NMQVNTKTsKQEAgLTEw MTksMTMgKzEwNTAsNyBAQCByYl9tb2RfcmVmaW5lKFZBTFVFIG1vZHVsZSwgVkFMVUUga2xhc3Mp CiAgICAgfQogICAgIG1vZCA9IHJiX2hhc2hfYXJlZihvdmVybGF5ZWRfbW9kdWxlcywga2xhc3Mp OwogICAgIGlmIChOSUxfUChtb2QpKSB7Ci0JbW9kID0gcmJfbW9kdWxlX25ldygpOwotCUNPTlNU X0lEKGlkX3JlZmluZWRfY2xhc3MsICJfX3JlZmluZWRfY2xhc3NfXyIpOwotCXJiX2l2YXJfc2V0 KG1vZCwgaWRfcmVmaW5lZF9jbGFzcywga2xhc3MpOwotCXJiX2RlZmluZV9zaW5nbGV0b25fbWV0 aG9kKG1vZCwgIm1ldGhvZF9hZGRlZCIsCi0JCQkJICAgcmVmaW5lbWVudF9tb2R1bGVfbWV0aG9k X2FkZGVkLCAxKTsKLQlyYl9kZWZpbmVfc2luZ2xldG9uX21ldGhvZChtb2QsICJpbmNsdWRlIiwK LQkJCQkgICByZWZpbmVtZW50X21vZHVsZV9pbmNsdWRlLCAtMSk7CisJbW9kID0gcmVmaW5lbWVu dF9tb2R1bGVfbmV3KGtsYXNzKTsKIAlyYl9vdmVybGF5X21vZHVsZShjcmVmLCBrbGFzcywgbW9k KTsKIAlyYl9oYXNoX2FzZXQob3ZlcmxheWVkX21vZHVsZXMsIGtsYXNzLCBtb2QpOwogICAgIH0K QEAgLTEwMzMsNiArMTA1OCwyNiBAQCByYl9tb2RfcmVmaW5lKFZBTFVFIG1vZHVsZSwgVkFMVUUg a2xhc3MpCiAgICAgcmV0dXJuIG1vZDsKIH0KIAorLyoKKyAqICBjYWxsLXNlcToKKyAqICAgICBy ZWZpbmUoa2xhc3MpIHsgYmxvY2sgfSAgIC0+IHNlbGYKKyAqCisgKiAgUmVmaW5lIDxpPmtsYXNz PC9pPiBpbiB0aGUgc2NvcGUgd2hlcmUgdGhlIG1ldGhvZCBpcyBjYWxsZWQuCisgKi8KKworc3Rh dGljIFZBTFVFCitmX3JlZmluZShWQUxVRSBzZWxmLCBWQUxVRSBrbGFzcykKK3sKKyAgICBOT0RF ICpjcmVmID0gcmJfdm1fY3JlZigpOworICAgIFZBTFVFIG1vZDsKKworICAgIENoZWNrX1R5cGUo a2xhc3MsIFRfQ0xBU1MpOworICAgIG1vZCA9IHJlZmluZW1lbnRfbW9kdWxlX25ldyhrbGFzcyk7 CisgICAgcmJfb3ZlcmxheV9tb2R1bGUoY3JlZiwga2xhc3MsIG1vZCk7CisgICAgcmJfbW9kX21v ZHVsZV9ldmFsKDAsIE5VTEwsIG1vZCk7CisgICAgcmV0dXJuIG1vZDsKK30KKwogdm9pZAogcmJf b2JqX2NhbGxfaW5pdChWQUxVRSBvYmosIGludCBhcmdjLCBWQUxVRSAqYXJndikKIHsKQEAgLTEx NTcsNiArMTIwMiw3IEBAIGZfdXNpbmcoVkFMVUUgc2VsZiwgVkFMVUUgbW9kdWxlKQogewogICAg IE5PREUgKmNyZWYgPSByYl92bV9jcmVmKCk7CiAKKyAgICBDaGVja19UeXBlKG1vZHVsZSwgVF9N T0RVTEUpOwogICAgIHJiX3VzaW5nX21vZHVsZShjcmVmLCBtb2R1bGUpOwogICAgIHJldHVybiBz ZWxmOwogfQpAQCAtMTMzMSw2ICsxMzc3LDcgQEAgSW5pdF9ldmFsKHZvaWQpCiAgICAgcmJfZGVm aW5lX3NpbmdsZXRvbl9tZXRob2QocmJfdm1fdG9wX3NlbGYoKSwgImluY2x1ZGUiLCB0b3BfaW5j bHVkZSwgLTEpOwogCiAgICAgcmJfZGVmaW5lX2dsb2JhbF9mdW5jdGlvbigidXNpbmciLCBmX3Vz aW5nLCAxKTsKKyAgICByYl9kZWZpbmVfZ2xvYmFsX2Z1bmN0aW9uKCJyZWZpbmUiLCBmX3JlZmlu ZSwgMSk7CiAKICAgICByYl9kZWZpbmVfbWV0aG9kKHJiX21LZXJuZWwsICJleHRlbmQiLCByYl9v YmpfZXh0ZW5kLCAtMSk7CiAKZGlmZiAtLWdpdCBhL3Rlc3QvcnVieS90ZXN0X3JlZmluZW1lbnQu cmIgYi90ZXN0L3J1YnkvdGVzdF9yZWZpbmVtZW50LnJiCmluZGV4IDA1YTRmMzMuLmVkMDFjNzcg MTAwNjQ0Ci0tLSBhL3Rlc3QvcnVieS90ZXN0X3JlZmluZW1lbnQucmIKKysrIGIvdGVzdC9ydWJ5 L3Rlc3RfcmVmaW5lbWVudC5yYgpAQCAtODYsNiArODYsMTggQEAgY2xhc3MgVGVzdFJlZmluZW1l bnQgPCBUZXN0OjpVbml0OjpUZXN0Q2FzZQogICAgIGVuZAogICBlbmQKIAorICBtb2R1bGUgRm9v RXh0MworICAgIHVzaW5nIEZvb0V4dAorICBlbmQKKworICBjbGFzcyBGb29FeHRDbGllbnQzCisg ICAgdXNpbmcgRm9vRXh0MworCisgICAgZGVmIHNlbGYuaW52b2tlX3hfb24oZm9vKQorICAgICAg cmV0dXJuIGZvby54CisgICAgZW5kCisgIGVuZAorCiAgIGRlZiB0ZXN0X292ZXJyaWRlCiAgICAg Zm9vID0gRm9vLm5ldwogICAgIGFzc2VydF9lcXVhbCgiRm9vI3giLCBmb28ueCkKQEAgLTE1MCw2 ICsxNjIsMTMgQEAgY2xhc3MgVGVzdFJlZmluZW1lbnQgPCBUZXN0OjpVbml0OjpUZXN0Q2FzZQog ICAgIGFzc2VydF9yYWlzZShOb01ldGhvZEVycm9yKSB7IHN1Yi56IH0KICAgZW5kCiAKKyAgZGVm IHRlc3RfaW5kaXJlY3RfdXNpbmcKKyAgICBmb28gPSBGb28ubmV3CisgICAgYXNzZXJ0X2VxdWFs KCJGb28jeCIsIGZvby54KQorICAgIGFzc2VydF9lcXVhbCgiRm9vRXh0I3giLCBGb29FeHRDbGll bnQzLmludm9rZV94X29uKGZvbykpCisgICAgYXNzZXJ0X2VxdWFsKCJGb28jeCIsIGZvby54KQor ICBlbmQKKwogICBkZWYgdGVzdF9tb2R1bGVfZXZhbAogICAgIGZvbyA9IEZvby5uZXcKICAgICBh c3NlcnRfZXF1YWwoIkZvbyN4IiwgZm9vLngpCkBAIC0zMDcsNSArMzI2LDMzIEBAIGNsYXNzIFRl c3RSZWZpbmVtZW50IDwgVGVzdDo6VW5pdDo6VGVzdENhc2UKICAgICBhc3NlcnRfZXF1YWwoIm0y I2JhciIsIG0uY2FsbF9iYXIoImFiYyIpKQogICAgIGFzc2VydF9lcXVhbCgibTMjYmF6IiwgbS5j YWxsX2JheigiYWJjIikpCiAgIGVuZAorCisgIGRlZiB0ZXN0X3JlZmluZV9hdF90b3BsZXZlbAor ICAgIGFzc2VydF9lcXVhbCgwLCAxIC8gMikKKyAgICByZXN1bHQgPSBldmFsKDw8LUVPRiwgVE9Q TEVWRUxfQklORElORykKKyAgICAgIHJlZmluZSBGaXhudW0gZG8KKyAgICAgICAgZGVmIC8ob3Ro ZXIpIHF1byhvdGhlcikgZW5kCisgICAgICBlbmQKKworICAgICAgMSAvIDIKKyAgICBFT0YKKyAg ICBhc3NlcnRfZXF1YWwoUmF0aW9uYWwoMSwgMiksIHJlc3VsdCkKKyAgICBhc3NlcnRfZXF1YWwo MCwgMSAvIDIpCisgIGVuZAorCisgIGRlZiByZWZpbmVfaW5fbWV0aG9kCisgICAgcmVmaW5lIEZp eG51bSBkbworICAgICAgZGVmIC8ob3RoZXIpIHF1byhvdGhlcikgZW5kCisgICAgZW5kCisKKyAg ICByZXR1cm4gMSAvIDIKKyAgZW5kCisgIHByaXZhdGUgOnJlZmluZV9pbl9tZXRob2QKKworICBk ZWYgdGVzdF9yZWZpbmVfaW5fbWV0aG9kCisgICAgYXNzZXJ0X2VxdWFsKDAsIDEgLyAyKQorICAg IGFzc2VydF9lcXVhbChSYXRpb25hbCgxLCAyKSwgcmVmaW5lX2luX21ldGhvZCkKKyAgICBhc3Nl cnRfZXF1YWwoMCwgMSAvIDIpCisgIGVuZAogZW5kCiAKZGlmZiAtLWdpdCBhL3ZtX2luc25oZWxw ZXIuYyBiL3ZtX2luc25oZWxwZXIuYwppbmRleCA2YmI2ZjViLi40YTQxNTZhIDEwMDY0NAotLS0g YS92bV9pbnNuaGVscGVyLmMKKysrIGIvdm1faW5zbmhlbHBlci5jCkBAIC0xNzYzLDEwICsxNzYz LDkgQEAgcmJfdm1fdXNpbmdfbW9kdWxlcyhOT0RFICpjcmVmLCBWQUxVRSBrbGFzcykKICAgICBJ RCBpZF91c2luZ19tb2R1bGVzOwogICAgIFZBTFVFIHVzaW5nX21vZHVsZXM7CiAKLSAgICBDT05T VF9JRChpZF91c2luZ19tb2R1bGVzLCAiX191c2luZ19tb2R1bGVzX18iKTsKLSAgICB1c2luZ19t b2R1bGVzID0gcmJfYXR0cl9nZXQoa2xhc3MsIGlkX3VzaW5nX21vZHVsZXMpOwotICAgIHN3aXRj aCAoVFlQRShrbGFzcykpIHsKLSAgICBjYXNlIFRfQ0xBU1M6CisgICAgaWYgKFRZUEUoa2xhc3Mp ID09IFRfQ0xBU1MpIHsKKwlDT05TVF9JRChpZF91c2luZ19tb2R1bGVzLCAiX191c2luZ19tb2R1 bGVzX18iKTsKKwl1c2luZ19tb2R1bGVzID0gcmJfYXR0cl9nZXQoa2xhc3MsIGlkX3VzaW5nX21v ZHVsZXMpOwogCWlmIChOSUxfUCh1c2luZ19tb2R1bGVzKSkgewogCSAgICBWQUxVRSBzdXBlciA9 IHJiX2NsYXNzX3JlYWwoUkNMQVNTX1NVUEVSKGtsYXNzKSk7CiAJICAgIHVzaW5nX21vZHVsZXMg PSByYl9hdHRyX2dldChzdXBlciwgaWRfdXNpbmdfbW9kdWxlcyk7CkBAIC0xNzc1LDE0ICsxNzc0 LDcgQEAgcmJfdm1fdXNpbmdfbW9kdWxlcyhOT0RFICpjcmVmLCBWQUxVRSBrbGFzcykKIAkJcmJf aXZhcl9zZXQoa2xhc3MsIGlkX3VzaW5nX21vZHVsZXMsIHVzaW5nX21vZHVsZXMpOwogCSAgICB9 CiAJfQotCWJyZWFrOwotICAgIGNhc2UgVF9NT0RVTEU6Ci0JcmJfdXNpbmdfbW9kdWxlKGNyZWYs IGtsYXNzKTsKLQlicmVhazsKLSAgICB9Ci0gICAgaWYgKCFOSUxfUCh1c2luZ19tb2R1bGVzKSkg ewotCXJiX2hhc2hfZm9yZWFjaCh1c2luZ19tb2R1bGVzLCB2bV91c2luZ19tb2R1bGVfaSwKLQkJ ICAgICAgIAkoVkFMVUUpIGNyZWYpOwogICAgIH0KKyAgICByYl91c2luZ19tb2R1bGUoY3JlZiwg a2xhc3MpOwogfQogCg --0016e659f7f20f1790049694da7f--