[ruby-core:123190] [Ruby Bug#18487] Kernel#binding behaves differently depending on implementation language of items on the stack
From:
"ttilberg (Tim Tilberg) via ruby-core" <ruby-core@...>
Date:
2025-09-08 17:56:14 UTC
List:
ruby-core #123190
SXNzdWUgIzE4NDg3IGhhcyBiZWVuIHVwZGF0ZWQgYnkgdHRpbGJlcmcgKFRpbSBUaWxiZXJnKS4N Cg0KDQpJJ20gdXBncmFkaW5nIGEgcHJvamVjdCBmcm9tIFJ1YnkgMy4wIHRvIFJ1YnkgMy40LCBh bmQgSSB0aGluayBJIGNhbWUgYWNyb3NzIGFuIHVuZXhwZWN0ZWQgYnVnIHJlbGF0ZWQgdG8gdGhp cyByZWxhdGVkIHRvIHVzaW5nIGBiaW5kaW5nYCBmcm9tIGEgYFNpbXBsZURlbGVnYXRvcmAgY2hp bGQuIENhbiBzb21lb25lIGhlbHAgbWUgY29uZmlybSBhbmQgb3JnYW5pemU/DQoNCkV4YW1wbGUg cmVwcm9kdWN0aW9uIHNjcmlwdDoNCg0KYGBgIHJ1YnkNCnJlcXVpcmUgJ2VyYicNCnJlcXVpcmUg J2RlbGVnYXRlJw0KDQpjbGFzcyBSZXBvcnQgPCBTaW1wbGVEZWxlZ2F0b3INCiAgZGVmIHRpdGxl DQogICAgIkdyZWF0IHJlcG9ydCINCiAgZW5kDQoNCiAgZGVmIHRvX3MNCiAgICBFUkIubmV3KCI8 JT0gdGl0bGUgJT4hIikucmVzdWx0KGJpbmRpbmcpDQogIGVuZA0KZW5kDQoNCnB1dHMgUmVwb3J0 Lm5ldyhPYmplY3QubmV3KS50b19zDQpgYGANCg0KYGBgDQrilrYgcnVieSAtLXZlcnNpb24gJiYg cnVieSBleGFtcGxlLnJiDQpydWJ5IDMuMC42cDIxNiAoMjAyMy0wMy0zMCByZXZpc2lvbiAyM2E1 MzI2NzliKSBbYXJtNjQtZGFyd2luMjJdDQpHcmVhdCByZXBvcnQhDQoNCuKWtiBydWJ5IC0tdmVy c2lvbiAmJiBydWJ5IGV4YW1wbGUucmINCnJ1YnkgMy4xLjJwMjAgKDIwMjItMDQtMTIgcmV2aXNp b24gNDQ5MWJiNzQwYSkgW2FybTY0LWRhcndpbjIyXQ0KR3JlYXQgcmVwb3J0IQ0KDQrilrYgcnVi eSAtLXZlcnNpb24gJiYgcnVieSBleGFtcGxlLnJiDQpydWJ5IDMuMi40ICgyMDI0LTA0LTIzIHJl dmlzaW9uIGFmNDcxYzBlMDEpICtZSklUIFthcm02NC1kYXJ3aW4yM10NCi9Vc2Vycy90dGlsYmVy Zy8uYXNkZi9pbnN0YWxscy9ydWJ5LzMuMi40L2xpYi9ydWJ5LzMuMi4wL2RlbGVnYXRlLnJiOjg5 OmluIGBiaW5kaW5nJzogQ2Fubm90IGNyZWF0ZSBCaW5kaW5nIG9iamVjdCBmb3Igbm9uLVJ1Ynkg Y2FsbGVyIChSdW50aW1lRXJyb3IpDQoJZnJvbSAvVXNlcnMvdHRpbGJlcmcvLmFzZGYvaW5zdGFs bHMvcnVieS8zLjIuNC9saWIvcnVieS8zLjIuMC9kZWxlZ2F0ZS5yYjo4OTppbiBgYmluZF9jYWxs Jw0KCWZyb20gL1VzZXJzL3R0aWxiZXJnLy5hc2RmL2luc3RhbGxzL3J1YnkvMy4yLjQvbGliL3J1 YnkvMy4yLjAvZGVsZWdhdGUucmI6ODk6aW4gYG1ldGhvZF9taXNzaW5nJw0KCWZyb20gZXhhbXBs ZS5yYjoxMDppbiBgdG9fcycNCglmcm9tIGV4YW1wbGUucmI6MTQ6aW4gYDxtYWluPicNCmBgYA0K DQpBbmQgaXQgY29udGludWVzIHRoZSBzYW1lIGludG8gZnV0dXJlIHZlcnNpb25zLg0KDQpJIGFy cml2ZWQgaGVyZSBieSB3YXkgb2YgWmV2cm9rJ3MgcnVieSByZWZlcmVuY2VzIG5vdGVzLiBodHRw czovL3J1YnlyZWZlcmVuY2VzLmdpdGh1Yi5pby9ydWJ5Y2hhbmdlcy8zLjIuaHRtbCNrZXJuZWxi aW5kaW5nLXJhaXNlcy1pZi1hY2Nlc3NlZC1ub3QtZnJvbS1ydWJ5IC0tIGl0IHNlZW1lZCBsaWtl IHRoZSBtb3N0IHJlYXNvbmFibGUgc3VzcGVjdC4NCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQ0KQnVnICMxODQ4NzogS2VybmVsI2JpbmRpbmcgYmVoYXZlcyBkaWZm ZXJlbnRseSBkZXBlbmRpbmcgb24gaW1wbGVtZW50YXRpb24gbGFuZ3VhZ2Ugb2YgaXRlbXMgb24g dGhlIHN0YWNrDQpodHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy9pc3N1ZXMvMTg0ODcjY2hhbmdl LTExNDUyMA0KDQoqIEF1dGhvcjogYWxhbnd1IChBbGFuIFd1KQ0KKiBTdGF0dXM6IENsb3NlZA0K KiBydWJ5IC12OiBydWJ5IDMuMS4wcDAgKDIwMjEtMTItMjUgcmV2aXNpb24gZmI0ZGY0NGQxNikN CiogQmFja3BvcnQ6IDIuNjogVU5LTk9XTiwgMi43OiBVTktOT1dOLCAzLjA6IFVOS05PV04sIDMu MTogVU5LTk9XTg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KUmVj ZW50bHkgSSBbZGlzY292ZXJlZF0gdGhhdCBvbmUgY291bGQgdXNlIGBLZXJuZWwjYmluZGluZ2Ag dG8gY2FwdHVyZSB0aGUNCmVudmlyb25tZW50IG9mIGEgZnJhbWUgdGhhdCBpcyBub3QgZGlyZWN0 bHkgYmVsb3cgdGhlIHN0YWNrIGZyYW1lIGZvcg0KYEtlcm5lbCNiaW5kaW5nYC4gSSd2ZSBrbm93 biB0aGF0IEMgZXh0ZW5zaW9ucyBoYXZlIHRoaXMgW3ByaXZpbGVnZV0gZm9yIGENCndoaWxlLCBi dXQgZGlkbid0IHJlYWxpemUgdGhhdCBpdCB3YXMgYWxzbyBwb3NzaWJsZSB1c2luZyBvbmx5IHRo ZSBjb3JlDQpsaWJyYXJ5LiBUaGlzIGlzIGEgcG93ZXJmdWwgcHJpbWl0aXZlIHRoYXQgYWxsb3dz IGZvciBzb21lIGZ1bmt5IHByb2dyYW1zOg0KDQpgYGBydWJ5DQpkZWYgbG9va3VwKGhhc2gsIGtl eSkNCiAgaGFzaFtrZXldDQogIGhhc2gNCmVuZA0KDQpwIGxvb2t1cCgNCiAgSGFzaC5uZXcoJigN CiAgICBLZXJuZWwuaW5zdGFuY2VfbWV0aG9kKDpzZW5kKS5tZXRob2QoOmJpbmRfY2FsbCkudG9f cHJvYyA+Pg0KICAgICAgLT4oYmluZGluZykgeyBiaW5kaW5nLmxvY2FsX3ZhcmlhYmxlX3NldCg6 aGFzaCwgOmFjdGlvbl9hdF9hX2Rpc3RhbmNlISkgfQ0KICAgICkNCiAgKSwNCiAgOmJpbmRpbmcN CikgIyA9PiA6YWN0aW9uX2F0X2FfZGlzdGFuY2UhDQpgYGANCg0KVGhlcmUgbWlnaHQgYmUgd2F5 cyB0byBjb21wb3NlIGNvcmUgbGlicmFyeSBwcm9jcyBzdWNoIHRoYXQgaXQncyBsZXNzIGNvbnRy aXZlZA0KYW5kIG1vcmUgdXNlZnVsLCBidXQgSSBjb3VsZG4ndCBmaWd1cmUgb3V0IGEgd2F5IHRv IGRvIGl0LiBNYXliZSB0aGVyZSBpcyBhDQp3YXkgdG8gbWFrZSBhICJsb2NhbCB2YXJpYWJsZSBz ZXQiIHByb2MgdGhhdCB0YWtlcyBvbmx5IGEgbmFtZS12YWx1ZSBwYWlyIGFuZA0Kbm8gYmxvY2s/ DQoNCiMjIyBXaGF0J3MgdGhlIGJpZyBkZWFsPw0KDQpUaGlzIGJlaGF2aW9yIG1ha2VzIHRoZSBp bXBsZW1lbnRhdGlvbiBsYW5ndWFnZSBvZiBtZXRob2RzIHBhcnQgb2YgdGhlIEFQSQ0Kc3VyZmFj ZSBmb3IgYEtlcm5lbCNiaW5kaW5nYC4gSW4gb3RoZXIgd29yZHMsIG1lcmVseSBjaGFuZ2luZyBh IFJ1YnkgbWV0aG9kIHRvDQpiZSBhIEMgbWV0aG9kIGNhbiBiZSBhIGJyZWFraW5nIGNoYW5nZSBm b3IgdGhlIHB1cnBvc2VzIG9mIGBLZXJuZWwjYmluZGluZ2AsDQpldmVuIGlmIHRoZSBtZXRob2Qg YmVoYXZlcyB0aGUgc2FtZSBpbiBhbGwgb3RoZXIgb2JzZXJ2YWJsZSB3YXlzLiBJIGZlZWwgdGhh dA0Kd2hldGhlciBhIG1ldGhvZCBpcyBuYXRpdmUgb3Igbm90IHNob3VsZCBiZSBhbiBpbXBsZW1l bnRhdGlvbiBkZXRhaWwgYW5kIHNob3VsZA0Kbm90IGltcGFjdCBgS2VybmVsI2JpbmRpbmdgLg0K DQpUaGlzIGlzIGEgcHJvYmxlbSBmb3IgUnVieSBpbXBsZW1lbnRhdGlvbnMgdGhhdCB3YW50IHRv IGltcGxlbWVudCBtYW55IGNvcmUNCm1ldGhvZHMgaW4gUnVieSwgYmVjYXVzZSB0aGV5IHJpc2sg YnJlYWtpbmcgY29tcGF0aWJpbGl0eSB3aXRoIENSdWJ5Lg0KVHJ1ZmZsZVJ1YnkgaGFzIHRoaXMg W3Byb2JsZW1dW3ByaXZpbGVnZV0gYXMgSSBhbGx1ZGVkIHRvIGVhcmxpZXIsIGFuZCBDUnVieQ0K cmlza3MgbWFraW5nIHVuaW50ZW50aW9uYWwgYnJlYWtpbmcgY2hhbmdlcyBhcyBtb3JlIG1ldGhv ZHMgY2hhbmdlIHRvIGJlY29tZQ0KUnVieSBtZXRob2RzIGluIHRoZSBjb3JlIGxpYnJhcnkuDQoN CiMjIyBMZWFraW5nIGxlc3MgZGV0YWlscw0KDQpJIHRoaW5rIGEgc3RyYWlnaHQgZm9yd2FyZCB3 YXkgdG8gZml4IHRoaXMgaXNzdWUgaXMgYnkgbWFraW5nIGl0IHNvIHRoYXQNCmBLZXJuZWwjYmlu ZGluZ2Agb25seSBldmVyIGxvb2tzIGF0IHRoZSBzdGFjayBmcmFtZSBkaXJlY3RseSBiZWxvdyBp dC4gSWYgdGhlDQpmcmFtZSBiZWxvdyBpcyBhIG5vdCBhIFJ1YnkgZnJhbWUsIGl0IGNhbiByZXR1 cm4gYW4gZW1wdHkgYmluZGluZy4gSSBoYXZlbid0DQpkb25lIHRoZSBsZWcgd29yayBvZiBmaWd1 cmluZyBvdXQgaG93IGhhcmQgdGhpcyB3b3VsZCBiZSB0byBpbXBsZW1lbnQgaW4gQ1J1YnksDQp0 aG91Z2guIFRoaXMgbmV3IGJlaGF2aW9yIGFsbG93cyBvYnNlcnZpbmcgdGhlIGlkZW50aXR5IG9m IG5hdGl2ZSBmcmFtZXMsIHdoaWNoDQppcyBuZXcuIA0KDQojIyMgRG9lcyB0aGUgbW9yZSByZXN0 cmljdGl2ZSBiZWhhdmlvciBoZWxwIFlKSVQ/DQoNCk1heWJlLiBJdCdzIGhhcmQgdG8gdGVsbCB3 aXRob3V0IGJ1aWxkaW5nIG91dCBtb3JlIG9wdGltaXphdGlvbnMgdGhhdCBhcmUNCnJlbGF0ZWQg dG8gbG9jYWwgdmFyaWFibGVzLiBZSklUIGN1cnJlbnRseSBkb2Vzbid0IGRvIG11Y2ggaW4gdGhh dCBhcmVhLiBJZiBJDQpoYWQgdG8gZ3Vlc3MgSSB3b3V1bGQgc2F5IHRoZSBtb3JlIHJlc3RyaWN0 aXZlIHNlbWFudGljcyBhdCBsZWFzdCBvcGVuIHVwIHRoZQ0KcG9zc2liaWxpdHkgb2Ygc29tZSBk ZW9wdGltaXphdGlvbiBzdHJhdGVnaWVzIHRoYXQgYXJlIG1vcmUgbWVtb3J5IGVmZmljaWVudC4g DQoNCiMjIyBXaGF0IGRvIHlvdSB0aGluaz8NCg0KVGhpcyBpcyBub3QgYSBodWdlIGlzc3VlLCBi dXQgaXQgbWlnaHQgYmUgbmljZSB0byBzdGFydCB0aGlua2luZyBhYm91dCBmb3IgdGhlDQpuZXh0 IHJlbGVhc2UuIElmIGEgbG90IG9mIHBlb3BsZSBhY3R1YWxseSByZWx5IG9uIHRoZSBjdXJyZW50 IGJlaGF2aW9yIHdlIGNhbg0KcHJvdmlkZSBhIG1pZ3JhdGlvbiBwbGFuLiBTaW5jZSBpdCBtaWdo dCB0YWtlIHllYXJzIHRvIGxhbmQsIEkgd291bGQgbGlrZSB0bw0Kc29saWNpdCBmZWVkYmFjayBu b3cuDQoNCg0KW2Rpc2NvdmVyZWRdOiBodHRwczovL2dpdGh1Yi5jb20vcnVieS9ydWJ5L2NvbW1p dC81NGM5MTA0MmVkNjFhODY5ZDRhNjZmYzA4OWIyMWY1NmQxNjUyNjVmDQpbcHJpdmlsZWdlXTog aHR0cHM6Ly9naXRodWIuY29tL29yYWNsZS90cnVmZmxlcnVieS9pc3N1ZXMvMjE3MQ0KDQoNCg0K DQotLSANCmh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnLw0KX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwogcnVieS1jb3JlIG1haWxpbmcgbGlzdCAtLSBydWJ5 LWNvcmVAbWwucnVieS1sYW5nLm9yZwogVG8gdW5zdWJzY3JpYmUgc2VuZCBhbiBlbWFpbCB0byBy dWJ5LWNvcmUtbGVhdmVAbWwucnVieS1sYW5nLm9yZwogcnVieS1jb3JlIGluZm8gLS0gaHR0cHM6 Ly9tbC5ydWJ5LWxhbmcub3JnL21haWxtYW4zL2xpc3RzL3J1YnktY29yZS5tbC5ydWJ5LWxhbmcu b3JnLwo=