[ruby-core:123563] [Ruby Feature#21650] Performance regression: Rational#floor(ndigits) extremely slow for huge ndigits in Ruby 3.4 (ok in 3.2)
From:
"mame (Yusuke Endoh) via ruby-core" <ruby-core@...>
Date:
2025-10-28 09:29:56 UTC
List:
ruby-core #123563
SXNzdWUgIzIxNjUwIGhhcyBiZWVuIHVwZGF0ZWQgYnkgbWFtZSAoWXVzdWtlIEVuZG9oKS4NCg0K VHJhY2tlciBjaGFuZ2VkIGZyb20gQnVnIHRvIEZlYXR1cmUNClN0YXR1cyBjaGFuZ2VkIGZyb20g T3BlbiB0byBGZWVkYmFjaw0KcnVieSAtdiBkZWxldGVkIChydWJ5IDMuNC43ICgyMDI1LTEwLTA4 IHJldmlzaW9uIDdhNTY4OGUyYTIpICtQUklTTSBbYXJtNjQtZGFyd2luMjRdKQ0KQmFja3BvcnQg ZGVsZXRlZCAoMy4yOiBVTktOT1dOLCAzLjM6IFVOS05PV04sIDMuNDogVU5LTk9XTikNCg0KVGhh bmsgeW91IGZvciB5b3VyIHJlcGx5Lg0KDQpJIGZvdW5kIGEgY2xlYXJlciBjYXNlOg0KDQpgYGBy dWJ5DQpwIFJhdGlvbmFsKDEsIDMpLmZsb29yKDIqKjEpICM9PiAoMzMvMTAwKQ0KcCBSYXRpb25h bCgxLCAzKS5mbG9vcigyKioyKSAjPT4gKDMzMzMvMTAwMDApDQpwIFJhdGlvbmFsKDEsIDMpLmZs b29yKDIqKjMpICM9PiAoMzMzMzMzMzMvMTAwMDAwMDAwKQ0KcCBSYXRpb25hbCgxLCAzKS5mbG9v cigyKio0KSAjPT4gKDMzMzMzMzMzMzMzMzMzMzMvMTAwMDAwMDAwMDAwMDAwMDApDQoNCiMgaW4g UnVieSAzLjMNCnAgUmF0aW9uYWwoMSwgMykuZmxvb3IoMioqMzApICM9PiB3YXJuaW5nOiBpbiBh KipiLCBiIG1heSBiZSB0b28gYmlnDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjPT4g KDEvMykgDQpgYGANCg0KQWxzbywgSSB0aGluayB5b3UgY2FuIGltbWVkaWF0ZWx5IHNlZSB0aGF0 IHRoaXMgb3BlcmF0aW9uIGdlbmVyYWxseSBjYW5ub3QgYmUgTygxKS4NCg0KQW4gaW1wcm92ZW1l bnQgbWlnaHQgYmUgcG9zc2libGUgYnkgY3JlYXRpbmcgYSBzcGVjaWFsaXplZCAiZmFzdCBwYXRo IiBmb3IgY2FzZXMgd2hlcmUgdGhlIGRlbm9taW5hdG9yJ3MgcHJpbWUgZmFjdG9ycyBhcmUgb25s eSAyIGFuZCA1LiBJIHdpbGwgbW92ZSB0aGlzIHRpY2tldCB0byB0aGUgRmVhdHVyZSB0cmFja2Vy LiBIb3dldmVyLCBpZiB0aGVyZSBpcyBubyB1c2UgY2FzZSBmb3IgdGhpcywgd2UgbWF5IG5lZWQg dG8gY29uc2lkZXIgaWYgdGhlIGFkZGVkIGNvbXBsZXhpdHkgaXMgd29ydGggaXQuDQoNCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCkZlYXR1cmUgIzIxNjUwOiBQZXJm b3JtYW5jZSByZWdyZXNzaW9uOiBSYXRpb25hbCNmbG9vcihuZGlnaXRzKSBleHRyZW1lbHkgc2xv dyBmb3IgaHVnZSBuZGlnaXRzIGluIFJ1YnkgMy40IChvayBpbiAzLjIpDQpodHRwczovL2J1Z3Mu cnVieS1sYW5nLm9yZy9pc3N1ZXMvMjE2NTAjY2hhbmdlLTExNDk0Mw0KDQoqIEF1dGhvcjoga29p bGFuZXRyb2MgKE9sZWcgVG9sbWFzaG92KQ0KKiBTdGF0dXM6IEZlZWRiYWNrDQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIyBTdW1tYXJ5DQpgUmF0aW9uYWwjZmxv b3IobmRpZ2l0cylgIHdpdGggYSB2ZXJ5IGxhcmdlIHBvc2l0aXZlIG5kaWdpdHMgdGFrZXMgdGVu cyBvZiBzZWNvbmRzIGluIFJ1YnkgMy40LCB3aGlsZSBpdCByZXR1cm5zIGVzc2VudGlhbGx5IGlu c3RhbnRseSBpbiBSdWJ5IDMuMi4gUmVwcm9kdWNpYmxlIG9uIG1hY09TIGFuZCBMaW51eC4gTG9v a3MgbGlrZSBhIG1pc3NpbmcgZmFzdOKAkXBhdGggZm9yIHJhdGlvbmFscyB3aG9zZSBkZWNpbWFs IGV4cGFuc2lvbiB0ZXJtaW5hdGVzLg0KDQojIyBTdGVwcyB0byByZXByb2R1Y2UNCmBgYHJ1YnkN CnJlcXVpcmUgImJlbmNobWFyayINCg0KcHV0cyBSVUJZX0RFU0NSSVBUSU9ODQp0ID0gQmVuY2ht YXJrLnJlYWx0aW1lIHsgKDIgKiogLTMpLmZsb29yKDIgKiogMzEpIH0NCnB1dHMgImVsYXBzZWQ6 ICN7dC5yb3VuZCgzKX1zIg0KYGBgDQoNCkFsc28gcmVwcm9kdWNlcyB3aXRoIHRoZSBleHBsaWNp dCByYXRpb25hbCBmb3JtOg0KYGBgcnVieQ0KQmVuY2htYXJrLnJlYWx0aW1lIHsgUmF0aW9uYWwo MSwgOCkuZmxvb3IoMiAqKiAzMSkgfQ0KYGBgDQoNCiMjIyBSZXN1bHRzIG9uIG15IG1hY2hpbmUN ClJ1YnkgMy4yLjg6DQpgYGANCnJ1YnkgMy4yLjggKDIwMjUtMDMtMjYgcmV2aXNpb24gMTNmNDk1 ZGMyYykgW2FybTY0LWRhcndpbjI0XQ0Kc2xvd19tYXRoLnJiOjQ6IHdhcm5pbmc6IGluIGEqKmIs IGIgbWF5IGJlIHRvbyBiaWcNCmVsYXBzZWQ6IDAuMHMNCmBgYA0KDQpSdWJ5IDMuNC43Og0KYGBg DQpydWJ5IDMuNC43ICgyMDI1LTEwLTA4IHJldmlzaW9uIDdhNTY4OGUyYTIpICtQUklTTSBbYXJt NjQtZGFyd2luMjRdDQplbGFwc2VkOiAzOS4yMTRzDQpgYGANCiMjIEFjdHVhbCBiZWhhdmlvcg0K T24gUnVieSAzLjQueCB0aGlzIGNhbGwgdGFrZXMgfnRlbnMgb2Ygc2Vjb25kcyAoZS5nLiwgfjQw cyBvbiBteSBtYWNoaW5lKSwgY29uc3VtaW5nIENQVS4gU2FtZSBvbiBtYWNPUyBhbmQgTGludXgu DQoNCiMjIEV4cGVjdGVkIGJlaGF2aW9yDQpUaGUgbWV0aG9kIHNob3VsZCByZXR1cm4gcXVpY2ts eSDRi9GI0YzRiNC00YTQutC00L0g0YTRiw0KDQoNCg0KLS0gDQpodHRwczovL2J1Z3MucnVieS1s YW5nLm9yZy8NCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K IHJ1YnktY29yZSBtYWlsaW5nIGxpc3QgLS0gcnVieS1jb3JlQG1sLnJ1YnktbGFuZy5vcmcKIFRv IHVuc3Vic2NyaWJlIHNlbmQgYW4gZW1haWwgdG8gcnVieS1jb3JlLWxlYXZlQG1sLnJ1YnktbGFu Zy5vcmcKIHJ1YnktY29yZSBpbmZvIC0tIGh0dHBzOi8vbWwucnVieS1sYW5nLm9yZy9tYWlsbWFu My9saXN0cy9ydWJ5LWNvcmUubWwucnVieS1sYW5nLm9yZy8K