[ruby-core:120221] [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-12-12 17:29:05 UTC
List:
ruby-core #120221
SXNzdWUgIzIwNjU5IGhhcyBiZWVuIHVwZGF0ZWQgYnkgYWxhbnd1IChBbGFuIFd1KS4NCg0KU3Rh dHVzIGNoYW5nZWQgZnJvbSBBc3NpZ25lZCB0byBDbG9zZWQNCg0KSSBiZWxpZXZlIHRoaXMgd2Fz IGZpeGVkIGJ5IGNvbW1pdDpjOTNkMDdlZDc0NDhmMzMyMzc5Y2YyMWI0YjdiNjQ5YjA1N2U1Njcx Lg0KDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpCdWcgIzIwNjU5 OiBTcGVlZCByZWdyZXNzaW9uIG9mIGBwYXJzZS55YCBwYXJzZXIgYWZ0ZXIgbnVtZXJpYyBub2Rl cyB3ZXJlIGludHJvZHVjZWQNCmh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnL2lzc3Vlcy8yMDY1 OSNjaGFuZ2UtMTEwOTg1DQoNCiogQXV0aG9yOiBhbGFud3UgKEFsYW4gV3UpDQoqIFN0YXR1czog Q2xvc2VkDQoqIEFzc2lnbmVlOiB5dWkta25rIChLYW5la28gWXVpY2hpcm8pDQoqIHJ1YnkgLXY6 IHJ1YnkgMy40LjBkZXYgKDIwMjQtMDctMzBUMTQ6MDE6NDNaIG1hc3RlciAxMTY0YjZhN2JhKSBb eDg2XzY0LWxpbnV4XQ0KKiBCYWNrcG9ydDogMy4xOiBVTktOT1dOLCAzLjI6IFVOS05PV04sIDMu MzogVU5LTk9XTg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KVGhl IFtgbWFpbGAgYmVuY2htYXJrIGZyb20geWppdC1iZW5jaF1bMV0gaXMgYWJvdXQgMjAlIHNsb3dl ciBvbiBgbWFzdGVyYCBjb21wYXJlZCB0byBjb21taXQ6OThlZWFkYzkgKCJEZXZlbG9wbWVudCBv ZiAzLjQuMCBzdGFydGVkLiIpIGFzIHRoZSBiYXNlbGluZSwgY29tcGFyaW5nIHJ1bm5pbmcgdGlt ZSBvZiB0aGUgUnVieSBwcm9jZXNzIHJ1bm5pbmcgdGhlIGJlbmNobWFyayBmb3IgYSBzaW5nbGUg aXRlcmF0aW9uLiBNdWNoIG9mIHRoaXMgd29ya2xvYWQgaXMgUnVieSBwYXJzaW5nLg0KDQpgYGAN CiQgaHlwZXJmaW5lIC1MIHJ1YnkgJzMuMy1lcXVpdi9iaW4vcnVieSxiZWZvcmUtbnVtZXJpYy1u b2Rlcy9iaW4vcnVieSxtYXN0ZXIvYmluL3J1YnknICd+Ly5ydWJpZXMve3J1Ynl9IC1JaGFybmVz cy1vbmNlIGJlbmNobWFya3MvbWFpbC9iZW5jaG1hcmsucmInDQpCZW5jaG1hcmsgMTogfi8ucnVi aWVzLzMuMy1lcXVpdi9iaW4vcnVieSAtSWhhcm5lc3Mtb25jZSBiZW5jaG1hcmtzL21haWwvYmVu Y2htYXJrLnJiDQogIFRpbWUgKG1lYW4gwrEgz4MpOiAgICAgODg5LjAgbXMgwrEgICAyLjAgbXMg ICAgW1VzZXI6IDc3Ni45IG1zLCBTeXN0ZW06IDExMS43IG1zXQ0KICBSYW5nZSAobWluIOKApiBt YXgpOiAgIDg4NS43IG1zIOKApiA4OTIuMSBtcyAgICAxMCBydW5zDQogDQpCZW5jaG1hcmsgMjog fi8ucnViaWVzL2JlZm9yZS1udW1lcmljLW5vZGVzL2Jpbi9ydWJ5IC1JaGFybmVzcy1vbmNlIGJl bmNobWFya3MvbWFpbC9iZW5jaG1hcmsucmINCiAgVGltZSAobWVhbiDCsSDPgyk6ICAgICA4OTEu NyBtcyDCsSAgIDEuNiBtcyAgICBbVXNlcjogNzk0LjUgbXMsIFN5c3RlbTogOTYuOSBtc10NCiAg UmFuZ2UgKG1pbiDigKYgbWF4KTogICA4ODkuMCBtcyDigKYgODk0LjcgbXMgICAgMTAgcnVucw0K IA0KQmVuY2htYXJrIDM6IH4vLnJ1Ymllcy9tYXN0ZXIvYmluL3J1YnkgLUloYXJuZXNzLW9uY2Ug YmVuY2htYXJrcy9tYWlsL2JlbmNobWFyay5yYg0KICBUaW1lIChtZWFuIMKxIM+DKTogICAgICAx LjA4NiBzIMKxICAwLjAwMyBzICAgIFtVc2VyOiAwLjk1MSBzLCBTeXN0ZW06IDAuMTM0IHNdDQog IFJhbmdlIChtaW4g4oCmIG1heCk6ICAgIDEuMDgwIHMg4oCmICAxLjA5MSBzICAgIDEwIHJ1bnMN CiANClN1bW1hcnkNCiAgJ34vLnJ1Ymllcy8zLjMtZXF1aXYvYmluL3J1YnkgLUloYXJuZXNzLW9u Y2UgYmVuY2htYXJrcy9tYWlsL2JlbmNobWFyay5yYicgcmFuDQogICAgMS4wMCDCsSAwLjAwIHRp bWVzIGZhc3RlciB0aGFuICd+Ly5ydWJpZXMvYmVmb3JlLW51bWVyaWMtbm9kZXMvYmluL3J1Ynkg LUloYXJuZXNzLW9uY2UgYmVuY2htYXJrcy9tYWlsL2JlbmNobWFyay5yYicNCiAgICAxLjIyIMKx IDAuMDAgdGltZXMgZmFzdGVyIHRoYW4gJ34vLnJ1Ymllcy9tYXN0ZXIvYmluL3J1YnkgLUloYXJu ZXNzLW9uY2UgYmVuY2htYXJrcy9tYWlsL2JlbmNobWFyay5yYicNCg0KJCBmb3IgdGFnIGluIDMu My1lcXVpdiBtYXN0ZXIgYmVmb3JlLW51bWVyaWMtbm9kZXM7IGRvIGVjaG8gJHRhZzogJCh+Ly5y dWJpZXMvJHRhZy9iaW4vcnVieSAtdik7IGRvbmUNCjMuMy1lcXVpdjogcnVieSAzLjQuMGRldiAo MjAyMy0xMi0yNVQwOToxMzo0MFogbWFzdGVyIDk4ZWVhZGM5MzIpIFt4ODZfNjQtbGludXhdDQpt YXN0ZXI6IHJ1YnkgMy40LjBkZXYgKDIwMjQtMDctMzBUMTQ6MDE6NDNaIG1hc3RlciAxMTY0YjZh N2JhKSBbeDg2XzY0LWxpbnV4XQ0KYmVmb3JlLW51bWVyaWMtbm9kZXM6IHJ1YnkgMy40LjBkZXYg KDIwMjQtMDEtMDZUMTg6MjY6MzhaIG1hc3RlciA3NmFmYmRhNWI1KSBbeDg2XzY0LWxpbnV4XQ0K YGBgDQoNClVzaW5nIFZhbGdyaW5kJ3MgREhBVCByZXZlYWxzIHRoYXQgY29tbWl0OjFiOGQwMTEz NmMzZmY2YzYwMzI1Yzc2MDlkNjFlMTlhYzQyYWNkOWYgKCJJbnRyb2R1Y2UgTnVtZXJpYyBOb2Rl J3MiKSBpc3N1ZXMgcm91Z2hseSAzIHRpbWVzIG1vcmUgbWFsbG9jKDMpIGNhbGxzIGNvbXBhcmVk IHRvIHRoZSBiYXNlbGluZSwgbW9zdCBvZiB0aGVtIGNvbWluZyBmcm9tIHN0cmR1cCgpIGNhbGxz IGluIHNldF9udW1iZXJfbGl0ZXJhbCgpLg0KDQpDb21wYXJpc29uIHdpdGggYC0tcGFyc2VyPXBy aXNtYCwgZm9yIGludGVyZXN0Og0KDQo8ZGV0YWlscz4NCg0KYGBgDQokIGh5cGVyZmluZSAtTCBy dWJ5ICczLjMtZXF1aXYvYmluL3J1YnksYmVmb3JlLW51bWVyaWMtbm9kZXMvYmluL3J1YnksbWFz dGVyL2Jpbi9ydWJ5LG1hc3Rlci9iaW4vcnVieSAtLXBhcnNlcj1wcmlzbScgXA0KICAgICAgICd+ Ly5ydWJpZXMve3J1Ynl9IC1JaGFybmVzcy1vbmNlIGJlbmNobWFya3MvbWFpbC9iZW5jaG1hcmsu cmInDQpCZW5jaG1hcmsgMTogfi8ucnViaWVzLzMuMy1lcXVpdi9iaW4vcnVieSAtSWhhcm5lc3Mt b25jZSBiZW5jaG1hcmtzL21haWwvYmVuY2htYXJrLnJiDQogIFRpbWUgKG1lYW4gwrEgz4MpOiAg ICAgODg5LjcgbXMgwrEgICAyLjYgbXMgICAgW1VzZXI6IDc3MS40IG1zLCBTeXN0ZW06IDExOC4w IG1zXQ0KICBSYW5nZSAobWluIOKApiBtYXgpOiAgIDg4NS44IG1zIOKApiA4OTQuNiBtcyAgICAx MCBydW5zDQogDQpCZW5jaG1hcmsgMjogfi8ucnViaWVzL2JlZm9yZS1udW1lcmljLW5vZGVzL2Jp bi9ydWJ5IC1JaGFybmVzcy1vbmNlIGJlbmNobWFya3MvbWFpbC9iZW5jaG1hcmsucmINCiAgVGlt ZSAobWVhbiDCsSDPgyk6ICAgICA4OTAuNCBtcyDCsSAgIDEuNiBtcyAgICBbVXNlcjogNzc2Ljgg bXMsIFN5c3RlbTogMTEzLjMgbXNdDQogIFJhbmdlIChtaW4g4oCmIG1heCk6ICAgODg4LjQgbXMg 4oCmIDg5Mi45IG1zICAgIDEwIHJ1bnMNCiANCkJlbmNobWFyayAzOiB+Ly5ydWJpZXMvbWFzdGVy L2Jpbi9ydWJ5IC1JaGFybmVzcy1vbmNlIGJlbmNobWFya3MvbWFpbC9iZW5jaG1hcmsucmINCiAg VGltZSAobWVhbiDCsSDPgyk6ICAgICAgMS4wODcgcyDCsSAgMC4wMDQgcyAgICBbVXNlcjogMC45 NjggcywgU3lzdGVtOiAwLjExOSBzXQ0KICBSYW5nZSAobWluIOKApiBtYXgpOiAgICAxLjA4MyBz IOKApiAgMS4wOTcgcyAgICAxMCBydW5zDQogDQpCZW5jaG1hcmsgNDogfi8ucnViaWVzL21hc3Rl ci9iaW4vcnVieSAtLXBhcnNlcj1wcmlzbSAtSWhhcm5lc3Mtb25jZSBiZW5jaG1hcmtzL21haWwv YmVuY2htYXJrLnJiDQogIFRpbWUgKG1lYW4gwrEgz4MpOiAgICAgODI2LjkgbXMgwrEgICAyLjEg bXMgICAgW1VzZXI6IDcyNS44IG1zLCBTeXN0ZW06IDEwMC43IG1zXQ0KICBSYW5nZSAobWluIOKA piBtYXgpOiAgIDgyMy42IG1zIOKApiA4MzAuOSBtcyAgICAxMCBydW5zDQogDQpTdW1tYXJ5DQog ICd+Ly5ydWJpZXMvbWFzdGVyL2Jpbi9ydWJ5IC0tcGFyc2VyPXByaXNtIC1JaGFybmVzcy1vbmNl IGJlbmNobWFya3MvbWFpbC9iZW5jaG1hcmsucmInIHJhbg0KICAgIDEuMDggwrEgMC4wMCB0aW1l cyBmYXN0ZXIgdGhhbiAnfi8ucnViaWVzLzMuMy1lcXVpdi9iaW4vcnVieSAtSWhhcm5lc3Mtb25j ZSBiZW5jaG1hcmtzL21haWwvYmVuY2htYXJrLnJiJw0KICAgIDEuMDggwrEgMC4wMCB0aW1lcyBm YXN0ZXIgdGhhbiAnfi8ucnViaWVzL2JlZm9yZS1udW1lcmljLW5vZGVzL2Jpbi9ydWJ5IC1JaGFy bmVzcy1vbmNlIGJlbmNobWFya3MvbWFpbC9iZW5jaG1hcmsucmInDQogICAgMS4zMSDCsSAwLjAx IHRpbWVzIGZhc3RlciB0aGFuICd+Ly5ydWJpZXMvbWFzdGVyL2Jpbi9ydWJ5IC1JaGFybmVzcy1v bmNlIGJlbmNobWFya3MvbWFpbC9iZW5jaG1hcmsucmInDQpgYGANCg0KPC9kZXRhaWxzPg0KDQpb MV06IGh0dHBzOi8vZ2l0aHViLmNvbS9TaG9waWZ5L3lqaXQtYmVuY2gvYmxvYi9iOGYxYmQ4OTMx ZDQ3NTdhZmRhZTkzM2VmNmYxMWUwNzY3YmE5MGI4L2JlbmNobWFya3MvbWFpbC9iZW5jaG1hcmsu cmINCg0KDQoNCi0tIA0KaHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvDQogX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwogcnVieS1jb3JlIG1haWxpbmcgbGlz dCAtLSBydWJ5LWNvcmVAbWwucnVieS1sYW5nLm9yZwogVG8gdW5zdWJzY3JpYmUgc2VuZCBhbiBl bWFpbCB0byBydWJ5LWNvcmUtbGVhdmVAbWwucnVieS1sYW5nLm9yZwogcnVieS1jb3JlIGluZm8g LS0gaHR0cHM6Ly9tbC5ydWJ5LWxhbmcub3JnL21haWxtYW4zL2xpc3RzL3J1YnktY29yZS5tbC5y dWJ5LWxhbmcub3JnLw==