[#111712] [Ruby master Feature#19322] Support spawning "private" child processes — "kjtsanaktsidis (KJ Tsanaktsidis) via ruby-core" <ruby-core@...>
SXNzdWUgIzE5MzIyIGhhcyBiZWVuIHJlcG9ydGVkIGJ5IGtqdHNhbmFrdHNpZGlzIChLSiBUc2Fu
14 messages
2023/01/07
[ruby-core:111649] [Ruby master Feature#18285] NoMethodError#message uses a lot of CPU/is really expensive to call
From:
"zverok (Victor Shepelev) via ruby-core" <ruby-core@...>
Date:
2023-01-05 10:07:56 UTC
List:
ruby-core #111649
SXNzdWUgIzE4Mjg1IGhhcyBiZWVuIHVwZGF0ZWQgYnkgenZlcm9rIChWaWN0b3IgU2hlcGVsZXYp Lg0NCg0NCg0NCkkgdW5kZXJzdGFuZCBJIGFtIGxhdGUgdG8gdGhlIHBhcnR5LCBidXQgSSBhbSBl eHRyZW1lbHkgY29uY2VybmVkIHdpdGggaG93IHRoZSBkaXNjdXNzaW9uIGluIHRoaXMgdGlja2V0 IHdlbnQuDQ0KDQ0KRnJvbSBteSB1bmRlcnN0YW5kaW5nOg0NCjEuIFRoZXJlIGFyZSBtYW55IGNv bnRleHRzLCBlc3BlY2lhbGx5IHdpdGggZGVzaWduaW5nLCBleHBlcmltZW50aW5nLCBhbmQgcHJv dG90eXBpbmcgd2l0aCBSdWJ5LCB3aGVyZSAid2hhdCBvYmplY3QgdGhlIHByb2JsZW0gaGFwcGVu ZWQgd2l0aCIgZnJlcXVlbnRseSBzYXZlcyBtaW51dGVzLCBpZiBub3QgaG91cnMsIG9mIGhlYWQt c2NyYXRjaGluZyAoSSBnaXZlIG9uZSB0cml2aWFsIGV4YW1wbGUgYmVsb3cpDQ0KMi4gYCNpbnNw ZWN0YCBpcyBhIG1ldGhvZCB0aGF0IGlzIGRlZGljYXRlZCB0byByZWFzb25hYmxlIGludHJvc3Bl Y3Rpb24gYW5kIGhlbHBpbmcgZGVidWdnaW5nOyBJIGJlbGlldmUgaXQga2luZGEgaW1wbGllcyB0 aGF0IHRoZSB1c2VyIGNsYXNzZXMgYXJlIGFkdmlzZWQgdG8gaW1wbGVtZW50IGl0IGluIGFuIGVm ZmljaWVudCB3YXksIHNvIGl0IHdvdWxkIGJlIGNoZWFwIHRvIGVtYmVkIGl0IGludG8gZGlhZ25v c3RpY3MNDQozLiBBcyBmYXIgYXMgSSB1bmRlcnN0YW5kLCB0aGUgcHJvYmxlbSBvcmlnaW5hdGVz IGluIFJhaWxzLCB3aGljaCAoYXMgdGhleSBkbykgZG9lc24ndCB0cnkgdG8gZm9sbG93IGdvb2Qg cHJhY3RpY2VzIGZvciBgI2luc3BlY3RgICh3aGljaCBpcyBob25lc3RseSBmcmVxdWVudGx5IGly cml0YXRpbmcpDQ0KNC4gU28sIGJ5IHNvbHZpbmcgdGhlIFJhaWxzIHByb2JsZW0sIHdlIGFyZSBt YWtpbmcgdGhlIGxpZmUgb2YgX2FsbF8gUnVieWlzdHMgd29yc2U/Li4NDQoNDQpXaHkgSSBiZWxp ZXZlIGl0IHdvdWxkIGJlIHdvcnNl4oCUaW4gcmVzcG9uc2UgdG86DQ0KPiBOb01ldGhvZEVycm9y IGlzIHR5cGljYWxseSBiZWNhdXNlIHRoZSBtZXRob2QgaXNuJ3QgZGVmaW5lZCBvbiB0aGUgY2xh c3Mgb2YgdGhhdCBpbnN0YW5jZSwgYW5kIHZlcnkgcmFyZWx5IGJlY2F1c2UgaXQncyBub3QgZGVm aW5lZCBvbiB0aGUgc2luZ2xldG9uIGNsYXNzIG9mIHRoYXQgaW5zdGFuY2UgKGV4Y2VwdCBpZiBp dCdzIGEgTW9kdWxlL0NsYXNzKS4gSGVuY2Ugc2hvd2luZyBkYXRhIG9mIHRoYXQgc3BlY2lmaWMg aW5zdGFuY2Ugc2VlbXMgbm90IHNvIHZhbHVhYmxlLCBtaWdodCBhcyB3ZWxsIGp1c3Qgc2hvdyB0 aGUgY2xhc3MuIChARXJlZ29uKQ0NCj4gDQ0KPiBUaGUgY29udGVudCBvZiB0aGUgaGFzaCBoZXJl IGlzbid0IHJlYWxseSBoZWxwZnVsLCBpbiB0aGUgY29udGV4dCBvZiBhIGBOb01ldGhvZEVycm9y YCBhbGwgSSByZWFsbHkgY2FyZSBhYm91dCBpcyB0aGUgdHlwZSBvZiB0aGUgb2JqZWN0LCBzbyB3 aHkgbm90LiAoQGJ5cm9vdCkNDQoNDQpUaG9zZSBzdGF0ZW1lbnRzIGFyZSByZWxldmFudCBmb3Ig dHlwby1vcmlnaW5hdGVkIGBOb01ldGhvZEVycm9yYCBhY2NpZGVudHMgKGxpa2UgYHNvbWVfaGFz aC5kZWVsdGVgKSwgYnV0IG5vdCBhcyByZWxldmFudCBmb3IgZHVjay9keW5hbWljLXR5cGluZyBv cmlnaW5hdGVkIG9uZXMuIA0NCg0NClNheSwgaW4gYSBjb21wbGljYXRlZCBhbGdvcml0aG0gd29y a2luZyB3aXRoIG5lc3RlZCBkYXRhIHN0cnVjdHVyZXMsIGB1bmRlZmluZWQgbWV0aG9kIHRyYW5z Zm9ybV9rZXlzIGZvciBvYmplY3QgQXJyYXlgIGlzIHNpZ25pZmljYW50bHkgd29yc2UgdGhhbiBg dW5kZWZpbmVkIG1ldGhvZCB0cmFuc2Zvcm1fa2V5cyBmb3IgW3tpZDogMSwgbmFtZTogJ0pvaG4n fV1gLiBPciwgYHVuZGVmaW5lZCBtZXRob2QgcHVuY3R1YXRpb24/IGZvciBUb2tlbkdyb3VwYCBp cyB3b3JzZSB0aGFuIGB1bmRlZmluZWQgbWV0aG9kIHB1bmN0dWF0aW9uPyBmb3IgW1Rva2VuWydk ZWYnXSBUb2tlblsnZW5kJ11dOlRva2VuR3JvdXBgDQ0KDQ0KVGhlIGxhdHRlciBpbmRpY2F0ZXMg aW1tZWRpYXRlbHkgd2hpY2ggcGllY2Ugb2YgZGF0YSBkZWZpZXMgdGhlIGluaXRpYWwgYXNzdW1w dGlvbiBhYm91dCB0aGUgc3RydWN0dXJlIChzb21lIGB1c2VyczpgIGFyZSBwYXNzZWQgYXMgYW4g YXJyYXksIG1heWJlIGFmdGVyIEFQSSB2ZXJzaW9uIGNoYW5nZTsgc29tZSBwYXJ0aWN1bGFyIGZy YWdtZW50IG9mIHBhcnNlZCBkYXRhIHByb2R1Y2VkIGEgZ3JvdXAgb2YgdG9rZW5zIHdoZXJlIGEg c2luZ3VsYXIgdG9rZW4gd2FzIGV4cGVjdGVkKSwgdGhlIGZvcm1lciByZXF1aXJlcyBzdGFydGlu ZyBkZWJ1Z2dpbmcgYW5kIHByaW50aW5nIGludGVybWVkaWF0ZSB2YWx1ZXMuDQ0KDQ0KSG9uZXN0 bHksIEkgd291bGQgbXVjaCByYXRoZXIgcHJlZmVyIHVzZXJzIHRvIGJlIGFkdmlzZWQgIm1ha2Ug c3VyZSB5b3VyIGAjaW5zcGVjdGAgaXMgZWZmaWNpZW50IiB0aGFuIG1ha2UgZXZlcnlib2R5IHN1 ZmZlci4NDQoNDQpQUzogVGhlIFtwcm9ibGVtIG9mIHRvby1sb25nIGVycm9yIG1lc3NhZ2VzXSho dHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy9pc3N1ZXMvMTgyODUjbm90ZS02KSBpcyBhbHNvIGlu dGVyZXN0aW5n4oCUYnV0IEkgZG9uJ3QgYmVsaWV2ZSB0aGF0ICJqdXN0IG5ldmVyIHVzZSBgI2lu c3BlY3RgIGlzIGEgZ29vZCBzb2x1dGlvbiBmb3IgaXQgZWl0aGVyLg0NCg0NCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NDQpGZWF0dXJlICMxODI4NTogTm9NZXRob2RF cnJvciNtZXNzYWdlIHVzZXMgYSBsb3Qgb2YgQ1BVL2lzIHJlYWxseSBleHBlbnNpdmUgdG8gY2Fs bA0NCmh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnL2lzc3Vlcy8xODI4NSNjaGFuZ2UtMTAxMDM5 DQ0KDQ0KKiBBdXRob3I6IGl2b2Fuam8gKEl2byBBbmpvKQ0NCiogU3RhdHVzOiBPcGVuDQ0KKiBQ cmlvcml0eTogTm9ybWFsDQ0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQ0NCkhlbGxvIHRoZXJlISBJJ20gd29ya2luZyBhdCBEYXRhZG9nIG9uIHRoZSBkZHRyYWNlIGdl bSAtLSBodHRwczovL2dpdGh1Yi5jb20vRGF0YURvZy9kZC10cmFjZS1yYiBhbmQgd2UgcmFuIGlu dG8gdGhpcyBpc3N1ZSBvbiBvbmUgb2Ygb3VyIGludGVybmFsIHRlc3RpbmcgYXBwbGljYXRpb25z LiBJIGFsc28gYmxvZ2dlZCBhYm91dCB0aGlzIGlzc3VlIGluIDxodHRwczovL2l2b2Fuam8ubWUv YmxvZy8yMDIxLzExLzAxL25vbWV0aG9kZXJyb3ItcnVieS1jb3N0Lz4uDQ0KDQ0KIyMjIEJhY2tn cm91bmQNDQoNDQpXaGlsZSB0ZXN0aW5nIGFuIGFwcGxpY2F0aW9uIHRoYXQgdGhyZXcgYSBsb3Qg b2YgYE5vTWV0aG9kRXJyb3JgcyBpbiBhIFJhaWxzIGNvbnRyb2xsZXIgKHRoaXMgd2FzIHVzZWQg Zm9yIHZhbGlkYXRpb24pLCB3ZSBkaXNjb3ZlcmVkIHRoYXQgc2VydmljZSBwZXJmb3JtYW5jZSB3 YXMgdmVyeSBtdWNoIGltcGFjdGVkIHdoZW4gd2Ugd2VyZSBsb2dnaW5nIHRoZXNlIGV4Y2VwdGlv bnMuIFdoaWxlIGludmVzdGlnYXRpbmcgd2l0aCBhIHByb2ZpbGVyLCB0aGUgcGVyZm9ybWFuY2Ug aW1wYWN0IHdhcyBjYXVzZWQgYnkgY2FsbHMgdG8gYE5vTWV0aG9kRXJyb3IjbWVzc2FnZWAsIGJl Y2F1c2UgdGhpcyBSYWlscyBjb250cm9sbGVyIGhhZCBhIHF1aXRlIGNvbXBsZXggYCNpbnNwZWN0 YCBtZXRob2QsIHRoYXQgd2FzIGdldHRpbmcgY2FsbGVkIGV2ZXJ5IHRpbWUgd2UgdHJpZWQgdG8g Z2V0IHRoZSBgI21lc3NhZ2VgIGZyb20gdGhlIGV4Y2VwdGlvbi4NDQoNDQojIyMgSG93IHRvIHJl cHJvZHVjZQ0NCg0NCmBgYHJ1YnkNDQpyZXF1aXJlICdidW5kbGVyL2lubGluZScNDQoNDQpnZW1m aWxlIGRvDQ0KICBzb3VyY2UgJ2h0dHBzOi8vcnVieWdlbXMub3JnJw0NCg0NCiAgZ2VtICdiZW5j aG1hcmstaXBzJw0NCmVuZA0NCg0NCnB1dHMgUlVCWV9ERVNDUklQVElPTg0NCg0NCmNsYXNzIEdl bUluZm9ybWF0aW9uDQ0KICAjIC4uLg0NCg0NCiAgZGVmIGdldF9ub19tZXRob2RfZXJyb3INDQog ICAgbWV0aG9kX2RvZXNfbm90X2V4aXN0DQ0KICByZXNjdWUgPT4gZQ0NCiAgICBlDQ0KICBlbmQN DQoNDQogIGRlZiBnZXRfcnVudGltZV9lcnJvcg0NCiAgICByYWlzZSAnQW5vdGhlciBFcnJvcicN DQogIHJlc2N1ZSA9PiBlDQ0KICAgIGUNDQogIGVuZA0NCg0NCiAgZGVmIGluc3BlY3QgIyA8LS0g ZXhwZW5zaXZlIG1ldGhvZCBnZXRzIGNhbGxlZCB3aGVuIGNhbGxpbmcgTm9NZXRob2RFcnJvciNt ZXNzYWdlDQ0KICAgIEdlbTo6U3BlY2lmaWNhdGlvbi5fYWxsLmluc3BlY3QNDQogIGVuZA0NCmVu ZA0NCg0NCk5PX01FVEhPRF9FUlJPUl9JTlNUQU5DRSA9IEdlbUluZm9ybWF0aW9uLm5ldy5nZXRf bm9fbWV0aG9kX2Vycm9yDQ0KUlVOVElNRV9FUlJPUl9JTlNUQU5DRSA9IEdlbUluZm9ybWF0aW9u Lm5ldy5nZXRfcnVudGltZV9lcnJvcg0NCg0NCkJlbmNobWFyay5pcHMgZG8gfHh8DQ0KICB4LmNv bmZpZyg6dGltZSA9PiA1LCA6d2FybXVwID0+IDIpDQ0KDQ0KICB4LnJlcG9ydCgibm8gbWV0aG9k IGVycm9yIG1lc3NhZ2UgY29zdCIpIHsgTk9fTUVUSE9EX0VSUk9SX0lOU1RBTkNFLm1lc3NhZ2Ug fQ0NCiAgeC5yZXBvcnQoInJ1bnRpbWUgZXJyb3IgbWVzc2FnZSBjb3N0IikgeyBSVU5USU1FX0VS Uk9SX0lOU1RBTkNFLm1lc3NhZ2UgfQ0NCg0NCiAgeC5jb21wYXJlIQ0NCmVuZA0NCmBgYA0NCg0N CiMjIyBFeHBlY3RhdGlvbiBhbmQgcmVzdWx0DQ0KDQ0KR2V0dGluZyB0aGUgYCNtZXNzYWdlYCBm cm9tIGEgYE5vTWV0aG9kRXJyb3JgIHNob3VsZCBiZSBubyBjb3N0bHkgdGhhbiBnZXR0aW5nIGl0 IGZyb20gYW55IG90aGVyIGV4Y2VwdGlvbi4NDQoNDQpJbiByZWFsaXR5Og0NCg0NCmBgYA0NCnJ1 YnkgMy4wLjJwMTA3ICgyMDIxLTA3LTA3IHJldmlzaW9uIDBkYjY4ZjAyMzMpIFt4ODZfNjQtbGlu dXhdDQ0KDQ0Kbm8gbWV0aG9kIGVycm9yIG1lc3NhZ2UgY29zdA0NCiAgICAgICAgICAgICAgICAg ICAgICAgIDExNS4zOTAgICjCsSAxLjclKSBpL3MgLSAgICA1ODAuMDAwICBpbiAgIDUuMDI3ODIy cw0NCnJ1bnRpbWUgZXJyb3IgbWVzc2FnZSBjb3N0DQ0KICAgICAgICAgICAgICAgICAgICAgICAg ICA2LjkzOE0gKMKxIDAuNSUpIGkvcyAtICAgICAzNS4zMzRNIGluICAgNS4wOTI2MTdzDQ0KDQ0K Q29tcGFyaXNvbjoNDQpydW50aW1lIGVycm9yIG1lc3NhZ2UgY29zdDogIDY5MzgzODEuNiBpL3MN DQpubyBtZXRob2QgZXJyb3IgbWVzc2FnZSBjb3N0OiAgICAgIDExNS40IGkvcyAtIDYwMTMwLjAy eCAgKMKxIDAuMDApIHNsb3dlcg0NCmBgYA0NCg0NCiMjIyBTdWdnZXN0ZWQgc29sdXRpb25zDQ0K DQ0KMS4gRG8gbm90IGNhbGwgYCNpbnNwZWN0YCBvbiB0aGUgb2JqZWN0IG9uIHdoaWNoIHRoZSBt ZXRob2Qgd2FzIG5vdCBmb3VuZCAoc2VlIDxodHRwczovL2dpdGh1Yi5jb20vcnVieS9ydWJ5L2Js b2IvZTA5MTViYTY3OTY0ZDg0MzgzMjE0OGFlY2EyOWExZjgyNDRjYTdiMS9lcnJvci5jI0wxOTYy PikNDQoyLiBDYWNoZSByZXN1bHQgb2YgY2FsbGluZyBgI21lc3NhZ2VgIGFmdGVyIHRoZSBmaXJz dCBjYWxsLiBJZGVhbGx5IHRoaXMgc2hvdWxkIGJlIGRvbmUgdG9nZXRoZXIgd2l0aCBzdWdnZXN0 aW9uIDEuDQ0KDQ0KDQ0KDQ0KDQ0KLS0gDQ0KaHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvDQ0K IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KIHJ1YnktY29y ZSBtYWlsaW5nIGxpc3QgLS0gcnVieS1jb3JlQG1sLnJ1YnktbGFuZy5vcmcKIFRvIHVuc3Vic2Ny aWJlIHNlbmQgYW4gZW1haWwgdG8gcnVieS1jb3JlLWxlYXZlQG1sLnJ1YnktbGFuZy5vcmcKIHJ1 YnktY29yZSBpbmZvIC0tIGh0dHBzOi8vbWwucnVieS1sYW5nLm9yZy9tYWlsbWFuMy9wb3N0b3Jp dXMvbGlzdHMvcnVieS1jb3JlLm1sLnJ1YnktbGFuZy5vcmcv