ruby-core

Mailing list archive

[ruby-core:95495] [Ruby master Feature#16264] Real "callable instance method" object.

From: zverok.offline@...
Date: 2019-10-23 08:09:06 UTC
List: ruby-core #95495
SXNzdWUgIzE2MjY0IGhhcyBiZWVuIHVwZGF0ZWQgYnkgenZlcm9rIChWaWN0b3IgU2hlcGVsZXYp
Lg0KDQpEZXNjcmlwdGlvbiB1cGRhdGVkDQoNClVwZGF0ZWQgZGVzY3JpcHRpb24gc2lnbmlmaWNh
bnRseSB0byBjbGFyaWZ5IGludGVudGlvbnMuDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0NCkZlYXR1cmUgIzE2MjY0OiBSZWFsICJjYWxsYWJsZSBpbnN0YW5jZSBt
ZXRob2QiIG9iamVjdC4NCmh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnL2lzc3Vlcy8xNjI2NCNj
aGFuZ2UtODIyNjgNCg0KKiBBdXRob3I6IHp2ZXJvayAoVmljdG9yIFNoZXBlbGV2KQ0KKiBTdGF0
dXM6IEZlZWRiYWNrDQoqIFByaW9yaXR5OiBOb3JtYWwNCiogQXNzaWduZWU6IA0KKiBUYXJnZXQg
dmVyc2lvbjogDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpJdCBp
cyBhIHBhcnQgb2YgdGhpbmtpbmcgYWJvdXQgdGhlICJhcmd1bWVudC1sZXNzIGNhbGwgc3R5bGUi
IEkgYWxyZWFkeSBtYWRlIHNldmVyYWwgcHJvcG9zYWxzIGFib3V0Lg0KDQojIyMgUHJlZmFjZQ0K
DQoqKipBcmd1bWVudC1sZXNzIGNhbGwgc3R5bGUqKiogaXMgd2hhdCBJIG5vdyBjYWxsIHRoaW5n
cyBsaWtlIGBtYXAoJjpmb28pYCBhbmQgYGVhY2goJk5vdGlmaWNhdGlvbnMuOnNlbmQpYCBhcHBy
b2FjaGVzLCBhbmQgSSBiZWxpZXZlICB0aGF0IG5hbWluZyB0aGUgY29uY2VwdCAoZXZlbiBpZiBt
eSBpbml0aWFsIG5hbWUgaXMgY2xhbXN5KSB3aWxsIGhlbHAgdG8gdGhpbmsgYWJvdXQgaXQuIEFm
dGVyIHVzaW5nIGl0IGEgbG90IG9uIGEgbGFyZ2UgcHJvZHVjdGlvbiBjb2RlYmFzZSAobm90IG9u
bHkgc3ltYm9scywgYnV0IG1ldGhvZCByZWZlcmVuY2VzIHRvbywgd2hpY2ggc2VlbSB0byBiZSBs
ZXNzIHdpZGVzcHJlYWQgdGVjaG5pcXVlKSwgSSBoYXZlIGEgc3Ryb25nIG9waW5pb24gdGhhdCBp
dCBub3QganVzdCAiaGVscHMgdG8gc2F2ZSB0aGUga2V5cHJlc3NlcyIgKHdoaWNoIGlzIGxlc3Mg
aW1wb3J0YW50KSwgYnV0IGFsc28gaGVscHMgdG8gY2xlYXJlciBzZXBhcmF0ZSB0aGUgY29uY2Vw
dHMgb24gYSBtaWNyby1sZXZlbCBvZiB0aGUgY29kZS4gRS5nLiBpZiB5b3UgZmVlbCB0aGF0IGBl
YWNoKCZOb3RpZmljYXRpb25zLjpzZW5kKWAgaXMgIm1vcmUgcmlnaHQiIHRoYW4gYHNlbGVjdCB7
IHxlbHwgTm90aWZpY2F0aW9ucy5zZW5kKGVsLCBzb21ldGhpbmcsIHNvbWV0aGluZykgfWAsIGl0
IG1ha2VzIHlvdSB0aGluayBhYm91dCBgTm90aWZpY2F0aW9ucy5zZW5kYCBkZXNpZ24gaW4gYSB3
YXkgdGhhdCBhbGxvd3MgdG8gcGFzcyB0aGVyZSBfZXhhY3RseV8gdGhhdCBjb21iaW5hdGlvbiBv
ZiBhcmd1bWVudHMgc28gaXQgd291bGQgYmUgZWFzaWx5IGNhbGxhYmxlIHRoYXQgd2F5LCBjbGFy
aWZ5aW5nIG1vZHVsZXMgcmVzcG9uc2liaWxpdGllcy4NCg0KPiAoQW5kIEkgYmVsaWV2ZSB0aGF0
ICJuYW1lbGVzcyBibG9jayBwYXJhbWV0ZXJzIiwgd2hpbGUgaGVscGluZyB0byBzaG9ydGVyIHRo
ZSBjb2RlLCBsYWNrIHRoaXMgaW1wb3J0YW50IGNoYXJhY3RlcmlzdGljIG9mIGNsYXJpZmljYXRp
b24uKQ0KDQojIyMgVGhlIHByb2JsZW0NCg0KT25lIG9mIHRoZSBwcm9ibGVtcyBvZiAiYXJndW1l
bnQtbGVzcyBjYWxsaW5nIiBpcyBwYXNzaW5nIGFkZGl0aW9uYWwgYXJndW1lbnRzLCB0aGluZ3Mg
bGlrZSB0aG9zZSBhcmVuJ3QgZWFzeSB0byBzaG9ydGVuOg0KYGBgcnVieQ0KYXJ5MS56aXAoYXJ5
MiwgYXJ5MykubWFwIHsgfGxpbmVzfCBsaW5lcy5qb2luKCJcbiIpIH0NCiMgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeXl5eDQpjb25zdHJ1Y3RfdXJsLnRoZW4o
JkhUVFAuOmdldCkuYm9keS50aGVuIHsgfHRleHR8IEpTT04ucGFyc2UodGV4dCwgc3ltYm9saXpl
X25hbWVzOiB0cnVlKSB9DQojICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXl5eXl5eXl5eXl5eXl5eXl5eXl5eXg0KYGBgDQoN
CihCVFcsIGhlcmUgaXMgW2EgYmxvZyBwb3N0XShodHRwczovL3p2ZXJvay5naXRodWIuaW8vYmxv
Zy8yMDE5LTEwLTE4LWVhY2hfd2l0aF9vYmplY3QuaHRtbCkgd2hlcmUgSSBzaG93IHJlY2VudGx5
IGZvdW5kIHRlY2huaXF1ZSBmb3Igc29sdmluZyB0aGlzLCBwcmV0dHkgbmljZSBhbmQgYWx3YXlz
IGV4aXN0aW5nIGluIFJ1YnksIGlmIHNsaWdodGx5IGVzb3RoZXJpYy4pDQoNClRoZXJlJ3MgYSBs
b3Qgb2YgcHJvcG9zYWxzIGZvciAicGFydGlhbCBhcHBsaWNhdGlvbnMiIHdoaWNoIHdvdWxkIGJl
IG1vcmUgZXhwcmVzc2l2ZSB0aGFuIGAuY3VycnlgIChbZ3VpbHR5XShodHRwczovL2J1Z3MucnVi
eS1sYW5nLm9yZy9pc3N1ZXMvMTYxMTMpIFtteXNlbGZdKGh0dHBzOi8vYnVncy5ydWJ5LWxhbmcu
b3JnL2lzc3Vlcy8xNTMwMSkpLCBidXQgdGhlIHByb2JsZW1hdGljIHBhcnQgaW4gYWxsIG9mIHRo
aXMgcHJvcG9zYWxzIGlzOg0KDQo+ICoqVGhlIG1vc3Qgd2lkZXNwcmVhZCAic2hvcnRlbmluZyIg
aXMgYCY6c3ltYm9sYCwgYW5kIGBTeW1ib2xgIGl0c2VsZiBpcyBOT1QgYSBmdW5jdGlvbmFsIG9i
amVjdCwgYW5kIGl0IGlzIHdyb25nIHRvIGV4dGVuZCBpdCB3aXRoIGZ1bmN0aW9uYWwgYWJpbGl0
aWVzLioqDQoNCk9uZSBvZiBjb25zZXF1ZW5jZXMgb2YgdGhlIGFib3ZlIGlzLCBmb3IgZXhhbXBs
ZSwgdGhhdCB5b3UgY2FuJ3QgdXNlIDIuNidzIHByb2MgY29tYmluYXRpb24gd2l0aCBzeW1ib2xz
LCBsaWtlIGBGaWxlLjpyZWFkID4+IDpzdHJpcCA+PiA6cmV2ZXJzZWAuIFlvdSB3YW50LCBidXQg
eW91IGNhbid0Lg0KDQpIZXJlICh3aGlsZSBkaXNjdXNzaW5nIGFmb3JlbWVudGlvbmVkIGJsb2cg
cG9zdHMpLCBJIHN0dW1ibGVkIHVwb24gYW4gaWRlYSBvZiBob3cgdG8gc29sdmUgdGhpcyBkaWxl
bW1hLg0KDQojIyMgVGhlIHByb3Bvc2FsDQoNCkkgcHJvcG9zZSB0byBoYXZlIGEgc3ludGF4IGZv
ciBjcmVhdGluZyBhIGZ1bmN0aW9uYWwgb2JqZWN0IHRoYXQgd2hlbiBiZWluZyBjYWxsZWQsIHNl
bmRzIHRoZSBzcGVjaWZpZWQgbWV0aG9kIHRvIGl0cyBmaXJzdCBhcmd1bWVudC4gQmFzaWNhbGx5
LCB3aGF0IGBTeW1ib2wjdG9fcHJvY2AgZG9lcywgYnV0IHdpdGhvdXQgImhhY2siIG9mICJ3ZSBh
bGxvdyBvdXIgc3ltYm9scyB0byBiZSBjb252ZXJ0aWJsZSB0byBmdW5jdGlvbmFsIG9iamVjdHMi
LiBQcm9wb3NlZCBzeW50YXg6DQoNCmBgYHJ1YnkNClsxLCAyLCAzXS5tYXAoJi46dG9fcykNCmBg
YA0KDQpKdXN0aWZpY2F0aW9uIG9mIHRoZSBzeW50YXg6DQoNCiogSXQgaXMgbGlrZSBgRm9vLjpt
ZXRob2RgIChwcm9kdWNpbmcgZnVuY3Rpb25hbCBvYmplY3QgdGhhdCBjYWxscyBgbWV0aG9kYCkN
CiogT3JwaGFuIGAuOm1ldGhvZGAgaXNuJ3QgYWxsb3dlZCBjdXJyZW50bHkgKHlvdSBuZWVkIHRv
IHNheSBgc2VsZi46bWV0aG9kYCB0byByZWZlciB0byAiY3VycmVudCBgc2VsZmBzIG1ldGhvZCIp
LCBhbmQgTWF0eidzIGp1c3RpZmljYXRpb24gd2FzICJpdCB3b3VsZCBiZSB0b28gY29uZnVzYWJs
ZSB3aXRoIGA6bWV0aG9kYCwgc21hbGwgdHlwbyB3aWxsIGNoYW5nZSB0aGUgcmVzdWx0IiAtLSB3
aGljaCBpbiBQUk9QT1NFRCBjYXNlIGlzIG5vdCBhcyBiYWQsIGFzIGA6Zm9vYCBhbmQgYC46Zm9v
YCBib3RoIG1lYW5pbmcgdGhlIHNhbWUgdGhpbmc7DQoqIEl0IGxvb2tzIGtpbmRhIG5pY2UsIHNp
bWlsYXIgdG8gKFtwcm9wb3NlZCBhbmQgcmVqZWN0ZWRdKGh0dHBzOi8vYnVncy5ydWJ5LWxhbmcu
b3JnL2lzc3Vlcy8xNjEyMCkpIGBtYXAgeyAudG9fcyB9YCDihpIgd2l0aCBteSBwcm9wb3NhbCwg
aXQgaXMgYG1hcCgmLjp0b19zKWAsIGltcGx5aW5nIHNvbWVob3cgYXBwbHlpbmcgYC50b19zYCB0
byB0aGUgcHJldmlvdXMgdmFsdWVzIGluIHRoZSBjaGFpbi4NCg0KKipUaGUgYmVoYXZpb3I6Kiog
YC46Zm9vYCBwcm9kdWNlcyBvYmplY3Qgb2YgY2xhc3MsIHNheSwgYE1ldGhvZE9mQXJndW1lbnRg
IChjbGFzcyBuYW1lIGlzIHN1YmplY3QgdG8gZGlzY3Vzcykg4oCUIHdoaWNoIG1ha2VzIGRpZmZl
cmVuY2VzIG9mICJQcm9jIGNyZWF0ZWQgZnJvbSBTeW1ib2wiIChleGlzdGluZyBpbnRlcm5hbGx5
LCBidXQgYWxtb3N0IGludmlzaWJsZSkgb2J2aW91cyBhbmQgaGFja2FibGUuDQoNCiMjIyBQb3Rl
bnRpYWwgZ2FpbnMNCg0KKiBOZXcgb2JqZWN0IGNvdWxkIGJlIHVzZWQgaW4gcHJvYyBjb21wb3Np
dGlvbjogYEZpbGUuOnJlYWQgPj4gLjpzdHJpcCA+PiBKU09OLjpwYXJzZSA+PiAuOmNvbXBhY3Rg
DQoqIFdoZW4gYm90aCAibWV0aG9kIiBhbmQgIm1ldGhvZCBvZiBhcmd1bWVudCIgYXJlIHByb3Bl
ciBmdW5jdGlvbmFsIG9iamVjdHMsIGEgbmV3IHBhcnRpYWwgYXBwbGljYXRpb24gc3ludGF4IGNh
biBiZSBkaXNjdXNzZWQsIGNvbW1vbiBmb3IgdGhlbSBib3RoLiBGb3IgZXhhbXBsZSAoYnV0ICoq
bm90IG5lY2Vzc2FyeSB0aGlzIG1ldGhvZCBuYW1lISoqKQ0KDQogIGBgYHJ1YnkNCnBhcmFncmFw
aF9oYXNoZXMubWFwKCYuOm1lcmdlLndpdGgoYXV0aG9yOiBjdXJyZW50X2F1dGhvcikpDQpmaWxl
bmFtZXMubWFwKCZGaWxlLjpyZWFkLndpdGgobW9kZTogJ3JiJykpDQogIGBgYA0KKiAoSSBiZWxp
ZXZlIGF0IHRoaXMgcG9pbnQgd2UnbGwgYmUgYWJsZSB0byBmaW5hbGx5IHN3aXRjaCBmcm9tIGRp
c2N1c3NpbmcgInNob3cgd2UgZXh0ZW5kIFN5bWJvbCB3aXRoIG1vcmUgY2FsbGFibGUtYWxpa2Ug
ZnVuY3Rpb25hbGl0eSIgdG8ganVzdCBtZXRob2QncyBuYW1lIGFuZCBleGFjdCBiZWhhdmlvcikN
CiogSSBhbSBub3QgYW4gZXhwZXJ0LCBidXQgcHJvYmFibHkgc29tZSBvcHRpbWl6YXRpb25zIGNv
dWxkIGJlIGFwcGxpZWQsIHRvbw0KKiBDdXJyZW50bHksIGA6c3ltLnRvX3Byb2NgIGlzIGludGVy
bmFsbHkgZGlmZmVyZW50IGZyb20gb3RoZXIgcHJvYywgYnV0IHRoaXMgY2FuJ3QgYmUgaW50cm9z
cGVjdGVkOg0KDQogIGBgYHJ1YnkNCjpyZWFkLnRvX3Byb2MuaW5zcGVjdCAjID0+ICIjPFByb2M6
MHgwMDAwNTU2MjE2MTkyMTk4KCY6cmVhZCk+Ig0KICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAjIF5eXl5eDQogIGBgYA0KKiAgUHJvYmFibHksIGV4
cG9zdXJlIG9mIHRoaXMgZmFjdCBjb3VsZCBsZWFkIHRvIHNvbWUgbmV3IGludGVyZXN0aW5nIG1l
dGFwcm9ncmFtbWluL29wdGltaXphdGlvbiB0ZWNobmlxdWVzLg0KDQojIyMgVHJhbnNpdGlvbg0K
DQpgOmZvb2AgYW5kIGAuOmZvb2AgY291bGQgd29yayBzaW1pbGFybHkgZm9yIHNvbWUgdXBjb21p
bmcgdmVyc2lvbnMgKG9yIGluZGVmaW5pdGVseSksIHdpdGggYC46Zm9vYCBiZWluZyBtb3JlIHBv
d2VyZnVsIGFsdGVybmF0aXZlLCBhbGxvd2luZyBmZWF0dXJlcyBsaWtlIGBncm91cHNfb2ZfbGlu
ZXMubWFwKCYuOmpvaW4ucGFydGlhbF9hcHBseSgnICcpKWAgb3Igc29tZXRoaW5nLg0KDQpJdCB3
b3VsZCBiZSBsaWtlICJyZWFsIiBhbmQgImltaXRhdGVkIiBrZXl3b3JkIGFyZ3VtZW50cy4gIkxh
c3QgaGFzaCB3aXRob3V0IGJyYWNlcyIgd2FzIGdvb2QgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUg
bGFuZ3VhZ2UgbGlmZWN5Y2xlLCBidXQgdGhlbiBpdCB0dXJuZWQgb3V0IHRoYXQgcmVhbCBvbmVz
IHByb3ZpZGUgYSBsb3Qgb2YgYmVuZWZpdHMuIFNhbWUgdGhpbmcgaGVyZTogYCY6c3ltYm9sYCBp
cyBzdXBlci1uaWNlLCBidXQsIGhvbmVzdGx5LCBpdCBpcyBzZW1hbnRpY2FsbHkgcXVlc3Rpb25h
YmxlLCBzbyBtYXkgYmUgc2xvdyBzd2l0Y2ggdG8gYSAicmVhbCB0aGluZyIgd291bGQgYmUgZ2Fp
bmZ1bCBmb3IgZXZlcnlib2R5Py4uDQoNCg0KDQotLSANCmh0dHBzOi8vYnVncy5ydWJ5LWxhbmcu
b3JnLw0KClVuc3Vic2NyaWJlOiA8bWFpbHRvOnJ1YnktY29yZS1yZXF1ZXN0QHJ1YnktbGFuZy5v
cmc/c3ViamVjdD11bnN1YnNjcmliZT4KPGh0dHA6Ly9saXN0cy5ydWJ5LWxhbmcub3JnL2NnaS1i
aW4vbWFpbG1hbi9vcHRpb25zL3J1YnktY29yZT4K

In This Thread

Prev Next