[ruby-core:121552] [Ruby Bug#21201] Performance regression when defining methods inside `refine` blocks
From:
"alpaca-tc (Hiroyuki Ishii) via ruby-core" <ruby-core@...>
Date:
2025-04-07 14:16:51 UTC
List:
ruby-core #121552
SXNzdWUgIzIxMjAxIGhhcyBiZWVuIHVwZGF0ZWQgYnkgYWxwYWNhLXRjIChIaXJveXVraSBJc2hp aSkuDQoNCg0KYnlyb290IChKZWFuIEJvdXNzaWVyKSB3cm90ZSBpbiAjbm90ZS0xOg0KPiBUaGUg c29sdXRpb24gaXMgbGlrZWx5IHRvIGtlZXAgdGhlIGxpc3QgKHNldCkgb2YgYWxsIGV4aXN0aW5n IGNhbGwgY2FjaGVzIHRoYXQgYmVsb25nIHRvIGEgcmVmaW5lbWVudCwgYXMgdG8gc2F2ZSB0aGUg b2JqZWN0IHNwYWNlIHRyYXZlcnNhbC4NCg0KSSBjcmVhdGVkIGEgcHVsbCByZXF1ZXN0IGJhc2Vk IG9uIHRoaXMgYXBwcm9hY2guIGh0dHBzOi8vZ2l0aHViLmNvbS9ydWJ5L3J1YnkvcHVsbC8xMzA3 Nw0KSW5kZWVkLCB0aGUgcGVyZm9ybWFuY2UgaW1wcm92ZW1lbnQgaXMgcmVtYXJrYWJsZSDigJQg cmVsb2FkaW5nIG91ciBSYWlscyBsb2NhbGx5IG5vdyBjb21wbGV0ZXMgaW4gdW5kZXIgMyBzZWNv bmRzLg0KTWFueSB0aGFua3MgdG8gZXZlcnlvbmUgaW4gdGhpcyB0aHJlYWQgZm9yIHlvdXIgaGVs cGZ1bCBpbnNpZ2h0cyBhbmQgc3VnZ2VzdGlvbnMuDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0NCkJ1ZyAjMjEyMDE6IFBlcmZvcm1hbmNlIHJlZ3Jlc3Npb24gd2hl biBkZWZpbmluZyBtZXRob2RzIGluc2lkZSBgcmVmaW5lYCBibG9ja3MNCmh0dHBzOi8vYnVncy5y dWJ5LWxhbmcub3JnL2lzc3Vlcy8yMTIwMSNjaGFuZ2UtMTEyNTc5DQoNCiogQXV0aG9yOiBhbHBh Y2EtdGMgKEhpcm95dWtpIElzaGlpKQ0KKiBTdGF0dXM6IE9wZW4NCiogcnVieSAtdjogMy4zLjcs IDMuNC4yLCAzLjUuMA0KKiBCYWNrcG9ydDogMy4xOiBVTktOT1dOLCAzLjI6IFVOS05PV04sIDMu MzogVU5LTk9XTiwgMy40OiBVTktOT1dODQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tDQpBZnRlciB0aGUgY2hhbmdlIGludHJvZHVjZWQgaW4gW1BSICMxMDAzN10oaHR0 cHM6Ly9naXRodWIuY29tL3J1YnkvcnVieS9wdWxsLzEwMDM3KSwgYSBzaWduaWZpY2FudCBwZXJm b3JtYW5jZSByZWdyZXNzaW9uIGhhcyBiZWVuIG9ic2VydmVkIHdoZW4gZGVmaW5pbmcgbWV0aG9k cyB3aXRoaW4gcmVmaW5lIGJsb2Nrcy4NCg0KVGhlIFBSIGNvcnJlY3RseSBmaXhlcyBhIGJ1ZyB3 aGVyZSBgY2FsbGNhY2hlYCBpbnZhbGlkYXRpb24gd2FzIG1pc3Npbmcgd2hlbiBtZXRob2RzIGFy ZSBkZWZpbmVkIGluc2lkZSBhIHJlZmluZW1lbnQuIFRvIGZpeCB0aGlzLCBpdCBub3cgaW52b2tl cyBbYHJiX2NsZWFyX2FsbF9yZWZpbmVtZW50X21ldGhvZF9jYWNoZSgpYF0oaHR0cHM6Ly9naXRo dWIuY29tL3J1YnkvcnVieS9ibG9iLzc1MmExZDc4NTQ3NWQxOTUwYjMzYzdkNzdiMjg5YTZhM2E3 NTNmMDIvdm1fbWV0aG9kLmMjTDQzOS1MNDQzKSBhdCB0aGUgdGltZSBvZiBtZXRob2QgZGVmaW5p dGlvbiB3aXRoaW4gYHJlZmluZWAuIEhvd2V2ZXIsIHRoaXMgZnVuY3Rpb24gcGVyZm9ybXMgYSBm dWxsIG9iamVjdCBzcGFjZSB0cmF2ZXJzYWwgdmlhIGByYl9vYmpzcGFjZV9lYWNoX29iamVjdHNg LCBtYWtpbmcgaXQgZXh0cmVtZWx5IGV4cGVuc2l2ZS4NCg0KSW4gb3VyIHRlYW0ncyBSYWlscyBh cHBsaWNhdGlvbiwgcmVmaW5lbWVudHMgYXJlIHVzZWQgaGVhdmlseS4gRHVyaW5nIGFwcGxpY2F0 aW9uIGNvZGUgcmVsb2FkICh0cmlnZ2VyZWQgaW4gZGV2ZWxvcG1lbnQgbW9kZSksIGByYl9jbGVh cl9hbGxfcmVmaW5lbWVudF9tZXRob2RfY2FjaGUoKWAgaXMgY2FsbGVkIDE0MjUgdGltZXMsIDEx NDIgb2Ygd2hpY2ggb3JpZ2luYXRlIHZpYSBgcmJfY2xlYXJfbWV0aG9kX2NhY2hlKClgLiBBcyBh IHJlc3VsdCwgdGhlIGNvZGUgcmVsb2FkIHRpbWUgaGFzIGluY3JlYXNlZCBmcm9tICoqNSBzZWNv bmRzKiogdG8gKioxNSBzZWNvbmRzKiogYWZ0ZXIgdGhlIHBhdGNoLiBTaW5jZSByZWxvYWRpbmcg b2NjdXJzIGV2ZXJ5IHRpbWUgdGhlIGNvZGUgY2hhbmdlcywgdGhpcyBkZWdyYWRlcyBkZXZlbG9w bWVudCBleHBlcmllbmNlIHNldmVyZWx5Lg0KDQojIyMgUmVwcm9kdWN0aW9uIHNjcmlwdDoNCmBg YHJ1YnkNCnJlcXVpcmUgImJ1bmRsZXIvaW5saW5lIg0KDQpnZW1maWxlKHRydWUpIGRvDQogIHNv dXJjZSAiaHR0cHM6Ly9ydWJ5Z2Vtcy5vcmciDQoNCiAgZ2VtICJiZW5jaG1hcmstaXBzIg0KZW5k DQoNCm1vZCA9IE1vZHVsZS5uZXcNCmtsYXNzID0gQ2xhc3MubmV3DQoNCkJlbmNobWFyay5pcHMg ZG8gfHh8DQogIHgucmVwb3J0KFJVQllfVkVSU0lPTikgZG8NCiAgICBtb2Quc2VuZCg6cmVmaW5l LCBrbGFzcykgZG8NCiAgICAgIGRlZiBjYWxsXzEgPSBuaWwNCiAgICAgIGRlZiBjYWxsXzIgPSBu aWwNCiAgICAgIGRlZiBjYWxsXzMgPSBuaWwNCiAgICBlbmQNCiAgZW5kDQoNCiAgeC5zYXZlISAi L3RtcC9wZXJmb3JtYW5jZV9yZWdyZXNzaW9uX3JlZmluZS5iZW5jaCINCiAgeC5jb21wYXJlIQ0K ZW5kDQpgYGANCg0KIyMjIEJlbmNobWFyayByZXN1bHRzOg0KYGBgDQpDb21wYXJpc29uOg0KICAg ICAgICAgICAgICAgMy4yLjc6ICAxNTAwMzE2LjcgaS9zDQogICAgICAgICAgICAgICAzLjMuNzog ICAgICAxNTguMCBpL3MgLSA5NDk2LjQ2eCAgc2xvd2VyDQogICAgICAgICAgICAgICAzLjUuMDog ICAgICAxMjQuNiBpL3MgLSAxMjA0MS40M3ggIHNsb3dlcg0KICAgICAgICAgICAgICAgMy40LjI6 ICAgICAgMTE5LjUgaS9zIC0gMTI1NTMuNTB4ICBzbG93ZXINCmBgYA0KDQpSZWxhdGVkIFNsYWNr IGRpc2N1c3Npb246IGh0dHBzOi8vcnVieS1qcC5zbGFjay5jb20vYXJjaGl2ZXMvQ0xXU0hBNzZW L3AxNzQxOTMyMDE4ODExNTM5ICANCkkgdG90YWxseSB1bmRlcnN0YW5kIHRoZSBuZWNlc3NpdHkg YW5kIHZhbHVlIG9mIHRoZSBwYXN0IFBSIHRoYXQgZml4ZWQgdGhlIGNhbGxjYWNoZSBidWdzLiBU aGF0IHNhaWQsIEkgd2FzIHdvbmRlcmluZyBpZiB0aGVyZSBtaWdodCBiZSBhbnkgaWRlYXMgdG8g bWFrZSBpdCBmYXN0ZXIsIG9yIHRvIGhhbmRsZSB0aGUgaW52YWxpZGF0aW9uIG1vcmUgZWZmaWNp ZW50bHkuDQoNCg0KDQotLSANCmh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnLw0KIF9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KIHJ1YnktY29yZSBtYWlsaW5n IGxpc3QgLS0gcnVieS1jb3JlQG1sLnJ1YnktbGFuZy5vcmcKIFRvIHVuc3Vic2NyaWJlIHNlbmQg YW4gZW1haWwgdG8gcnVieS1jb3JlLWxlYXZlQG1sLnJ1YnktbGFuZy5vcmcKIHJ1YnktY29yZSBp bmZvIC0tIGh0dHBzOi8vbWwucnVieS1sYW5nLm9yZy9tYWlsbWFuMy9saXN0cy9ydWJ5LWNvcmUu bWwucnVieS1sYW5nLm9yZy8=