[ruby-core:117821] [Ruby master Feature#20443] Allow Major GC's to be disabled
From:
"matz (Yukihiro Matsumoto) via ruby-core" <ruby-core@...>
Date:
2024-05-09 12:56:55 UTC
List:
ruby-core #117821
SXNzdWUgIzIwNDQzIGhhcyBiZWVuIHVwZGF0ZWQgYnkgbWF0eiAoWXVraWhpcm8gTWF0c3Vtb3Rv KS4NCg0KDQpJIGFtIG5ldXRyYWwgb24gdGhpcyBwcm9wb3NhbC4gSG93ZXZlciwgSSBhbSBjb25j ZXJuZWQgdGhhdCB0aGVyZSBtYXkgbm90IGJlIGEgTWFqb3IgR0Mgd2hlbiBHQyBtYWRlIHBsdWdn YWJsZS4NCg0KTWF0ei4NCg0KDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tDQpGZWF0dXJlICMyMDQ0MzogQWxsb3cgTWFqb3IgR0MncyB0byBiZSBkaXNhYmxlZA0KaHR0 cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvaXNzdWVzLzIwNDQzI2NoYW5nZS0xMDgyMzANCg0KKiBB dXRob3I6IGVpZ2h0Yml0cmFwdG9yIChNYXR0aGV3IFZhbGVudGluZS1Ib3VzZSkNCiogU3RhdHVz OiBPcGVuDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpbW0dpdGh1 YiBQUiAjMTA1OThdXShodHRwczovL2dpdGh1Yi5jb20vcnVieS9ydWJ5L3B1bGwvMTA1OTgpDQoN CiMjIEJhY2tncm91bmQNCg0KUnVieSdzIEdDIHJ1bm5pbmcgZHVyaW5nIFJhaWxzIHJlcXVlc3Rz IGNhbiBoYXZlIG5lZ2F0aXZlIGltcGFjdHMgb24gY3VycmVudGx5DQpydW5uaW5nIHJlcXVlc3Rz LCBjYXVzaW5nIGFwcGxpY2F0aW9ucyB0byBoYXZlIGhpZ2ggdGFpbC1sYXRlbmN5Lg0KDQpBIHRl Y2huaXF1ZSB0byBtaXRpZ2F0ZSB0aGlzIGhpZ2ggdGFpbC1sYXRlbmN5IGlzIE91dC1vZi1iYW5k IEdDIChPT0JHQykuIFRoaXMNCmlzIGJhc2ljYWxseSB3aGVyZSB0aGUgYXBwbGljYXRpb24gaXMg cnVuIHdpdGggR0MgZGlzYWJsZWQsIGFuZCB0aGVuIEdDIGlzDQpleHBsaWNpdGx5IHN0YXJ0ZWQg YWZ0ZXIgZWFjaCByZXF1ZXN0LCBvciB3aGVuIG5vIHJlcXVlc3RzIGFyZSBpbiBwcm9ncmVzcy4N Cg0KVGhpcyBjYW4gcmVkdWNlIHRoZSB0YWlsIGxhdGVuY3ksIGJ1dCBhbHNvIGludHJvZHVjZXMg cHJvYmxlbXMgb2YgaXRzIG93bi4gTG9uZw0KR0MgcGF1c2VzIGFmdGVyIGVhY2ggcmVxdWVzdCBy ZWR1Y2UgdGhyb3VnaHB1dC4gVGhpcyBpcyBtb3JlIHByb25vdW5jZWQgb24NCnRocmVhZGluZyBz ZXJ2ZXJzIGxpa2UgUHVtYSBiZWNhdXNlIGFsbCB0aGUgdGhyZWFkcyBoYXZlIHRvIGZpbmlzaCBw cm9jZXNzaW5nDQp1c2VyIHJlcXVlc3RzIGFuZCBiZSAicGF1c2VkIiBiZWZvcmUgT09CR0MgY2Fu IGJlIHRyaWdnZXJlZC4NCg0KVGhpcyB0aHJvdWdocHV0IGRlY3JlYXNlIGhhcHBlbnMgZm9yIGEg Y291cGxlIG9mIHJlYXNvbnM6DQoNCjEuIFRoZXJlIGFyZSBmZXcgaGV1cmlzdGljcyBhdmFpbGFi bGUgZm9yIHVzZXJzIHRvIGRldGVybWluZSB3aGVuIEdDIHNob3VsZCBydW4sDQp0aGlzIG1lYW5z IHRoYXQgaW4gT09CR0Mgc2NlbmFyaW9zLCBpdCdzIHBvc3NpYmxlIHRoYXQgbWFqb3IgR0MncyBh cmUgYmVpbmcgcnVuDQptb3JlIHRoYW4gbmVjZXNzYXJ5LiAgMi4gVGhlIGxhY2sgb2YgYW55IEdD IGR1cmluZyBhIHJlcXVlc3QgbWVhbnMgdGhhdCBsb3RzIG9mDQpnYXJiYWdlIG9iamVjdHMgaGF2 ZSBiZWVuIGNyZWF0ZWQgYW5kIG5vdCBjbGVhbmVkIHVwLCBzbyB0aGUgcHJvY2VzcyBpcyB1c2lu Zw0KbW9yZSBtZW1vcnkgdGhhbiBpdCBzaG91bGQgLSByZXF1aXJpbmcgbWFqb3IgR0MncyBydW4g YXMgcGFydCBvZiBPT0JHQyB0byBkbw0KbW9yZSB3b3JrIGFuZCB0aGVyZWZvcmUgdGFrZSBtb3Jl IHRpbWUuDQoNClRoaXMgdGlja2V0IGF0dGVtcHRzIHRvIGFkZHJlc3MgdGhlc2UgaXNzdWVzIGJ5 Og0KDQoxLiBQcm92aWRlIGBHQy5kaXNhYmxlX21ham9yYCBhbmQgaXRzIGFudG9ueW0gYEdDLmVu YWJsZV9tYWpvcmAgdG8gZGlzYWJsZSBhbmQNCmVuYWJsZSBvbmx5IG1ham9yIEdDIDIuIFByb3Zp ZGUgYEdDLm5lZWRzX21ham9yP2AgYXMgYSBiYXNpYyBoZXVyaXN0aWMgYWxsb3dpbmcNCnVzZXJz IHRvIHRlbGwgd2hlbiBSdWJ5IHNob3VsZCBydW4gYSBNYWpvciBHQy4NCg0KVGhlc2UgaWRlYXMg d2VyZSBvcmlnaW5hbGx5IHByb3Bvc2VkIGJ5IEBrbzEgYW5kIEBieXJvb3QgaW4gW3RoaXMgcmFp bHMNCmlzc3VlXShodHRwczovL2dpdGh1Yi5jb20vcmFpbHMvcmFpbHMvaXNzdWVzLzUwNDQ5KQ0K DQpEaXNhYmxpbmcgR0MgbWFqb3IncyB3b3VsZCBzdGlsbCBhbGxvdyBtaW5vciBHQydzIHRvIHJ1 biBkdXJpbmcgdGhlIHJlcXVlc3QsDQphdm9pZGluZyB0aGUgYmFsbG9vbmluZyBtZW1vcnkgdXNh Z2UgY2F1c2VkIGJ5IG5vdCBydW5uaW5nIEdDIGF0IGFsbCwgYW5kDQpyZWR1Y2luZyB0aGUgdGlt ZSB0aGF0IGEgbWFqb3IgdGFrZXMgd2hlbiB3ZSBkbyBydW4gaXQsIGJlY2F1c2UgdGhlIG51cnNl cnkNCm9iamVjdHMgaGF2ZSBiZWVuIGNsZWFuZWQgdXAgZHVyaW5nIHRoZSByZXF1ZXN0IGFscmVh ZHkgc28gdGhlcmUgaXMgbGVzcyB3b3JrDQpmb3IgYSBtYWpvciBHQyB0byBkby4NCg0KVGhpcyBj YW4gYmUgdXNlZCBpbiBjb21iaW5hdGlvbiB3aXRoIGBHQy5uZWVkc19tYWpvcj9gIHRvIHNlbGVj dGl2ZWx5IHJ1biBhbg0KT09CR0Mgb25seSB3aGVuIG5lY2Vzc2FyeQ0KDQojIyBJbXBsZW1lbnRh dGlvbg0KDQpUaGlzIFBSIGFkZHMgMyBuZXcgbWV0aG9kcyB0byB0aGUgYEdDYCBtb2R1bGUNCg0K LSBgR0MuZGlzYWJsZV9tYWpvcmAgVGhpcyBwcmV2ZW50cyBtYWpvciBHQydzIGZyb20gcnVubmlu ZyBhdXRvbWF0aWNhbGx5LiBJdA0KICBkb2VzIG5vdCByZXN0cmljdCBtaW5vcnMuIFdoZW4gYG9i anNwYWNlLT5yZ2VuZ2MubmVlZF9tYWpvcl9nY2AgaXMgc2V0IGFuZCBhDQogIEdDIGlzIHJ1biwg aW5zdGVhZCBvZiBydW5uaW5nIGEgbWFqb3IsIG5ldyBoZWFwIHBhZ2VzIHdpbGwgYmUgYWxsb2Nh dGVkIGFuZCBhDQogIG1pbm9yIHJ1biBpbnN0ZWFkLiBgb2Jqc3BhY2UtPnJnZW5nYy5uZWVkX21h am9yX2djYCB3aWxsIHJlbWFpbiBzZXQgdW50aWwgYQ0KICBtYWpvciBpcyBtYW51YWxseSBydW4u IElmIGEgbWFqb3IgaXMgbm90IG1hbnVhbGx5IHJ1biB0aGVuIHRoZSBwcm9jZXNzIHdpbGwNCiAg ZXZlbnR1YWxseSBydW4gb3V0IG9mIG1lbW9yeS4NCiAgDQogIFdoZW4gbWFqb3IgR0MncyBhcmUg ZGlzYWJsZWQsIG9iamVjdCBwcm9tb3Rpb24gaXMgZGlzYWJsZWQuIFRoYXQgaXMsIG5vDQogIG9i amVjdHMgd2lsbCBpbmNyZW1lbnQgdGhlaXIgYWdlcyBkdXJpbmcgYSBtaW5vciBHQy4gVGhpcyBp cyB0byBhdHRlbXB0IHRvDQogIG1pbmltaXNlIGhlYXAgZ3Jvd3RoIGR1cmluZyB0aGUgcGVyaW9k IGJldHdlZW4gbWFqb3IgR0MncywgYnkgcmVzdHJpY3RpbmcgdGhlDQogIG51bWJlciBvZiBvbGQt Z2VuIG9iamVjdHMgdGhhdCB3aWxsIHJlbWFpbiB1bmNvbnNpZGVyZWQgYnkgdGhlIEdDIHVudGls IHRoZQ0KICBuZXh0IG1ham9yLg0KICANCiAgV2hlbiBgR0Muc3RhcnRgIGlzIHJ1biwgdGhlbiBt YWpvciBHQydzIHdpbGwgYmUgZW5hYmxlZCwgYSBHQyB0cmlnZ2VyZWQgd2l0aA0KICB0aGUgb3B0 aW9ucyBwYXNzZWQgdG8gYEdDLnN0YXJ0YCwgYW5kIHRoZW4gYGRpc2FibGVfbWFqb3JgIHdpbGwg YmUgc2V0IHRvIHRoZQ0KICBzdGF0ZSBpdCB3YXMgaW4gYmVmb3JlIGBHQy5zdGFydGAgd2FzIGNh bGxlZC4NCiAgDQotIGBHQy5lbmFibGVfbWFqb3JgIFRoaXMgc2ltcGx5IHVuc2V0cyB0aGUgYml0 IHByZXZlbnRpbmcgbWFqb3IgR0Mncy4gVGhpcyB3aWxsDQogIHJldmVydCB0aGUgR0MgdG8gbm9y bWFsIGdlbmVyYXRpb25hbCBiZWhhdmlvdXIuIEV2ZXJ5dGhpbmcgYmVoYXZlcyBhcyBkZWZhdWx0 DQogIGFnYWluLg0KDQotIGBHQy5uZWVkc19tYWpvcj9gIFRoaXMgZXhwb3NlcyB0aGUgdmFsdWUg b2YgYG9ianNwYWNlLT5yZ2VuZ2MubmVlZF9tYWpvcl9nY2ANCiAgdG8gdGhlIHVzZXIgbGV2ZWwg QVBJLiBUaGlzIGlzIGFscmVhZHkgZXhwb3NlZCBpbg0KICBgR0MubGF0ZXN0X2djX2luZm9bOm5l ZWRfbWFqb3JfYnldYCBidXQgSSBmZWx0IHRoYXQgYSBzaW1wbGVyIGludGVyZmFjZSB3b3VsZA0K ICBtYWtlIHRoaXMgZWFzaWVyIHRvIHVzZSBhbmQgcmVzdWx0IGluIG1vcmUgcmVhZGFibGUgY29k ZS4gZWcuDQogIA0KYGBgDQpvdXRfb2ZfYmFuZCBkbyANCiAgR0Muc3RhcnQgaWYgR0MubmVlZHNf bWFqb3I/ICANCmVuZCANCmBgYA0KDQpCZWNhdXNlIG9iamVjdCBhZ2luZyBpcyBkaXNhYmxlZCB3 aGVuIG1ham9ycyBhcmUgZGlzYWJsZWQgaXQgaXMgcmVjb21tZW5kZWQgdG8NCnVzZSB0aGlzIGlu IGNvbmp1bmN0aW9uIHdpdGggYFByb2Nlc3Mud2FybXVwYCwgd2hpY2ggd2lsbCBwcmVwYXJlIHRo ZSBoZWFwIGJ5DQpydW5uaW5nIGEgbWFqb3IgR0MsIGNvbXBhY3RpbmcgdGhlIGhlYXAsIGFuZCBw cm9tb3RpbmcgZXZlcnkgcmVtYWluaW5nIG9iamVjdCB0bw0Kb2xkLWdlbi4gVGhpcyBlbnN1cmVz IHRoYXQgbWlub3IgR0MncyBhcmUgcnVubmluZyBvdmVyIHRoZSBzbWFsbGV0cyBwb3NzaWJsZSBz ZXQNCm9mIHlvdW5nIG9iamVjdHMgd2hlbiBgR0MuZGlzYWJsZV9tYWpvcmAgaXMgdHJ1ZS4NCg0K IyMgQmVuY2htYXJrcw0KDQpXZSByYW4gc29tZSB0ZXN0cyBpbiBwcm9kdWN0aW9uIG9uIFNob3Bp ZnkncyBjb3JlIG1vbm9saXRoIG92ZXIgYSB3ZWVrZW5kIGFuZA0KZm91bmQgdGhhdDoNCg0KKipN ZWFuIHRpbWUgc3BlbnQgaW4gR0MsIGFzIHdlbGwgYXMgcDk5LjkgYW5kIHA5OS45OSBHQyB0aW1l cyBhcmUgYWxsDQppbXByb3ZlZC4qKiANCg0KPGltZyB3aWR0aD0iMTAwMCIgYWx0PSJTY3JlZW5z aG90IDIwMjQtMDQtMjIgYXQgMTYgNDEgNDkiDQpzcmM9Imh0dHBzOi8vZ2l0aHViLmNvbS9ydWJ5 L3J1YnkvYXNzZXRzLzMxODY5LzZjZmY1YjExLTJlMjEtNDBjMS1iYjg0LWQ5OTRlMGUxNzk4ZCI+ DQoNCioqcDk5IEdDIHRpbWUgaXMgc2xpZ2h0bHkgaGlnaGVyLioqIA0KDQo8aW1nIHdpZHRoPSIx MDAwIiBhbHQ9IlNjcmVlbnNob3QgMjAyNC0wNC0yMiBhdCAxNiA0NCA1NSINCnNyYz0iaHR0cHM6 Ly9naXRodWIuY29tL3J1YnkvcnVieS9hc3NldHMvMzE4NjkvZGM2NDVjYmUtOTQ5NS00NmYwLTg0 ODUtMjRlNzkwYzQyZjMyIj4NCg0KV2UncmUgcnVubmluZyBmYXIgZmV3ZXIgT09CR0MgbWFqb3Ig R0MncyBub3cgdGhhdCB3ZSBoYXZlIGBHQy5uZWVkc19tYWpvcj9gIHRoYW4NCndlIHdlcmUgYmVm b3JlLCBhbmQgd2UgYmVsaWV2ZSB0aGF0IHRoaXMgaXMgY29udHJpYnV0aW5nIHRvIGEgc2xpZ2h0 bHkgaW5jcmVhc2VkDQpudW1iZXIgb2YgbWlub3IgR0Mncy4gcmFpc2luZyB0aGUgcDk5IHNsaWdo dGx5Lg0KDQoqKkFwcCByZXNwb25zZSB0aW1lcyBhcmUgYWxsIGltcHJvdmVkKioNCg0KV2Ugc2Vl IGEgfjIlIHJlZHVjdGlvbiBpbiBhdmVyYWdlIHJlc3BvbnNlIHRpbWVzIHdoZW4gY29tcGFyZWQg YWdhaW5zdHN0YW5kYXJkIEdDIA0KKH43JSBwOTksIH4zJSBwOTkuOSBhbmQgfjQlIHA5OS45OSku DQoNCjxpbWcgd2lkdGg9IjEwMDAiIGFsdD0iU2NyZWVuc2hvdCAyMDI0LTA0LTIzIGF0IDA5IDI3 IDE3IiBzcmM9Imh0dHBzOi8vZ2lzdC5naXRodWIuY29tL2Fzc2V0cy8zMTg2OS83MGU4MWZhNS03 N2IyLTQ2OWEtODk0NS04OGJmOGY4ZmVmZTkiPg0KDQpUaGlzIGRyb3BzIHNsaWdodGx5IHRvIGFu IGEgfjElIHJlZHVjdGlvbiBpbiBhdmVyYWdlIHJlc3BvbnNlIHRpbWVzIHdoZW4gY29tcGFyZWQN CmFnYWluc3Qgb3VyIG5vcm1hbCBPT0JHQyBhcHByb2FjaCAgKH42JSBwOTksIH4yJSBwOTkuOSBh bmQgfjMlIHA5OS45OSkuDQoNCjxpbWcgd2lkdGg9IjEwMDAiIGFsdD0iU2NyZWVuc2hvdCAyMDI0 LTA0LTIzIGF0IDA5IDI3IDI5IiBzcmM9Imh0dHBzOi8vZ2lzdC5naXRodWIuY29tL2Fzc2V0cy8z MTg2OS9jYmFhMzgwNy0wY2QxLTRkYmEtYTVlNi1iOWRmOTEwMjRkNzMiPg0KDQoNCkVESVQ6IHRv IGNvcnJlY3QgYSBmb3JtdWxhIGVycm9yIGluIHRoZSBvcmlnaW5hbCBBdmVyYWdlIGNoYXJ0cywg bnVtYmVycyB1cGRhdGVkLiANCg0KLS0tRmlsZXMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQ0KQ2FwdHVyZSBk4oCZZcyBY3JhbiAyMDI0LTA0LTIyIGHMgCAxOC40MS41Mi5wbmcgKDI3 OSBLQikNCg0KDQotLSANCmh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnLw0KIF9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KIHJ1YnktY29yZSBtYWlsaW5nIGxp c3QgLS0gcnVieS1jb3JlQG1sLnJ1YnktbGFuZy5vcmcKIFRvIHVuc3Vic2NyaWJlIHNlbmQgYW4g ZW1haWwgdG8gcnVieS1jb3JlLWxlYXZlQG1sLnJ1YnktbGFuZy5vcmcKIHJ1YnktY29yZSBpbmZv IC0tIGh0dHBzOi8vbWwucnVieS1sYW5nLm9yZy9tYWlsbWFuMy9wb3N0b3JpdXMvbGlzdHMvcnVi eS1jb3JlLm1sLnJ1YnktbGFuZy5vcmcv