[ruby-core:121388] [Ruby Feature#15854] Tracing instance variable assignment
From:
"st0012 (Stan Lo) via ruby-core" <ruby-core@...>
Date:
2025-03-17 19:41:43 UTC
List:
ruby-core #121388
SXNzdWUgIzE1ODU0IGhhcyBiZWVuIHVwZGF0ZWQgYnkgc3QwMDEyIChTdGFuIExvKS4NCg0KDQpI b3cgYWJvdXQgdGhpcyBuYW1pbmcgY29udmVudGlvbjoNCg0KLSBgaXZhcl9zZXRgDQotIGBjdmFy X3NldGANCi0gYGd2YXJfc2V0YA0KDQpgaXZhcmAsIGBjdmFyYCwgYW5kIGBndmFyYCBhbGwgbWF0 Y2ggUnVieSdzIFtpbnRlcm5hbCBnbG9zc2FyeV0oaHR0cHM6Ly9kb2NzLnJ1YnktbGFuZy5vcmcv ZW4vbWFzdGVyL2NvbnRyaWJ1dGluZy9nbG9zc2FyeV9tZC5odG1sKSwgYW5kIGlzIHF1aXRlIGNv bW1vbmx5IHVzZWQgaW4gdGhlIGNvbW11bml0eSB0b28gKGJhc2VkIG9uIG15IHBlcnNvbmFsIGV4 cGVyaWVuY2UpLg0KDQpJIHBpY2tlZCBgc2V0YCBiZWNhdXNlOg0KLSBJdCBtYXRjaGVzIHRoZSBg Kl92YXJpYWJsZV9zZXRgIG1ldGhvZCBuYW1lcw0KLSBJdCdzIG9uZSBjaGFyYWN0ZXIgc2hvcnRl ciB0aGFuIGBhc2duYA0KDQpBbmQgZmluYWxseSwgaWYgbm9ib2R5IGVsc2UgaXMgbG9va2luZyBh dCB0aGlzLCBJJ2QgbGlrZSB0byBnaXZlIGl0IGEgdHJ5IPCfmYINCg0KDQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpGZWF0dXJlICMxNTg1NDogVHJhY2luZyBpbnN0 YW5jZSB2YXJpYWJsZSBhc3NpZ25tZW50DQpodHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy9pc3N1 ZXMvMTU4NTQjY2hhbmdlLTExMjM2MQ0KDQoqIEF1dGhvcjogaWdhaWdhIChLdW5pYWtpIElnYXJh c2hpKQ0KKiBTdGF0dXM6IEFzc2lnbmVkDQoqIEFzc2lnbmVlOiBrbzEgKEtvaWNoaSBTYXNhZGEp DQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpJIHN1Z2dlc3QgYSBm ZWF0dXJlICJ0cmFjaW5nIGluc3RhbmNlIHZhcmlhYmxlIGFzc2lnbm1lbnQiLiBJdCdzIHVzZWZ1 bCBmb3IgZGVidWdnaW5nLg0KDQpVc2UgY2FzZToNCg0KSW4gUmFpbHMsIHdlIHVzZSBpbnN0YW5j ZSB2YXJpYWJsZXMgaW4gdmlld3MgYW5kIGNvbnRyb2xsZXJzLiBXaGVuIHdlIGdvdCBhIGJ1ZyBj YXVzZWQgYnkgaW5zdGFuY2UgdmFyaWFibGUgdW5pbnRlbnRpb25hbCB2YWx1ZXMsIGlmIHdlIHRy YWNlZCBpbnN0YW5jZSB2YXJpYWJsZSBhc3NpZ25tZW50IHRpbWluZywgaXQgd291bGQgYmUgZ29v ZCBpbmZvcm1hdGlvbnMuDQoNCkFuZCBpbiBSYWlscyB2aWV3cywgdGhlcmUgYXJlIG5vIHNvdXJj ZSBjb2RlcyBvZiBzZWxmIGNsYXNzLiBUaGF0J3MgYnVpbHQgZHluYW1pY2FsbHkuDQoNCkN1cnJl bnQgYmVoYXZpb3IgKFJ1YnkyLjYpOg0KDQpJbiBSdWJ5IDIuNiwgb25seSBpZiB0aGVyZSBpcyBh IHNvdXJjZSBjb2RlIGZpbGUgdG8gYXNzaWduIGluc3RhbmNlIHZhcmlhYmxlLCB3ZSBjYW4gdHJh Y2UgaW5zdGFuY2UgdmFyaWFibGUgYXNzaWdubWVudCBieSBmb2xsb3dpbmcgY29kZSAoY2hlY2tf aW5zdGFuY2VfdmFyaWFibGVfYXNzaWdubWVudC5yYikuIEJ1dCBpdCdzIGRpZmZpY3VsdCBpZiB0 aGUgYXNzaWdubWVudCBjb2RlcyBhcmUgZGVmaW5lZCBkeW5hbWljYWxseS4gRm9yIGV4YW1wbGUs IGluIFJhaWxzIHZpZXcuDQoNCihBbmQgaW4gYW5vdGhlciBzdG9yeSwgZ2xvYmFsIHZhcmlhYmxl cyBhc3NpZ25tZW50IGFyZSB0cmFjZWQgYnkgS2VybmVsI3RyYWNlX3Zhci4pDQoNCmNoZWNrX2lu c3RhbmNlX3ZhcmlhYmxlX2Fzc2lnbm1lbnQucmINCmBgYHJ1YnkNCmRlZiB0cmFjZV9zdGFydA0K ICBUcmFjZVBvaW50LnRyYWNlKDpsaW5lKSBkbyB8dHB8DQogICAgdGFyZ2V0X2NsYXNzX25hbWUg PSAiRm9vIg0KICAgIHRhcmdldF9pbnN0YW5jZV92YXJpYWJsZV9uYW1lID0gIkBiYXIiDQoNCiAg ICBsaW5lID0gRmlsZS5vcGVuKHRwLnBhdGgsICJyIil7fGZ8IGYucmVhZGxpbmVzW3RwLmxpbmVu byAtIDFdIH0NCiAgICBub2RlID0gUnVieVZNOjpBYnN0cmFjdFN5bnRheFRyZWUucGFyc2UobGlu ZSkuY2hpbGRyZW4ubGFzdA0KDQogICAgIyBjaGVjayBpbnN0YW5jZSB2YXJpYWJsZSBhc3NpZ25t ZW50DQogICAgbmV4dCB1bmxlc3Mgbm9kZS50eXBlID09IDpJQVNHTg0KDQogICAgIyBjaGVjayBj bGFzcyBuYW1lDQogICAgdGFyZ2V0X2NsYXNzID0gS2VybmVsLmNvbnN0X2dldCh0YXJnZXRfY2xh c3NfbmFtZSkNCiAgICBuZXh0IHVubGVzcyB0cC5zZWxmLmlzX2E/KHRhcmdldF9jbGFzcykNCg0K ICAgICMgY2hlY2sgdmFyaWFibGUgbmFtZQ0KICAgIGluc3RhbmNlX3ZhcmlhYmxlX25hbWUgPSBu b2RlLmNoaWxkcmVuLmZpcnN0DQogICAgbmV4dCB1bmxlc3MgaW5zdGFuY2VfdmFyaWFibGVfbmFt ZSA9PSB0YXJnZXRfaW5zdGFuY2VfdmFyaWFibGVfbmFtZS50b19zeW0NCg0KICAgIHB1dHMgIiN7 dGFyZ2V0X2NsYXNzX25hbWV9ICN7dGFyZ2V0X2luc3RhbmNlX3ZhcmlhYmxlX25hbWV9IGlzIGFz c2lnbmVkIGluICN7dHAucGF0aH06I3t0cC5saW5lbm99ICN7dHAuZGVmaW5lZF9jbGFzc30gI3t0 cC5tZXRob2RfaWR9Ig0KICBlbmQNCmVuZA0KDQpjbGFzcyBGb28NCiAgZGVmIGJhcg0KICAgIEBi YXIgPSAidGV4dCINCiAgZW5kDQplbmQNCg0KdHJhY2Vfc3RhcnQNCkZvby5uZXcuYmFyDQojPT4g Rm9vIEBiYXIgaXMgYXNzaWduZWQgaW4gY2hlY2tfaW5zdGFuY2VfdmFyaWFibGVfYXNzaWdubWVu dC5yYjoyNSBGb28gYmFyDQpgYGANCg0KU3VnZ2VzdGluZyBmZWF0dXJlIGV4YW1wbGU6DQoNCkFk ZCBuZXcgYXJndW1lbnRzIGZvciBUcmFjZVBvaW50Lm5ldyBtZXRob2QgbGlrZSA6bGluZSBhbmQg OmNhbGwgdG8gdHJhY2UgaW5zdGFuY2UgdmFyaWFibGVzIGFzc2lnbm1lbnQuDQoNCi0gOmlhc2du IChJQVNHTiBuYW1lIGZyb20gUnVieVZNOjpBYnN0cmFjdFN5bnRheFRyZWU6Ok5vZGUpDQotIDpj YXNnbiAoQ1ZBU0dOIChvciBDQVNHTj8pIG5hbWUgZnJvbSBSdWJ5Vk06OkFic3RyYWN0U3ludGF4 VHJlZTo6Tm9kZS4gSSB0aGluayBjbGFzcyB2YXJpYWJsZXMgdHJhY2luZyBpcyB1c2VmdWwgdG9v LikNCg0KQW5kIGdldCBpbmZvcm1hdGlvbnMNCg0KLSBjbGFzcyBuYW1lIChJdCBtaWdodCBiZSBn ZXQgYnkgdHJhY2VfcG9pbnQuc2VsZikNCi0gdmFyaWFibGUgbmFtZSAoIkBmb28iLCAiQEBmb28i KQ0KDQpBIHNhbXBsZSBjb2RlIHRvIHVzZSB0aGUgZmVhdHVyZToNCg0KdHBfaWFzZ24ucmINCg0K YGBgcnVieQ0KVHJhY2VQb2ludC50cmFjZSg6aWFzZ24pIGRvIHx0cHwNCiAgdGFyZ2V0X2NsYXNz X25hbWUgPSAiRm9vIg0KICB0YXJnZXRfaW5zdGFuY2VfdmFyaWFibGVfbmFtZSA9ICJAYmFyIg0K DQogICMgY2hlY2sgY2xhc3MgbmFtZQ0KICB0YXJnZXRfY2xhc3MgPSBLZXJuZWwuY29uc3RfZ2V0 KHRhcmdldF9jbGFzc19uYW1lKQ0KICBuZXh0IHVubGVzcyB0cC5zZWxmLmlzX2E/KHRhcmdldF9j bGFzcykNCg0KICAjIGNoZWNrIHZhcmlhYmxlIG5hbWUNCiAgbmV4dCB1bmxlc3MgdGFyZ2V0X2lu c3RhbmNlX3ZhcmlhYmxlX25hbWUgPT0gdHAudmFyaWFibGVfbmFtZSANCg0KICBwdXRzICIje3Rh cmdldF9jbGFzc19uYW1lfSAje3RhcmdldF9pbnN0YW5jZV92YXJpYWJsZV9uYW1lfSBpcyBhc3Np Z25lZCBpbiAje3RwLnBhdGh9OiN7dHAubGluZW5vfSAje3RwLm1ldGhvZF9pZH0gI3t0cC5kZWZp bmVkX2NsYXNzfSINCiAgcHV0cyBjYWxsZXIgIyBldmVuIGluIGR5bmFtaWMgY29kZSBjYXNlLCB3 ZSBjYW4gZ2V0IGNhbGxlciBpbmZvcm1hdGlvbnMuDQplbmQNCmBgYA0KDQoNCg0KDQotLSANCmh0 dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnLw0KIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KIHJ1YnktY29yZSBtYWlsaW5nIGxpc3QgLS0gcnVieS1jb3JlQG1s LnJ1YnktbGFuZy5vcmcKIFRvIHVuc3Vic2NyaWJlIHNlbmQgYW4gZW1haWwgdG8gcnVieS1jb3Jl LWxlYXZlQG1sLnJ1YnktbGFuZy5vcmcKIHJ1YnktY29yZSBpbmZvIC0tIGh0dHBzOi8vbWwucnVi eS1sYW5nLm9yZy9tYWlsbWFuMy9saXN0cy9ydWJ5LWNvcmUubWwucnVieS1sYW5nLm9yZy8=