[ruby-core:118750] [Ruby master Bug#20659] Speed regression of `parse.y` parser after numeric nodes were introduced
From:
"alanwu (Alan Wu) via ruby-core" <ruby-core@...>
Date:
2024-07-30 16:29:56 UTC
List:
ruby-core #118750
SXNzdWUgIzIwNjU5IGhhcyBiZWVuIHJlcG9ydGVkIGJ5IGFsYW53dSAoQWxhbiBXdSkuDQoNCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCkJ1ZyAjMjA2NTk6IFNwZWVk IHJlZ3Jlc3Npb24gb2YgYHBhcnNlLnlgIHBhcnNlciBhZnRlciBudW1lcmljIG5vZGVzIHdlcmUg aW50cm9kdWNlZA0KaHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvaXNzdWVzLzIwNjU5DQoNCiog QXV0aG9yOiBhbGFud3UgKEFsYW4gV3UpDQoqIFN0YXR1czogT3Blbg0KKiBydWJ5IC12OiBydWJ5 IDMuNC4wZGV2ICgyMDI0LTA3LTMwVDE0OjAxOjQzWiBtYXN0ZXIgMTE2NGI2YTdiYSkgW3g4Nl82 NC1saW51eF0NCiogQmFja3BvcnQ6IDMuMTogVU5LTk9XTiwgMy4yOiBVTktOT1dOLCAzLjM6IFVO S05PV04NCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NClRoZSBbYG1h aWxgIGJlbmNobWFyayBmcm9tIHlqaXQtYmVuY2hdWzFdIGlzIGFib3V0IDIwJSBzbG93ZXIgb24g YG1hc3RlcmAgY29tcGFyZWQgdG8gY29tbWl0Ojk4ZWVhZGM5ICgiRGV2ZWxvcG1lbnQgb2YgMy40 LjAgc3RhcnRlZC4iKSBhcyB0aGUgYmFzZWxpbmUsIGNvbXBhcmluZyBydW5uaW5nIHRpbWUgb2Yg dGhlIFJ1YnkgcHJvY2VzcyBydW5uaW5nIHRoZSBiZW5jaG1hcmsgZm9yIGEgc2luZ2xlIGl0ZXJh dGlvbi4gTXVjaCBvZiB0aGlzIHdvcmtsb2FkIGlzIFJ1YnkgcGFyc2luZy4NCg0KYGBgDQokIGh5 cGVyZmluZSAtTCBydWJ5ICczLjMtZXF1aXYvYmluL3J1YnksYmVmb3JlLW51bWVyaWMtbm9kZXMv YmluL3J1YnksbWFzdGVyL2Jpbi9ydWJ5JyAnfi8ucnViaWVzL3tydWJ5fSAtSWhhcm5lc3Mtb25j ZSBiZW5jaG1hcmtzL21haWwvYmVuY2htYXJrLnJiJw0KQmVuY2htYXJrIDE6IH4vLnJ1Ymllcy8z LjMtZXF1aXYvYmluL3J1YnkgLUloYXJuZXNzLW9uY2UgYmVuY2htYXJrcy9tYWlsL2JlbmNobWFy ay5yYg0KICBUaW1lIChtZWFuIMKxIM+DKTogICAgIDg4OS4wIG1zIMKxICAgMi4wIG1zICAgIFtV c2VyOiA3NzYuOSBtcywgU3lzdGVtOiAxMTEuNyBtc10NCiAgUmFuZ2UgKG1pbiDigKYgbWF4KTog ICA4ODUuNyBtcyDigKYgODkyLjEgbXMgICAgMTAgcnVucw0KIA0KQmVuY2htYXJrIDI6IH4vLnJ1 Ymllcy9iZWZvcmUtbnVtZXJpYy1ub2Rlcy9iaW4vcnVieSAtSWhhcm5lc3Mtb25jZSBiZW5jaG1h cmtzL21haWwvYmVuY2htYXJrLnJiDQogIFRpbWUgKG1lYW4gwrEgz4MpOiAgICAgODkxLjcgbXMg wrEgICAxLjYgbXMgICAgW1VzZXI6IDc5NC41IG1zLCBTeXN0ZW06IDk2LjkgbXNdDQogIFJhbmdl IChtaW4g4oCmIG1heCk6ICAgODg5LjAgbXMg4oCmIDg5NC43IG1zICAgIDEwIHJ1bnMNCiANCkJl bmNobWFyayAzOiB+Ly5ydWJpZXMvbWFzdGVyL2Jpbi9ydWJ5IC1JaGFybmVzcy1vbmNlIGJlbmNo bWFya3MvbWFpbC9iZW5jaG1hcmsucmINCiAgVGltZSAobWVhbiDCsSDPgyk6ICAgICAgMS4wODYg cyDCsSAgMC4wMDMgcyAgICBbVXNlcjogMC45NTEgcywgU3lzdGVtOiAwLjEzNCBzXQ0KICBSYW5n ZSAobWluIOKApiBtYXgpOiAgICAxLjA4MCBzIOKApiAgMS4wOTEgcyAgICAxMCBydW5zDQogDQpT dW1tYXJ5DQogICd+Ly5ydWJpZXMvMy4zLWVxdWl2L2Jpbi9ydWJ5IC1JaGFybmVzcy1vbmNlIGJl bmNobWFya3MvbWFpbC9iZW5jaG1hcmsucmInIHJhbg0KICAgIDEuMDAgwrEgMC4wMCB0aW1lcyBm YXN0ZXIgdGhhbiAnfi8ucnViaWVzL2JlZm9yZS1udW1lcmljLW5vZGVzL2Jpbi9ydWJ5IC1JaGFy bmVzcy1vbmNlIGJlbmNobWFya3MvbWFpbC9iZW5jaG1hcmsucmInDQogICAgMS4yMiDCsSAwLjAw IHRpbWVzIGZhc3RlciB0aGFuICd+Ly5ydWJpZXMvbWFzdGVyL2Jpbi9ydWJ5IC1JaGFybmVzcy1v bmNlIGJlbmNobWFya3MvbWFpbC9iZW5jaG1hcmsucmInDQoNCiQgZm9yIHRhZyBpbiAzLjMtZXF1 aXYgbWFzdGVyIGJlZm9yZS1udW1lcmljLW5vZGVzOyBkbyBlY2hvICR0YWc6ICQofi8ucnViaWVz LyR0YWcvYmluL3J1YnkgLXYpOyBkb25lDQozLjMtZXF1aXY6IHJ1YnkgMy40LjBkZXYgKDIwMjMt MTItMjVUMDk6MTM6NDBaIG1hc3RlciA5OGVlYWRjOTMyKSBbeDg2XzY0LWxpbnV4XQ0KbWFzdGVy OiBydWJ5IDMuNC4wZGV2ICgyMDI0LTA3LTMwVDE0OjAxOjQzWiBtYXN0ZXIgMTE2NGI2YTdiYSkg W3g4Nl82NC1saW51eF0NCmJlZm9yZS1udW1lcmljLW5vZGVzOiBydWJ5IDMuNC4wZGV2ICgyMDI0 LTAxLTA2VDE4OjI2OjM4WiBtYXN0ZXIgNzZhZmJkYTViNSkgW3g4Nl82NC1saW51eF0NCmBgYA0K DQpVc2luZyBWYWxncmluZCdzIERIQVQgcmV2ZWFscyB0aGF0IGNvbW1pdDoxYjhkMDExMzZjM2Zm NmM2MDMyNWM3NjA5ZDYxZTE5YWM0MmFjZDlmICgiSW50cm9kdWNlIE51bWVyaWMgTm9kZSdzIikg aXNzdWVzIHJvdWdobHkgMyB0aW1lcyBtb3JlIGBtYWxsb2NgIGNhbGxzIGNvbXBhcmVkIHRvIHRo ZSBiYXNlbGluZSwgbW9zdCBvZiB0aGVtIGNvbXBpbmcgZnJvbSBzdHJkdXAoKSBjYWxscyBpbiBz ZXRfbnVtYmVyX2xpdGVyYWwoKS4NCg0KQ29tcGFyaXNvbiB3aXRoIGAtLXBhcnNlcj1wcmlzbWAs IGZvciBpbnRlcmVzdDoNCg0KPGRldGFpbHM+DQoNCmBgYA0KJCBoeXBlcmZpbmUgLUwgcnVieSAn My4zLWVxdWl2L2Jpbi9ydWJ5LGJlZm9yZS1udW1lcmljLW5vZGVzL2Jpbi9ydWJ5LG1hc3Rlci9i aW4vcnVieSxtYXN0ZXIvYmluL3J1YnkgLS1wYXJzZXI9cHJpc20nIFwNCiAgICAgICAnfi8ucnVi aWVzL3tydWJ5fSAtSWhhcm5lc3Mtb25jZSBiZW5jaG1hcmtzL21haWwvYmVuY2htYXJrLnJiJw0K QmVuY2htYXJrIDE6IH4vLnJ1Ymllcy8zLjMtZXF1aXYvYmluL3J1YnkgLUloYXJuZXNzLW9uY2Ug YmVuY2htYXJrcy9tYWlsL2JlbmNobWFyay5yYg0KICBUaW1lIChtZWFuIMKxIM+DKTogICAgIDg4 OS43IG1zIMKxICAgMi42IG1zICAgIFtVc2VyOiA3NzEuNCBtcywgU3lzdGVtOiAxMTguMCBtc10N CiAgUmFuZ2UgKG1pbiDigKYgbWF4KTogICA4ODUuOCBtcyDigKYgODk0LjYgbXMgICAgMTAgcnVu cw0KIA0KQmVuY2htYXJrIDI6IH4vLnJ1Ymllcy9iZWZvcmUtbnVtZXJpYy1ub2Rlcy9iaW4vcnVi eSAtSWhhcm5lc3Mtb25jZSBiZW5jaG1hcmtzL21haWwvYmVuY2htYXJrLnJiDQogIFRpbWUgKG1l YW4gwrEgz4MpOiAgICAgODkwLjQgbXMgwrEgICAxLjYgbXMgICAgW1VzZXI6IDc3Ni44IG1zLCBT eXN0ZW06IDExMy4zIG1zXQ0KICBSYW5nZSAobWluIOKApiBtYXgpOiAgIDg4OC40IG1zIOKApiA4 OTIuOSBtcyAgICAxMCBydW5zDQogDQpCZW5jaG1hcmsgMzogfi8ucnViaWVzL21hc3Rlci9iaW4v cnVieSAtSWhhcm5lc3Mtb25jZSBiZW5jaG1hcmtzL21haWwvYmVuY2htYXJrLnJiDQogIFRpbWUg KG1lYW4gwrEgz4MpOiAgICAgIDEuMDg3IHMgwrEgIDAuMDA0IHMgICAgW1VzZXI6IDAuOTY4IHMs IFN5c3RlbTogMC4xMTkgc10NCiAgUmFuZ2UgKG1pbiDigKYgbWF4KTogICAgMS4wODMgcyDigKYg IDEuMDk3IHMgICAgMTAgcnVucw0KIA0KQmVuY2htYXJrIDQ6IH4vLnJ1Ymllcy9tYXN0ZXIvYmlu L3J1YnkgLS1wYXJzZXI9cHJpc20gLUloYXJuZXNzLW9uY2UgYmVuY2htYXJrcy9tYWlsL2JlbmNo bWFyay5yYg0KICBUaW1lIChtZWFuIMKxIM+DKTogICAgIDgyNi45IG1zIMKxICAgMi4xIG1zICAg IFtVc2VyOiA3MjUuOCBtcywgU3lzdGVtOiAxMDAuNyBtc10NCiAgUmFuZ2UgKG1pbiDigKYgbWF4 KTogICA4MjMuNiBtcyDigKYgODMwLjkgbXMgICAgMTAgcnVucw0KIA0KU3VtbWFyeQ0KICAnfi8u cnViaWVzL21hc3Rlci9iaW4vcnVieSAtLXBhcnNlcj1wcmlzbSAtSWhhcm5lc3Mtb25jZSBiZW5j aG1hcmtzL21haWwvYmVuY2htYXJrLnJiJyByYW4NCiAgICAxLjA4IMKxIDAuMDAgdGltZXMgZmFz dGVyIHRoYW4gJ34vLnJ1Ymllcy8zLjMtZXF1aXYvYmluL3J1YnkgLUloYXJuZXNzLW9uY2UgYmVu Y2htYXJrcy9tYWlsL2JlbmNobWFyay5yYicNCiAgICAxLjA4IMKxIDAuMDAgdGltZXMgZmFzdGVy IHRoYW4gJ34vLnJ1Ymllcy9iZWZvcmUtbnVtZXJpYy1ub2Rlcy9iaW4vcnVieSAtSWhhcm5lc3Mt b25jZSBiZW5jaG1hcmtzL21haWwvYmVuY2htYXJrLnJiJw0KICAgIDEuMzEgwrEgMC4wMSB0aW1l cyBmYXN0ZXIgdGhhbiAnfi8ucnViaWVzL21hc3Rlci9iaW4vcnVieSAtSWhhcm5lc3Mtb25jZSBi ZW5jaG1hcmtzL21haWwvYmVuY2htYXJrLnJiJw0KYGBgDQoNCjwvZGV0YWlscz4NCg0KWzFdOiBo dHRwczovL2dpdGh1Yi5jb20vU2hvcGlmeS95aml0LWJlbmNoL2Jsb2IvYjhmMWJkODkzMWQ0NzU3 YWZkYWU5MzNlZjZmMTFlMDc2N2JhOTBiOC9iZW5jaG1hcmtzL21haWwvYmVuY2htYXJrLnJiDQoN Cg0KDQotLSANCmh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnLw0KIF9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KIHJ1YnktY29yZSBtYWlsaW5nIGxpc3QgLS0g cnVieS1jb3JlQG1sLnJ1YnktbGFuZy5vcmcKIFRvIHVuc3Vic2NyaWJlIHNlbmQgYW4gZW1haWwg dG8gcnVieS1jb3JlLWxlYXZlQG1sLnJ1YnktbGFuZy5vcmcKIHJ1YnktY29yZSBpbmZvIC0tIGh0 dHBzOi8vbWwucnVieS1sYW5nLm9yZy9tYWlsbWFuMy9saXN0cy9ydWJ5LWNvcmUubWwucnVieS1s YW5nLm9yZy8=