[ruby-core:117645] [Ruby master Feature#20443] Allow Major GC's to be disabled
From:
"byroot (Jean Boussier) via ruby-core" <ruby-core@...>
Date:
2024-04-22 16:45:04 UTC
List:
ruby-core #117645
SXNzdWUgIzIwNDQzIGhhcyBiZWVuIHVwZGF0ZWQgYnkgYnlyb290IChKZWFuIEJvdXNzaWVyKS4N Cg0KRmlsZSBDYXB0dXJlIGTigJllzIFjcmFuIDIwMjQtMDQtMjIgYcyAIDE4LjQxLjUyLnBuZyBh ZGRlZA0KDQpUbyBhZGQgYSBsaXR0bGUgYml0IG1vcmUgY29udGV4dCBvbiBAZWlnaHRiaXRyYXB0 b3IncyBkZXNjcmlwdGlvbi4gSW4gc29tZSBncmFwaCB5b3Ugc2VlIDMgZ3JvdXBzOg0KDQogIC0g YG9vYmdjLW9mZmA6IHdoaWNoIGlzIHdvcmtlcnMgd2l0aG91dCBhbnkgT3V0IG9mIEJhbmQgR0Mu DQogIC0gYG9vYmdjLW9uYDogd2hpY2ggaXMgd29ya2VycyB3aXRoIG91ciBwcmV2aW91cyBPT0Ig R0MgaW1wbGVtZW50YXRpb24gKG9uY2UgZXZlcnkgMTI4IHRvIDUxMiByZXF1ZXN0cywgMjAlIG1v cmUgZXZlcnkgdGltZSkNCiAgLSBgb29iZ2MtZGlzYWJsZS1tYWpvcmA6IHdoaWNoIGlzIHRoZSBu ZXcgT09CIEdDIGltcGxlbWVudGF0aW9uIHRoYXQgb25seSBydW4gR0Mgd2hlbiBgR0MubmVlZF9t YWpvcj9gIHJldHVybnMgdHJ1ZS4NCg0KVGhlIG5ldyBpbXBsZW1lbnRhdGlvbiBub3Qgb25seSBp bXByb3ZlIGxhdGVuY3kgaW4gbW9zdCBjYXNlLCBpdCBhbHNvIHJlZHVjZSB0aGUgY2FwYWNpdHkg aW1wYWN0IG9mIGhhdmluZyB3b3JrZXJzIHJ1bm5pbmcgbWFqb3IgR0Mgd2hlbiBpdCB3YXNuJ3Qg bmVlZGVkLg0KDQpIZXJlIGlzIHRoZSBncmFwaCBvZiBgR0Muc3RhdFs6bWFqb3JfZ2NfY291bnRd YCBvdmVyIHRoZXNlIDMgZ3JvdXBzLCBhbmQgYXMgeW91IGNhbiBzZWUgYG9vYmdjLWRpc2FibGUt bWFqb3JgIHJ1bnMgbWFqb3IgR0Mgb25seSBhYm91dCBhcyBvZnRlbiBhcyBuby1PT0JHQywgd2hl cmVhcyB0aGUgcHJldmlvdXMgaW1wbGVtZW50YXRpb24gaXMgdHJpZ2dlcmluZyBtb3JlIG9mdGVu IHRoYW4gYWN0dWFsbHkgbmVlZGVkLCB3YXN0aW5nIHNlcnZlciBjYXBhY2l0eS4NCg0KIVtdKENh cHR1cmUlMjBkJUUyJTgwJTk5ZSVDQyU4MWNyYW4lMjAyMDI0LTA0LTIyJTIwYSVDQyU4MCUyMDE4 LjQxLjUyLnBuZykNCg0KDQoNCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQ0KRmVhdHVyZSAjMjA0NDM6IEFsbG93IE1ham9yIEdDJ3MgdG8gYmUgZGlzYWJsZWQNCmh0 dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnL2lzc3Vlcy8yMDQ0MyNjaGFuZ2UtMTA4MDU1DQoNCiog QXV0aG9yOiBlaWdodGJpdHJhcHRvciAoTWF0dGhldyBWYWxlbnRpbmUtSG91c2UpDQoqIFN0YXR1 czogT3Blbg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KW1tHaXRo dWIgUFIgIzEwNTk4XV0oaHR0cHM6Ly9naXRodWIuY29tL3J1YnkvcnVieS9wdWxsLzEwNTk4KQ0K DQojIyBCYWNrZ3JvdW5kDQoNClJ1YnkncyBHQyBydW5uaW5nIGR1cmluZyBSYWlscyByZXF1ZXN0 cyBjYW4gaGF2ZSBuZWdhdGl2ZSBpbXBhY3RzIG9uIGN1cnJlbnRseQ0KcnVubmluZyByZXF1ZXN0 cywgY2F1c2luZyBhcHBsaWNhdGlvbnMgdG8gaGF2ZSBoaWdoIHRhaWwtbGF0ZW5jeS4NCg0KQSB0 ZWNobmlxdWUgdG8gbWl0aWdhdGUgdGhpcyBoaWdoIHRhaWwtbGF0ZW5jeSBpcyBPdXQtb2YtYmFu ZCBHQyAoT09CR0MpLiBUaGlzDQppcyBiYXNpY2FsbHkgd2hlcmUgdGhlIGFwcGxpY2F0aW9uIGlz IHJ1biB3aXRoIEdDIGRpc2FibGVkLCBhbmQgdGhlbiBHQyBpcw0KZXhwbGljaXRseSBzdGFydGVk IGFmdGVyIGVhY2ggcmVxdWVzdCwgb3Igd2hlbiBubyByZXF1ZXN0cyBhcmUgaW4gcHJvZ3Jlc3Mu DQoNClRoaXMgY2FuIHJlZHVjZSB0aGUgdGFpbCBsYXRlbmN5LCBidXQgYWxzbyBpbnRyb2R1Y2Vz IHByb2JsZW1zIG9mIGl0cyBvd24uIExvbmcNCkdDIHBhdXNlcyBhZnRlciBlYWNoIHJlcXVlc3Qg cmVkdWNlIHRocm91Z2hwdXQuIFRoaXMgaXMgbW9yZSBwcm9ub3VuY2VkIG9uDQp0aHJlYWRpbmcg c2VydmVycyBsaWtlIFB1bWEgYmVjYXVzZSBhbGwgdGhlIHRocmVhZHMgaGF2ZSB0byBmaW5pc2gg cHJvY2Vzc2luZw0KdXNlciByZXF1ZXN0cyBhbmQgYmUgInBhdXNlZCIgYmVmb3JlIE9PQkdDIGNh biBiZSB0cmlnZ2VyZWQuDQoNClRoaXMgdGhyb3VnaHB1dCBkZWNyZWFzZSBoYXBwZW5zIGZvciBh IGNvdXBsZSBvZiByZWFzb25zOg0KDQoxLiBUaGVyZSBhcmUgZmV3IGhldXJpc3RpY3MgYXZhaWxh YmxlIGZvciB1c2VycyB0byBkZXRlcm1pbmUgd2hlbiBHQyBzaG91bGQgcnVuLA0KdGhpcyBtZWFu cyB0aGF0IGluIE9PQkdDIHNjZW5hcmlvcywgaXQncyBwb3NzaWJsZSB0aGF0IG1ham9yIEdDJ3Mg YXJlIGJlaW5nIHJ1bg0KbW9yZSB0aGFuIG5lY2Vzc2FyeS4gIDIuIFRoZSBsYWNrIG9mIGFueSBH QyBkdXJpbmcgYSByZXF1ZXN0IG1lYW5zIHRoYXQgbG90cyBvZg0KZ2FyYmFnZSBvYmplY3RzIGhh dmUgYmVlbiBjcmVhdGVkIGFuZCBub3QgY2xlYW5lZCB1cCwgc28gdGhlIHByb2Nlc3MgaXMgdXNp bmcNCm1vcmUgbWVtb3J5IHRoYW4gaXQgc2hvdWxkIC0gcmVxdWlyaW5nIG1ham9yIEdDJ3MgcnVu IGFzIHBhcnQgb2YgT09CR0MgdG8gZG8NCm1vcmUgd29yayBhbmQgdGhlcmVmb3JlIHRha2UgbW9y ZSB0aW1lLg0KDQpUaGlzIHRpY2tldCBhdHRlbXB0cyB0byBhZGRyZXNzIHRoZXNlIGlzc3VlcyBi eToNCg0KMS4gUHJvdmlkZSBgR0MuZGlzYWJsZV9tYWpvcmAgYW5kIGl0cyBhbnRvbnltIGBHQy5l bmFibGVfbWFqb3JgIHRvIGRpc2FibGUgYW5kDQplbmFibGUgb25seSBtYWpvciBHQyAyLiBQcm92 aWRlIGBHQy5uZWVkc19tYWpvcj9gIGFzIGEgYmFzaWMgaGV1cmlzdGljIGFsbG93aW5nDQp1c2Vy cyB0byB0ZWxsIHdoZW4gUnVieSBzaG91bGQgcnVuIGEgTWFqb3IgR0MuDQoNClRoZXNlIGlkZWFz IHdlcmUgb3JpZ2luYWxseSBwcm9wb3NlZCBieSBAa28xIGFuZCBAYnlyb290IGluIFt0aGlzIHJh aWxzDQppc3N1ZV0oaHR0cHM6Ly9naXRodWIuY29tL3JhaWxzL3JhaWxzL2lzc3Vlcy81MDQ0OSkN Cg0KRGlzYWJsaW5nIEdDIG1ham9yJ3Mgd291bGQgc3RpbGwgYWxsb3cgbWlub3IgR0MncyB0byBy dW4gZHVyaW5nIHRoZSByZXF1ZXN0LA0KYXZvaWRpbmcgdGhlIGJhbGxvb25pbmcgbWVtb3J5IHVz YWdlIGNhdXNlZCBieSBub3QgcnVubmluZyBHQyBhdCBhbGwsIGFuZA0KcmVkdWNpbmcgdGhlIHRp bWUgdGhhdCBhIG1ham9yIHRha2VzIHdoZW4gd2UgZG8gcnVuIGl0LCBiZWNhdXNlIHRoZSBudXJz ZXJ5DQpvYmplY3RzIGhhdmUgYmVlbiBjbGVhbmVkIHVwIGR1cmluZyB0aGUgcmVxdWVzdCBhbHJl YWR5IHNvIHRoZXJlIGlzIGxlc3Mgd29yaw0KZm9yIGEgbWFqb3IgR0MgdG8gZG8uDQoNClRoaXMg Y2FuIGJlIHVzZWQgaW4gY29tYmluYXRpb24gd2l0aCBgR0MubmVlZHNfbWFqb3I/YCB0byBzZWxl Y3RpdmVseSBydW4gYW4NCk9PQkdDIG9ubHkgd2hlbiBuZWNlc3NhcnkNCg0KIyMgSW1wbGVtZW50 YXRpb24NCg0KVGhpcyBQUiBhZGRzIDMgbmV3IG1ldGhvZHMgdG8gdGhlIGBHQ2AgbW9kdWxlDQoN Ci0gYEdDLmRpc2FibGVfbWFqb3JgIFRoaXMgcHJldmVudHMgbWFqb3IgR0MncyBmcm9tIHJ1bm5p bmcgYXV0b21hdGljYWxseS4gSXQNCiAgZG9lcyBub3QgcmVzdHJpY3QgbWlub3JzLiBXaGVuIGBv YmpzcGFjZS0+cmdlbmdjLm5lZWRfbWFqb3JfZ2NgIGlzIHNldCBhbmQgYQ0KICBHQyBpcyBydW4s IGluc3RlYWQgb2YgcnVubmluZyBhIG1ham9yLCBuZXcgaGVhcCBwYWdlcyB3aWxsIGJlIGFsbG9j YXRlZCBhbmQgYQ0KICBtaW5vciBydW4gaW5zdGVhZC4gYG9ianNwYWNlLT5yZ2VuZ2MubmVlZF9t YWpvcl9nY2Agd2lsbCByZW1haW4gc2V0IHVudGlsIGENCiAgbWFqb3IgaXMgbWFudWFsbHkgcnVu LiBJZiBhIG1ham9yIGlzIG5vdCBtYW51YWxseSBydW4gdGhlbiB0aGUgcHJvY2VzcyB3aWxsDQog IGV2ZW50dWFsbHkgcnVuIG91dCBvZiBtZW1vcnkuDQogIA0KICBXaGVuIG1ham9yIEdDJ3MgYXJl IGRpc2FibGVkLCBvYmplY3QgcHJvbW90aW9uIGlzIGRpc2FibGVkLiBUaGF0IGlzLCBubw0KICBv YmplY3RzIHdpbGwgaW5jcmVtZW50IHRoZWlyIGFnZXMgZHVyaW5nIGEgbWlub3IgR0MuIFRoaXMg aXMgdG8gYXR0ZW1wdCB0bw0KICBtaW5pbWlzZSBoZWFwIGdyb3d0aCBkdXJpbmcgdGhlIHBlcmlv ZCBiZXR3ZWVuIG1ham9yIEdDJ3MsIGJ5IHJlc3RyaWN0aW5nIHRoZQ0KICBudW1iZXIgb2Ygb2xk LWdlbiBvYmplY3RzIHRoYXQgd2lsbCByZW1haW4gdW5jb25zaWRlcmVkIGJ5IHRoZSBHQyB1bnRp bCB0aGUNCiAgbmV4dCBtYWpvci4NCiAgDQogIFdoZW4gYEdDLnN0YXJ0YCBpcyBydW4sIHRoZW4g bWFqb3IgR0MncyB3aWxsIGJlIGVuYWJsZWQsIGEgR0MgdHJpZ2dlcmVkIHdpdGgNCiAgdGhlIG9w dGlvbnMgcGFzc2VkIHRvIGBHQy5zdGFydGAsIGFuZCB0aGVuIGBkaXNhYmxlX21ham9yYCB3aWxs IGJlIHNldCB0byB0aGUNCiAgc3RhdGUgaXQgd2FzIGluIGJlZm9yZSBgR0Muc3RhcnRgIHdhcyBj YWxsZWQuDQogIA0KLSBgR0MuZW5hYmxlX21ham9yYCBUaGlzIHNpbXBseSB1bnNldHMgdGhlIGJp dCBwcmV2ZW50aW5nIG1ham9yIEdDJ3MuIFRoaXMgd2lsbA0KICByZXZlcnQgdGhlIEdDIHRvIG5v cm1hbCBnZW5lcmF0aW9uYWwgYmVoYXZpb3VyLiBFdmVyeXRoaW5nIGJlaGF2ZXMgYXMgZGVmYXVs dA0KICBhZ2Fpbi4NCg0KLSBgR0MubmVlZHNfbWFqb3I/YCBUaGlzIGV4cG9zZXMgdGhlIHZhbHVl IG9mIGBvYmpzcGFjZS0+cmdlbmdjLm5lZWRfbWFqb3JfZ2NgDQogIHRvIHRoZSB1c2VyIGxldmVs IEFQSS4gVGhpcyBpcyBhbHJlYWR5IGV4cG9zZWQgaW4NCiAgYEdDLmxhdGVzdF9nY19pbmZvWzpu ZWVkX21ham9yX2J5XWAgYnV0IEkgZmVsdCB0aGF0IGEgc2ltcGxlciBpbnRlcmZhY2Ugd291bGQN CiAgbWFrZSB0aGlzIGVhc2llciB0byB1c2UgYW5kIHJlc3VsdCBpbiBtb3JlIHJlYWRhYmxlIGNv ZGUuIGVnLg0KICANCmBgYHJ1Ynkgb3V0X29mX2JhbmQgZG8gR0Muc3RhcnQgaWYgR0MubmVlZHNf bWFqb3I/ICBlbmQgYGBgDQoNCkJlY2F1c2Ugb2JqZWN0IGFnaW5nIGlzIGRpc2FibGVkIHdoZW4g bWFqb3JzIGFyZSBkaXNhYmxlZCBpdCBpcyByZWNvbW1lbmRlZCB0bw0KdXNlIHRoaXMgaW4gY29u anVuY3Rpb24gd2l0aCBgUHJvY2Vzcy53YXJtdXBgLCB3aGljaCB3aWxsIHByZXBhcmUgdGhlIGhl YXAgYnkNCnJ1bm5pbmcgYSBtYWpvciBHQywgY29tcGFjdGluZyB0aGUgaGVhcCwgYW5kIHByb21v dGluZyBldmVyeSByZW1haW5pbmcgb2JqZWN0IHRvDQpvbGQtZ2VuLiBUaGlzIGVuc3VyZXMgdGhh dCBtaW5vciBHQydzIGFyZSBydW5uaW5nIG92ZXIgdGhlIHNtYWxsZXRzIHBvc3NpYmxlIHNldA0K b2YgeW91bmcgb2JqZWN0cyB3aGVuIGBHQy5kaXNhYmxlX21ham9yYCBpcyB0cnVlLg0KDQojIyBC ZW5jaG1hcmtzDQoNCldlIHJhbiBzb21lIHRlc3RzIGluIHByb2R1Y3Rpb24gb24gU2hvcGlmeSdz IGNvcmUgbW9ub2xpdGggb3ZlciBhIHdlZWtlbmQgYW5kDQpmb3VuZCB0aGF0Og0KDQoqKk1lYW4g dGltZSBzcGVudCBpbiBHQywgYXMgd2VsbCBhcyBwOTkuOSBhbmQgcDk5Ljk5IEdDIHRpbWVzIGFy ZSBhbGwNCmltcHJvdmVkLioqIA0KDQo8aW1nIHdpZHRoPSIxMDAwIiBhbHQ9IlNjcmVlbnNob3Qg MjAyNC0wNC0yMiBhdCAxNiA0MSA0OSINCnNyYz0iaHR0cHM6Ly9naXRodWIuY29tL3J1YnkvcnVi eS9hc3NldHMvMzE4NjkvNmNmZjViMTEtMmUyMS00MGMxLWJiODQtZDk5NGUwZTE3OThkIj4NCg0K KipwOTkgR0MgdGltZSBpcyBzbGlnaHRseSBoaWdoZXIuKiogDQoNCjxpbWcgd2lkdGg9IjEwMDAi IGFsdD0iU2NyZWVuc2hvdCAyMDI0LTA0LTIyIGF0IDE2IDQ0IDU1Ig0Kc3JjPSJodHRwczovL2dp dGh1Yi5jb20vcnVieS9ydWJ5L2Fzc2V0cy8zMTg2OS9kYzY0NWNiZS05NDk1LTQ2ZjAtODQ4NS0y NGU3OTBjNDJmMzIiPg0KDQpXZSdyZSBydW5uaW5nIGZhciBmZXdlciBPT0JHQyBtYWpvciBHQydz IG5vdyB0aGF0IHdlIGhhdmUgYEdDLm5lZWRzX21ham9yP2AgdGhhbg0Kd2Ugd2VyZSBiZWZvcmUs IGFuZCB3ZSBiZWxpZXZlIHRoYXQgdGhpcyBpcyBjb250cmlidXRpbmcgdG8gYSBzbGlnaHRseSBp bmNyZWFzZWQNCm51bWJlciBvZiBtaW5vciBHQydzLiByYWlzaW5nIHRoZSBwOTkgc2xpZ2h0bHku DQoNCioqQXBwIHJlc3BvbnNlIHRpbWVzIGFyZSBhbGwgaW1wcm92ZWQqKg0KDQpXZSBzZWUgYSA5 JSByZWR1Y3Rpb24gaW4gYXZlcmFnZSBhbmQgcDk5IHJlc3BvbnNlIHRpbWVzIHdoZW4gY29tcGFy ZWQgYWdhaW5zdA0Kc3RhbmRhcmQgR0MgKDQlIHA5OS45IGFuZCBwOTkuOTkpLg0KDQo8aW1nIHdp ZHRoPSIxMDAwIiBhbHQ9IlNjcmVlbnNob3QgMjAyNC0wNC0yMiBhdCAxNiA1NSA1MyINCnNyYz0i aHR0cHM6Ly9naXRodWIuY29tL3J1YnkvcnVieS9hc3NldHMvMzE4NjkvOGE4MGMxMDItMTU2NC00 YmM5LWJhNDQtNmU5YThiODVmOTcxIj4NCg0KDQpUaGlzIGRyb3BzIHNsaWdodGx5IHRvIGFuIDgl IHJlZHVjdGlvbiBpbiBhdmVyYWdlIGFuZCBwOTkgcmVzcG9uc2UgdGltZXMgd2hlbg0KY29tcGFy ZWQgYWdhaW5zdCBzdGFuZGFyZCBPT0JHQyAoMy41OSBwOTkuOSBhbmQgNCUgcDk5Ljk5KQ0KDQo8 aW1nIHdpZHRoPSIxMDAwIiBhbHQ9IlNjcmVlbnNob3QgMjAyNC0wNC0yMiBhdCAxNiA1NiAxMCIN CnNyYz0iaHR0cHM6Ly9naXRodWIuY29tL3J1YnkvcnVieS9hc3NldHMvMzE4NjkvMWJhZWY3ZWEt MDE1NS00ZmY5LThiYTQtYTk2N2I3NTc0OWZlIj4NCg0KDQoNCg0KDQotLS1GaWxlcy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpDYXB0dXJlIGTigJllzIFjcmFuIDIwMjQtMDQtMjIg YcyAIDE4LjQxLjUyLnBuZyAoMjc5IEtCKQ0KDQoNCi0tIA0KaHR0cHM6Ly9idWdzLnJ1YnktbGFu Zy5vcmcvDQogX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwog cnVieS1jb3JlIG1haWxpbmcgbGlzdCAtLSBydWJ5LWNvcmVAbWwucnVieS1sYW5nLm9yZwogVG8g dW5zdWJzY3JpYmUgc2VuZCBhbiBlbWFpbCB0byBydWJ5LWNvcmUtbGVhdmVAbWwucnVieS1sYW5n Lm9yZwogcnVieS1jb3JlIGluZm8gLS0gaHR0cHM6Ly9tbC5ydWJ5LWxhbmcub3JnL21haWxtYW4z L3Bvc3Rvcml1cy9saXN0cy9ydWJ5LWNvcmUubWwucnVieS1sYW5nLm9yZy8=