From: Yusuke ENDOH Date: 2010-10-28T07:34:34+09:00 Subject: [ruby-core:32920] Re: [Ruby 1.9-Feature#3908] private constant --0016e655006433f4820493a0d4eb Content-Type: text/plain; charset=ISO-8859-1 Hi, 2010/10/27 Run Paint Run Run : > Issue #3908 has been updated by Run Paint Run Run. > > > I'm sorry I missed the deadline on this ticket... No problem. Thank you always for your detailed spec review. # Say, I wanna work on File.write... > 1) Is it intentional that `const_get :K`, where :K is a private constant, raises a NameError? No. I think `#const_get' does not raise an exception for private constants because `#method' and `#send' does not for private methods. Matz, may I introduce a new method `#public_const_get', like `#public_send'? > 2) Should private constants be returned by `#constants`? I think no. I'm attaching a patch. Matz, may I introduce two new methods, `#public_constants' and `#private_constants'? > 3) Is it intended that, given the name of a private constant, `#set_const` makes it public? No. I'm attaching a patch. NOTES: - Matz is now casting doubt on this feature ;-( because we've not estimated the impact of this feature yet. Though I thought that I certainly got matz's approval, I might make a quick judgment. We're discussing still now, but this feature may be reverted. - The first patch slightly changes YARV insn format for defineclass, to distinguish constant access style in class definition, e.g., OK: class Foo::PrivateClass NG: class PrivateClass Thus, ko1's approval is needed. - I have to work on defined?(Foo::PrivateConstant) -- Yusuke Endoh --0016e655006433f4820493a0d4eb Content-Type: text/x-patch; charset=US-ASCII; name="0001-add-rb_const_get_-_visi-functions.patch" Content-Disposition: attachment; filename="0001-add-rb_const_get_-_visi-functions.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gfss4xa80 RnJvbSAwNzU0MjNiZWU4OWJmMWYyYmZjYzNlYTA2NWJkZDhkZjg4NGNkZDVhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBZdXN1a2UgRW5kb2ggPG1hbWVAdHNnLm5lLmpwPgpEYXRlOiBU aHUsIDI4IE9jdCAyMDEwIDA2OjQ2OjA3ICswOTAwClN1YmplY3Q6IFtQQVRDSCAxLzNdIGFkZCBy Yl9jb25zdF9nZXRfKl92aXNpIGZ1bmN0aW9ucwoKcmJfY29uc3RfZ2V0X3Zpc2ksIHJiX2NvbnN0 X2dldF9hdF92aXNpIGFuZCByYl9jb25zdF9nZXRfZnJvbV92aXNpIGFyZQphZGRlZC4gIFRoZXkg YmVoYXZlIGxpa2UsIHJlc3BlY3RpdmVseSwgcmJfY29uc3RfZ2V0LCByYl9jb25zdF9nZXRfYXQK YW5kIHJiX2NvbnN0X2dldF9mcm9tLCB3aXRoIGNvbnN0YW50IHZpc2liaWxpdHkgY2hlY2suCi0t LQogY29tcGlsZS5jICAgICAgICAgICAgICAgICB8ICAgIDggKysrKy0tLS0KIGluY2x1ZGUvcnVi eS9pbnRlcm4uaCAgICAgfCAgICAzICsrKwogaW5zbnMuZGVmICAgICAgICAgICAgICAgICB8ICAg MTAgKysrKysrLS0tLQogdGVzdC9ydWJ5L3Rlc3RfbWFyc2hhbC5yYiB8ICAgMTQgKysrKysrKysr KysrKysKIHRlc3QvcnVieS90ZXN0X21vZHVsZS5yYiAgfCAgIDE4ICsrKysrKysrKysrKysrKysr KwogdmFyaWFibGUuYyAgICAgICAgICAgICAgICB8ICAgMjggKysrKysrKysrKysrKysrKysrKysr KystLS0tLQogdm1faW5zbmhlbHBlci5jICAgICAgICAgICB8ICAgIDQgKystLQogNyBmaWxlcyBj aGFuZ2VkLCA3MCBpbnNlcnRpb25zKCspLCAxNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9j b21waWxlLmMgYi9jb21waWxlLmMKaW5kZXggNGVlMjBkNC4uZjdkMjczZCAxMDA2NDQKLS0tIGEv Y29tcGlsZS5jCisrKyBiL2NvbXBpbGUuYwpAQCAtNDY0NCwxMCArNDY0NCwxMCBAQCBpc2VxX2Nv bXBpbGVfZWFjaChyYl9pc2VxX3QgKmlzZXEsIExJTktfQU5DSE9SICpyZXQsIE5PREUgKiBub2Rl LCBpbnQgcG9wZWQpCiAJCW5vZGUtPm5kX2JvZHksCiAJCXJiX3NwcmludGYoIjxjbGFzczolcz4i LCByYl9pZDJuYW1lKG5vZGUtPm5kX2NwYXRoLT5uZF9taWQpKSwKIAkJSVNFUV9UWVBFX0NMQVNT LCBuZF9saW5lKG5vZGUpKTsKLQljb21waWxlX2NwYXRoKHJldCwgaXNlcSwgbm9kZS0+bmRfY3Bh dGgpOworCVZBTFVFIG5vc2NvcGUgPSBjb21waWxlX2NwYXRoKHJldCwgaXNlcSwgbm9kZS0+bmRf Y3BhdGgpOwogCUNPTVBJTEUocmV0LCAic3VwZXIiLCBub2RlLT5uZF9zdXBlcik7CiAJQUREX0lO U04zKHJldCwgbmRfbGluZShub2RlKSwgZGVmaW5lY2xhc3MsCi0JCSAgSUQyU1lNKG5vZGUtPm5k X2NwYXRoLT5uZF9taWQpLCBpc2VxdmFsLCBJTlQyRklYKDApKTsKKwkJICBJRDJTWU0obm9kZS0+ bmRfY3BhdGgtPm5kX21pZCksIGlzZXF2YWwsIElOVDJGSVgobm9zY29wZSA/IDMgOiAwKSk7CiAK IAlpZiAocG9wZWQpIHsKIAkgICAgQUREX0lOU04ocmV0LCBuZF9saW5lKG5vZGUpLCBwb3ApOwpA QCAtNDY2MCwxMCArNDY2MCwxMCBAQCBpc2VxX2NvbXBpbGVfZWFjaChyYl9pc2VxX3QgKmlzZXEs IExJTktfQU5DSE9SICpyZXQsIE5PREUgKiBub2RlLCBpbnQgcG9wZWQpCiAJICAgIHJiX3Nwcmlu dGYoIjxtb2R1bGU6JXM+IiwgcmJfaWQybmFtZShub2RlLT5uZF9jcGF0aC0+bmRfbWlkKSksCiAJ ICAgIElTRVFfVFlQRV9DTEFTUywgbmRfbGluZShub2RlKSk7CiAKLQljb21waWxlX2NwYXRoKHJl dCwgaXNlcSwgbm9kZS0+bmRfY3BhdGgpOworCVZBTFVFIG5vc2NvcGUgPSBjb21waWxlX2NwYXRo KHJldCwgaXNlcSwgbm9kZS0+bmRfY3BhdGgpOwogCUFERF9JTlNOIChyZXQsIG5kX2xpbmUobm9k ZSksIHB1dG5pbCk7IC8qIGR1bW15ICovCiAJQUREX0lOU04zKHJldCwgbmRfbGluZShub2RlKSwg ZGVmaW5lY2xhc3MsCi0JCSAgSUQyU1lNKG5vZGUtPm5kX2NwYXRoLT5uZF9taWQpLCBpc2VxdmFs LCBJTlQyRklYKDIpKTsKKwkJICBJRDJTWU0obm9kZS0+bmRfY3BhdGgtPm5kX21pZCksIGlzZXF2 YWwsIElOVDJGSVgobm9zY29wZSA/IDUgOiAyKSk7CiAJaWYgKHBvcGVkKSB7CiAJICAgIEFERF9J TlNOKHJldCwgbmRfbGluZShub2RlKSwgcG9wKTsKIAl9CmRpZmYgLS1naXQgYS9pbmNsdWRlL3J1 YnkvaW50ZXJuLmggYi9pbmNsdWRlL3J1YnkvaW50ZXJuLmgKaW5kZXggYjE4YTFmNS4uY2I5ZDkw YiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9ydWJ5L2ludGVybi5oCisrKyBiL2luY2x1ZGUvcnVieS9p bnRlcm4uaApAQCAtODUxLDYgKzg1MSw5IEBAIFZBTFVFIHJiX21vZF9yZW1vdmVfY29uc3QoVkFM VUUsIFZBTFVFKTsKIGludCByYl9jb25zdF9kZWZpbmVkKFZBTFVFLCBJRCk7CiBpbnQgcmJfY29u c3RfZGVmaW5lZF9hdChWQUxVRSwgSUQpOwogaW50IHJiX2NvbnN0X2RlZmluZWRfZnJvbShWQUxV RSwgSUQpOworVkFMVUUgcmJfY29uc3RfZ2V0X3Zpc2koVkFMVUUsIElEKTsKK1ZBTFVFIHJiX2Nv bnN0X2dldF9hdF92aXNpKFZBTFVFLCBJRCk7CitWQUxVRSByYl9jb25zdF9nZXRfZnJvbV92aXNp KFZBTFVFLCBJRCk7CiBWQUxVRSByYl9jb25zdF9nZXQoVkFMVUUsIElEKTsKIFZBTFVFIHJiX2Nv bnN0X2dldF9hdChWQUxVRSwgSUQpOwogVkFMVUUgcmJfY29uc3RfZ2V0X2Zyb20oVkFMVUUsIElE KTsKZGlmZiAtLWdpdCBhL2luc25zLmRlZiBiL2luc25zLmRlZgppbmRleCBiMTE3ZmQ1Li4wNTg0 NjhmIDEwMDY0NAotLS0gYS9pbnNucy5kZWYKKysrIGIvaW5zbnMuZGVmCkBAIC04OTAsNyArODkw LDggQEAgZGVmaW5lY2xhc3MKICAgICBWQUxVRSBrbGFzczsKIAogICAgIHN3aXRjaCAoKGludClk ZWZpbmVfdHlwZSkgewotICAgICAgY2FzZSAwOgorICAgICAgY2FzZSAwOiAvKiBzY29wZWQ6ICAg Y2xhc3MgRm9vOjpCYXIgKi8KKyAgICAgIGNhc2UgMzogLyogbm8gc2NvcGU6IGNsYXNzIEJhciAq LwogCS8qIHZhbCBpcyBkdW1teS4gIGNsYXNzZGVmIHJldHVybnMgY2xhc3Mgc2NvcGUgdmFsdWUg Ki8KIAogCWlmIChzdXBlciA9PSBRbmlsKSB7CkBAIC05MDMsNyArOTA0LDcgQEAgZGVmaW5lY2xh c3MKIAlyYl9hdXRvbG9hZF9sb2FkKGNiYXNlLCBpZCk7CiAJaWYgKHJiX2NvbnN0X2RlZmluZWRf YXQoY2Jhc2UsIGlkKSkgewogCSAgICAvKiBhbHJlYWR5IGV4aXN0ICovCi0JICAgIGtsYXNzID0g cmJfY29uc3RfZ2V0X2F0KGNiYXNlLCBpZCk7CisJICAgIGtsYXNzID0gZGVmaW5lX3R5cGUgPT0g MCA/IHJiX2NvbnN0X2dldF9hdF92aXNpKGNiYXNlLCBpZCkgOiByYl9jb25zdF9nZXRfYXQoY2Jh c2UsIGlkKTsKIAkgICAgaWYgKFRZUEUoa2xhc3MpICE9IFRfQ0xBU1MpIHsKIAkJcmJfcmFpc2Uo cmJfZVR5cGVFcnJvciwgIiVzIGlzIG5vdCBhIGNsYXNzIiwgcmJfaWQybmFtZShpZCkpOwogCSAg ICB9CkBAIC05MzEsNyArOTMyLDggQEAgZGVmaW5lY2xhc3MKIAkvKiBzdXBlciBpcyBkdW1teSAq LwogCWtsYXNzID0gcmJfc2luZ2xldG9uX2NsYXNzKGNiYXNlKTsKIAlicmVhazsKLSAgICAgIGNh c2UgMjoKKyAgICAgIGNhc2UgMjogLyogc2NvcGVkOiAgIG1vZHVsZSBGb286OkJhciAgb3IgIG1v ZHVsZSA6OkJhciAqLworICAgICAgY2FzZSA1OiAvKiBubyBzY29wZTogbW9kdWxlIEJhciAqLwog CS8qIHZhbCBpcyBkdW1teS4gIGNsYXNzZGVmIHJldHVybnMgY2xhc3Mgc2NvcGUgdmFsdWUgKi8K IAkvKiBzdXBlciBpcyBkdW1teSAqLwogCkBAIC05MzksNyArOTQxLDcgQEAgZGVmaW5lY2xhc3MK IAogCS8qIGZpbmQga2xhc3MgKi8KIAlpZiAocmJfY29uc3RfZGVmaW5lZF9hdChjYmFzZSwgaWQp KSB7Ci0JICAgIGtsYXNzID0gcmJfY29uc3RfZ2V0X2F0KGNiYXNlLCBpZCk7CisJICAgIGtsYXNz ID0gZGVmaW5lX3R5cGUgPT0gMiA/IHJiX2NvbnN0X2dldF9hdF92aXNpKGNiYXNlLCBpZCkgOiBy Yl9jb25zdF9nZXRfYXQoY2Jhc2UsIGlkKTsKIAkgICAgLyogYWxyZWFkeSBleGlzdCAqLwogCSAg ICBpZiAoVFlQRShrbGFzcykgIT0gVF9NT0RVTEUpIHsKIAkJcmJfcmFpc2UocmJfZVR5cGVFcnJv ciwgIiVzIGlzIG5vdCBhIG1vZHVsZSIsIHJiX2lkMm5hbWUoaWQpKTsKZGlmZiAtLWdpdCBhL3Rl c3QvcnVieS90ZXN0X21hcnNoYWwucmIgYi90ZXN0L3J1YnkvdGVzdF9tYXJzaGFsLnJiCmluZGV4 IGYzZDg2MjcuLmUxZGM3NjcgMTAwNjQ0Ci0tLSBhL3Rlc3QvcnVieS90ZXN0X21hcnNoYWwucmIK KysrIGIvdGVzdC9ydWJ5L3Rlc3RfbWFyc2hhbC5yYgpAQCAtNDU0LDUgKzQ1NCwxOSBAQCBjbGFz cyBUZXN0TWFyc2hhbCA8IFRlc3Q6OlVuaXQ6OlRlc3RDYXNlCiAgICAgbzIgPSBNYXJzaGFsLmxv YWQobSkKICAgICBhc3NlcnRfZXF1YWwobzEsIG8yKQogICBlbmQKKworICBjbGFzcyBQcml2YXRl Q2xhc3MKKyAgICBkZWYgaW5pdGlhbGl6ZShmb28pCisgICAgICBAZm9vID0gZm9vCisgICAgZW5k CisgICAgYXR0cl9yZWFkZXIgOmZvbworICBlbmQKKyAgcHJpdmF0ZV9jb25zdGFudCA6UHJpdmF0 ZUNsYXNzCiAgIAorICBkZWYgdGVzdF9tYXJzaGFsX3ByaXZhdGVfY2xhc3MKKyAgICBvMSA9IFBy aXZhdGVDbGFzcy5uZXcoInRlc3QiKQorICAgIG8yID0gTWFyc2hhbC5sb2FkKE1hcnNoYWwuZHVt cChvMSkpCisgICAgYXNzZXJ0X2VxdWFsKG8xLmNsYXNzLCBvMi5jbGFzcykKKyAgICBhc3NlcnRf ZXF1YWwobzEuZm9vLCBvMi5mb28pCisgIGVuZAogZW5kCmRpZmYgLS1naXQgYS90ZXN0L3J1Ynkv dGVzdF9tb2R1bGUucmIgYi90ZXN0L3J1YnkvdGVzdF9tb2R1bGUucmIKaW5kZXggODdhNDkwNS4u MzMwNmMwZCAxMDA2NDQKLS0tIGEvdGVzdC9ydWJ5L3Rlc3RfbW9kdWxlLnJiCisrKyBiL3Rlc3Qv cnVieS90ZXN0X21vZHVsZS5yYgpAQCAtOTQ3LDYgKzk0NywyNCBAQCBjbGFzcyBUZXN0TW9kdWxl IDwgVGVzdDo6VW5pdDo6VGVzdENhc2UKICAgICBjLnByaXZhdGVfY29uc3RhbnQoOkZPTykKICAg ICBhc3NlcnRfcmFpc2UoTmFtZUVycm9yKSB7IGM6OkZPTyB9CiAgICAgYXNzZXJ0X2VxdWFsKCJm b28iLCBjLmNsYXNzX2V2YWwoIkZPTyIpKQorICAgIGFzc2VydF9lcXVhbCgiZm9vIiwgYy5jb25z dF9nZXQoIkZPTyIpKQorICBlbmQKKworICBjbGFzcyBQcml2YXRlQ2xhc3MKKyAgZW5kCisgIHBy aXZhdGVfY29uc3RhbnQgOlByaXZhdGVDbGFzcworCisgIGRlZiB0ZXN0X2RlZmluZV9tb2R1bGVf dW5kZXJfcHJpdmF0ZV9jb25zdGFudAorICAgIGFzc2VydF9yYWlzZShOYW1lRXJyb3IpIGRvCisg ICAgICBldmFsICVxe2NsYXNzIFRlc3RNb2R1bGU6OlByaXZhdGVDbGFzczsgZW5kfQorICAgIGVu ZAorICAgIGFzc2VydF9yYWlzZShOYW1lRXJyb3IpIGRvCisgICAgICBldmFsICVxe21vZHVsZSBU ZXN0TW9kdWxlOjpQcml2YXRlQ2xhc3M6OlRlc3RNb2R1bGU7IGVuZH0KKyAgICBlbmQKKyAgICBl dmFsICVxe2NsYXNzIFByaXZhdGVDbGFzczsgZW5kfQorICAgIGV2YWwgJXF7bW9kdWxlIFByaXZh dGVDbGFzczo6VGVzdE1vZHVsZTsgZW5kfQorICAgIGFzc2VydF9pbnN0YW5jZV9vZihNb2R1bGUs IFByaXZhdGVDbGFzczo6VGVzdE1vZHVsZSkKKyAgICBQcml2YXRlQ2xhc3MuY2xhc3NfZXZhbCB7 IHJlbW92ZV9jb25zdCg6VGVzdE1vZHVsZSkgfQogICBlbmQKIAogICBkZWYgdGVzdF9wdWJsaWNf Y29uc3RhbnQKZGlmZiAtLWdpdCBhL3ZhcmlhYmxlLmMgYi92YXJpYWJsZS5jCmluZGV4IGIzNzJl YjIuLjQ0YjBjNzYgMTAwNjQ0Ci0tLSBhL3ZhcmlhYmxlLmMKKysrIGIvdmFyaWFibGUuYwpAQCAt MTU3NSw3ICsxNTc1LDcgQEAgcmJfYXV0b2xvYWRfcChWQUxVRSBtb2QsIElEIGlkKQogfQogCiBz dGF0aWMgVkFMVUUKLXJiX2NvbnN0X2dldF8wKFZBTFVFIGtsYXNzLCBJRCBpZCwgaW50IGV4Y2x1 ZGUsIGludCByZWN1cnNlKQorcmJfY29uc3RfZ2V0XzAoVkFMVUUga2xhc3MsIElEIGlkLCBpbnQg ZXhjbHVkZSwgaW50IHJlY3Vyc2UsIGludCB2aXNpYmlsaXR5KQogewogICAgIFZBTFVFIHZhbHVl LCB0bXA7CiAgICAgaW50IG1vZF9yZXRyeSA9IDA7CkBAIC0xNTg3LDcgKzE1ODcsNyBAQCByYl9j b25zdF9nZXRfMChWQUxVRSBrbGFzcywgSUQgaWQsIGludCBleGNsdWRlLCBpbnQgcmVjdXJzZSkK IAlzdF9kYXRhX3QgZGF0YTsKIAl3aGlsZSAoUkNMQVNTX0NPTlNUX1RCTCh0bXApICYmIHN0X2xv b2t1cChSQ0xBU1NfQ09OU1RfVEJMKHRtcCksIChzdF9kYXRhX3QpaWQsICZkYXRhKSkgewogCSAg ICByYl9jb25zdF9lbnRyeV90ICpjZSA9IChyYl9jb25zdF9lbnRyeV90ICopZGF0YTsKLQkgICAg aWYgKGNlLT5mbGFnID09IENPTlNUX1BSSVZBVEUpIHsKKwkgICAgaWYgKHZpc2liaWxpdHkgJiYg Y2UtPmZsYWcgPT0gQ09OU1RfUFJJVkFURSkgewogCQlyYl9uYW1lX2Vycm9yKGlkLCAicHJpdmF0 ZSBjb25zdGFudCAlczo6JXMgcmVmZXJlbmNlZCIsIHJiX2NsYXNzMm5hbWUoa2xhc3MpLCByYl9p ZDJuYW1lKGlkKSk7CiAJICAgIH0KIAkgICAgdmFsdWUgPSBjZS0+dmFsdWU7CkBAIC0xNjE4LDIx ICsxNjE4LDM5IEBAIHJiX2NvbnN0X2dldF8wKFZBTFVFIGtsYXNzLCBJRCBpZCwgaW50IGV4Y2x1 ZGUsIGludCByZWN1cnNlKQogfQogCiBWQUxVRQorcmJfY29uc3RfZ2V0X2Zyb21fdmlzaShWQUxV RSBrbGFzcywgSUQgaWQpCit7CisgICAgcmV0dXJuIHJiX2NvbnN0X2dldF8wKGtsYXNzLCBpZCwg VFJVRSwgVFJVRSwgVFJVRSk7Cit9CisKK1ZBTFVFCityYl9jb25zdF9nZXRfdmlzaShWQUxVRSBr bGFzcywgSUQgaWQpCit7CisgICAgcmV0dXJuIHJiX2NvbnN0X2dldF8wKGtsYXNzLCBpZCwgRkFM U0UsIFRSVUUsIFRSVUUpOworfQorCitWQUxVRQorcmJfY29uc3RfZ2V0X2F0X3Zpc2koVkFMVUUg a2xhc3MsIElEIGlkKQoreworICAgIHJldHVybiByYl9jb25zdF9nZXRfMChrbGFzcywgaWQsIFRS VUUsIEZBTFNFLCBUUlVFKTsKK30KKworVkFMVUUKIHJiX2NvbnN0X2dldF9mcm9tKFZBTFVFIGts YXNzLCBJRCBpZCkKIHsKLSAgICByZXR1cm4gcmJfY29uc3RfZ2V0XzAoa2xhc3MsIGlkLCBUUlVF LCBUUlVFKTsKKyAgICByZXR1cm4gcmJfY29uc3RfZ2V0XzAoa2xhc3MsIGlkLCBUUlVFLCBUUlVF LCBGQUxTRSk7CiB9CiAKIFZBTFVFCiByYl9jb25zdF9nZXQoVkFMVUUga2xhc3MsIElEIGlkKQog ewotICAgIHJldHVybiByYl9jb25zdF9nZXRfMChrbGFzcywgaWQsIEZBTFNFLCBUUlVFKTsKKyAg ICByZXR1cm4gcmJfY29uc3RfZ2V0XzAoa2xhc3MsIGlkLCBGQUxTRSwgVFJVRSwgRkFMU0UpOwog fQogCiBWQUxVRQogcmJfY29uc3RfZ2V0X2F0KFZBTFVFIGtsYXNzLCBJRCBpZCkKIHsKLSAgICBy ZXR1cm4gcmJfY29uc3RfZ2V0XzAoa2xhc3MsIGlkLCBUUlVFLCBGQUxTRSk7CisgICAgcmV0dXJu IHJiX2NvbnN0X2dldF8wKGtsYXNzLCBpZCwgVFJVRSwgRkFMU0UsIEZBTFNFKTsKIH0KIAogLyoK ZGlmZiAtLWdpdCBhL3ZtX2luc25oZWxwZXIuYyBiL3ZtX2luc25oZWxwZXIuYwppbmRleCA3M2M5 Y2Q4Li44OTQyM2MzIDEwMDY0NAotLS0gYS92bV9pbnNuaGVscGVyLmMKKysrIGIvdm1faW5zbmhl bHBlci5jCkBAIC0xMjAzLDcgKzEyMDMsNyBAQCB2bV9nZXRfZXZfY29uc3QocmJfdGhyZWFkX3Qg KnRoLCBjb25zdCByYl9pc2VxX3QgKmlzZXEsCiAJICAgIHJldHVybiByYl9jb25zdF9kZWZpbmVk KGtsYXNzLCBpZCk7CiAJfQogCWVsc2UgewotCSAgICByZXR1cm4gcmJfY29uc3RfZ2V0KGtsYXNz LCBpZCk7CisJICAgIHJldHVybiByYl9jb25zdF9nZXRfdmlzaShrbGFzcywgaWQpOwogCX0KICAg ICB9CiAgICAgZWxzZSB7CkBAIC0xMjEyLDcgKzEyMTIsNyBAQCB2bV9nZXRfZXZfY29uc3QocmJf dGhyZWFkX3QgKnRoLCBjb25zdCByYl9pc2VxX3QgKmlzZXEsCiAJICAgIHJldHVybiByYl9jb25z dF9kZWZpbmVkX2Zyb20ob3JpZ19rbGFzcywgaWQpOwogCX0KIAllbHNlIHsKLQkgICAgcmV0dXJu IHJiX2NvbnN0X2dldF9mcm9tKG9yaWdfa2xhc3MsIGlkKTsKKwkgICAgcmV0dXJuIHJiX2NvbnN0 X2dldF9mcm9tX3Zpc2kob3JpZ19rbGFzcywgaWQpOwogCX0KICAgICB9CiB9Ci0tIAoxLjcuMi4x Cgo= --0016e655006433f4820493a0d4eb Content-Type: text/x-patch; charset=US-ASCII; name="0002-const_set-should-not-change-constant-visibility.patch" Content-Disposition: attachment; filename="0002-const_set-should-not-change-constant-visibility.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gfss6cbu1 RnJvbSA3MWNkYjJkZWMzNjY2YjM3ZTYyYjc1ZGMzYzMyNTQ0ZWUyZjhkMzY2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBZdXN1a2UgRW5kb2ggPG1hbWVAdHNnLm5lLmpwPgpEYXRlOiBU aHUsIDI4IE9jdCAyMDEwIDA2OjU1OjQxICswOTAwClN1YmplY3Q6IFtQQVRDSCAyLzNdIGNvbnN0 X3NldCBzaG91bGQgbm90IGNoYW5nZSBjb25zdGFudCB2aXNpYmlsaXR5CgotLS0KIHRlc3QvcnVi eS90ZXN0X21vZHVsZS5yYiB8ICAgIDQgKysrKwogdmFyaWFibGUuYyAgICAgICAgICAgICAgIHwg ICAgNyArKysrKy0tCiAyIGZpbGVzIGNoYW5nZWQsIDkgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS90ZXN0L3J1YnkvdGVzdF9tb2R1bGUucmIgYi90ZXN0L3J1Ynkv dGVzdF9tb2R1bGUucmIKaW5kZXggMzMwNmMwZC4uZTNiNDMzZSAxMDA2NDQKLS0tIGEvdGVzdC9y dWJ5L3Rlc3RfbW9kdWxlLnJiCisrKyBiL3Rlc3QvcnVieS90ZXN0X21vZHVsZS5yYgpAQCAtOTQ4 LDYgKzk0OCwxMCBAQCBjbGFzcyBUZXN0TW9kdWxlIDwgVGVzdDo6VW5pdDo6VGVzdENhc2UKICAg ICBhc3NlcnRfcmFpc2UoTmFtZUVycm9yKSB7IGM6OkZPTyB9CiAgICAgYXNzZXJ0X2VxdWFsKCJm b28iLCBjLmNsYXNzX2V2YWwoIkZPTyIpKQogICAgIGFzc2VydF9lcXVhbCgiZm9vIiwgYy5jb25z dF9nZXQoIkZPTyIpKQorICAgICRWRVJCT1NFLCB2ZXJib3NlID0gbmlsLCAkVkVSQk9TRQorICAg IGMuY29uc3Rfc2V0KDpGT08sICJmb28iKQorICAgICRWRVJCT1NFID0gdmVyYm9zZQorICAgIGFz c2VydF9yYWlzZShOYW1lRXJyb3IpIHsgYzo6Rk9PIH0KICAgZW5kCiAKICAgY2xhc3MgUHJpdmF0 ZUNsYXNzCmRpZmYgLS1naXQgYS92YXJpYWJsZS5jIGIvdmFyaWFibGUuYwppbmRleCA0NGIwYzc2 Li5kYTA4Y2JhIDEwMDY0NAotLS0gYS92YXJpYWJsZS5jCisrKyBiL3ZhcmlhYmxlLmMKQEAgLTE4 NTQsNiArMTg1NCw3IEBAIHZvaWQKIHJiX2NvbnN0X3NldChWQUxVRSBrbGFzcywgSUQgaWQsIFZB TFVFIHZhbCkKIHsKICAgICByYl9jb25zdF9lbnRyeV90ICpjZTsKKyAgICBWQUxVRSB2aXNpID0g Q09OU1RfUFVCTElDOwogCiAgICAgaWYgKE5JTF9QKGtsYXNzKSkgewogCXJiX3JhaXNlKHJiX2VU eXBlRXJyb3IsICJubyBjbGFzcy9tb2R1bGUgdG8gZGVmaW5lIGNvbnN0YW50ICVzIiwKQEAgLTE4 NzAsMTUgKzE4NzEsMTcgQEAgcmJfY29uc3Rfc2V0KFZBTFVFIGtsYXNzLCBJRCBpZCwgVkFMVUUg dmFsKQogCWlmIChzdF9sb29rdXAoUkNMQVNTX0NPTlNUX1RCTChrbGFzcyksIChzdF9kYXRhX3Qp aWQsICZ2YWx1ZSkpIHsKIAkgICAgaWYgKCgocmJfY29uc3RfZW50cnlfdCopdmFsdWUpLT52YWx1 ZSA9PSBRdW5kZWYpCiAJCWF1dG9sb2FkX2RlbGV0ZShrbGFzcywgaWQpOwotCSAgICBlbHNlCisJ ICAgIGVsc2UgeworCQl2aXNpID0gKChyYl9jb25zdF9lbnRyeV90ICopdmFsdWUpLT5mbGFnOwog CQlyYl93YXJuKCJhbHJlYWR5IGluaXRpYWxpemVkIGNvbnN0YW50ICVzIiwgcmJfaWQybmFtZShp ZCkpOworCSAgICB9CiAJfQogICAgIH0KIAogICAgIHJiX3ZtX2NoYW5nZV9zdGF0ZSgpOwogCiAg ICAgY2UgPSBBTExPQyhyYl9jb25zdF9lbnRyeV90KTsKLSAgICBjZS0+ZmxhZyA9IENPTlNUX1BV QkxJQzsKKyAgICBjZS0+ZmxhZyA9IHZpc2k7CiAgICAgY2UtPnZhbHVlID0gdmFsOwogCiAgICAg c3RfaW5zZXJ0KFJDTEFTU19DT05TVF9UQkwoa2xhc3MpLCAoc3RfZGF0YV90KWlkLCAoc3RfZGF0 YV90KWNlKTsKLS0gCjEuNy4yLjEKCg== --0016e655006433f4820493a0d4eb Content-Type: text/x-patch; charset=US-ASCII; name="0003-Module-constant-should-exclude-private-constants.patch" Content-Disposition: attachment; filename="0003-Module-constant-should-exclude-private-constants.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gfss6gth2 RnJvbSA3NDUyNjg5ZTU3MTY0NzA0MzQ2YjQxZTdiMDE2MjgxYjhjYWZmZTVlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBZdXN1a2UgRW5kb2ggPG1hbWVAdHNnLm5lLmpwPgpEYXRlOiBU aHUsIDI4IE9jdCAyMDEwIDA2OjU2OjA3ICswOTAwClN1YmplY3Q6IFtQQVRDSCAzLzNdIE1vZHVs ZSNjb25zdGFudCBzaG91bGQgZXhjbHVkZSBwcml2YXRlIGNvbnN0YW50cwoKLS0tCiB2YXJpYWJs ZS5jIHwgICAgOCArKysrKy0tLQogMSBmaWxlcyBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDMg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvdmFyaWFibGUuYyBiL3ZhcmlhYmxlLmMKaW5kZXgg ZGEwOGNiYS4uNDhjOWQyNSAxMDA2NDQKLS0tIGEvdmFyaWFibGUuYworKysgYi92YXJpYWJsZS5j CkBAIC0xNzA5LDcgKzE3MDksNyBAQCBzdl9pKElEIGtleSwgcmJfY29uc3RfZW50cnlfdCAqY2Us IHN0X3RhYmxlICp0YmwpCiB7CiAgICAgaWYgKHJiX2lzX2NvbnN0X2lkKGtleSkpIHsKIAlpZiAo IXN0X2xvb2t1cCh0YmwsIChzdF9kYXRhX3Qpa2V5LCAwKSkgewotCSAgICBzdF9pbnNlcnQodGJs LCAoc3RfZGF0YV90KWtleSwgKHN0X2RhdGFfdClrZXkpOworCSAgICBzdF9pbnNlcnQodGJsLCAo c3RfZGF0YV90KWtleSwgKHN0X2RhdGFfdCljZSk7CiAJfQogICAgIH0KICAgICByZXR1cm4gU1Rf Q09OVElOVUU7CkBAIC0xNzQyLDkgKzE3NDIsMTEgQEAgcmJfbW9kX2NvbnN0X29mKFZBTFVFIG1v ZCwgdm9pZCAqZGF0YSkKIH0KIAogc3RhdGljIGludAotbGlzdF9pKElEIGtleSwgSUQgdmFsdWUs IFZBTFVFIGFyeSkKK2xpc3RfaShzdF9kYXRhX3Qga2V5LCBzdF9kYXRhX3QgdmFsdWUsIFZBTFVF IGFyeSkKIHsKLSAgICByYl9hcnlfcHVzaChhcnksIElEMlNZTShrZXkpKTsKKyAgICBJRCBzeW0g PSAoSUQpa2V5OworICAgIHJiX2NvbnN0X2VudHJ5X3QgKmNlID0gKHJiX2NvbnN0X2VudHJ5X3Qg Kil2YWx1ZTsKKyAgICBpZiAoY2UtPmZsYWcgIT0gQ09OU1RfUFJJVkFURSkgcmJfYXJ5X3B1c2go YXJ5LCBJRDJTWU0oc3ltKSk7CiAgICAgcmV0dXJuIFNUX0NPTlRJTlVFOwogfQogCi0tIAoxLjcu Mi4xCgo= --0016e655006433f4820493a0d4eb--