[ruby-core:112648] [Ruby master Bug#19378] Windows: Use less syscalls for faster require of big gems
From:
"MSP-Greg (Greg L) via ruby-core" <ruby-core@...>
Date:
2023-03-01 22:12:25 UTC
List:
ruby-core #112648
SXNzdWUgIzE5Mzc4IGhhcyBiZWVuIHVwZGF0ZWQgYnkgTVNQLUdyZWcgKEdyZWcgTCkuDQ0KDQ0K DQ0KSnVzdCB0byBiZSBjbGVhciwgdGhpcyBpc3N1ZSBhZmZlY3RzIGFsbCBXaW5kb3dzIE1SSSBw bGF0Zm9ybXMsIHNvIGJvdGggbXN3aW42NCBhbmQgbWluZ3czMiAobWluZ3cgJiB1Y3J0IGJ1aWxk cykgYXJlIGFmZmVjdGVkLg0NCg0NCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0NDQpCdWcgIzE5Mzc4OiBXaW5kb3dzOiBVc2UgbGVzcyBzeXNjYWxscyBmb3IgZmFzdGVy IHJlcXVpcmUgb2YgYmlnIGdlbXMNDQpodHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy9pc3N1ZXMv MTkzNzgjY2hhbmdlLTEwMjA5Nw0NCg0NCiogQXV0aG9yOiBhaWRvZyAoQW5kaSBJZG9nYXdhKQ0N CiogU3RhdHVzOiBBc3NpZ25lZA0NCiogUHJpb3JpdHk6IE5vcm1hbA0NCiogQXNzaWduZWU6IHdp bmRvd3MNDQoqIHJ1YnkgLXY6IDMuMi4wDQ0KKiBCYWNrcG9ydDogMi43OiBVTktOT1dOLCAzLjA6 IFVOS05PV04sIDMuMTogVU5LTk9XTiwgMy4yOiBVTktOT1dODQ0KLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0NCkhlbGxvIPCfmYINDQoNDQojIyBQcm9ibGVtDQ0KcmVx dWlyZSBpcyBzbG93IG9uIHdpbmRvd3MgZm9yIGJpZyBnZW1zLiAoZXhhbXBsZTogcmVxdWlyZSAn Z3RrMyc9PiAzIHNlY29uZHMrKS4gVGhpcyBpcyBhIHByb2JsZW0gZm9yIHBlb3BsZSB3aG8gd2Fu dCB0byBtYWtlIGNyb3NzIHBsYXRmb3JtIEdVSSBhcHBzIHdpdGggcnVieS4NDQoNDQojIyBQb3Nz aWJsZSBSZWFzb24NDQpBcyB0b3VjaGVkIG9uIGluIFsjMTU3OTddKGh0dHBzOi8vYnVncy5ydWJ5 LWxhbmcub3JnL2lzc3Vlcy8xNTc5NykgaXQgc2VlbXMgbGlrZSByZXF1aXJlIHVzZXMgcmVhbHBh dGgsIHdoaWNoIGlzIGVtdWxhdGVkIG9uIHdpbmRvd3MuIEl0IGNoZWNrcyBldmVyeSBwYXJlbnQg ZGlyZWN0b3J5LiBUaGUgc2FtZSBzeXNjYWxscyBydW4gbWFueSB0aW1lcy4NDQoNDQojIyBUZXN0 ZmlsZQ0NCg0NCkM6XHRtcFxzcGVlZHRlc3RcdGVzdHJlcXVpcmUucmI6DQ0KDQ0KYGBgIHJ1YnkN DQpyZXF1aXJlIF9fZGlyX18gKyAiL2hlbGxvd29ybGQxLnJiIg0NCnJlcXVpcmUgX19kaXJfXyAr ICIvaGVsbG93b3JsZDIucmIiDQ0KYGBgDQ0KDQ0KYGBgIHNoZWxsDQ0KcnVieSAtLWRpc2FibGUt Z2VtcyBDOlx0bXBcc3BlZWR0ZXN0XHRlc3RyZXF1aXJlLnJiDQ0KYGBgDQ0KDQ0KIyMjIFN5c2Nh bGxzIHBlciBGaWxlL0RpcmVjdG9yeTogDQ0KMS4gQ3JlYXRlRmlsZQ0NCjIuIFF1ZXJ5SW5mb3Jt YXRpb25Wb2x1bWUNDQozLiBRdWVyeUlkSW5mb3JtYXRpb24NDQo0LiBRdWVyeUFsbEluZm9ybWF0 aW9uRmlsZQ0NCjUuIFF1ZXJ5TmFtZUluZm9ybWF0aW9uRmlsZQ0NCjYuIFF1ZXJ5TmFtZUluZm9y bWF0aW9uRmlsZQ0NCjcuIFF1ZXJ5Tm9ybWFsaXplZE5hbWVJbmZvcm1hdGlvbkZpbGUNDQo4LiBD bG9zZUZpbGUNDQoNDQojIyMgRmlsZXMvRGlyZWN0b3JpZXMgY2hlY2tlZA0NCjEuIEM6XHRtcCAN DQoyLiBDOlx0bXBcc3BlZWR0ZXN0DQ0KMy4gQzpcdG1wXHNwZWVkdGVzdFxoZWxsb3dvcmxkMS5y Yg0NCjQuIEM6XHRtcA0NCjUuIEM6XHRtcFxzcGVlZHRlc3QNDQo2LiBDOlx0bXBcc3BlZWR0ZXN0 XGhlbGxvd29ybGQyLnJiDQ0KDQ0KRm9yIHR3byByZXF1aXJlZCBmaWxlcyBSdWJ5IGhhZCB0byBk byA4KjYgPSAqKjQ4KiogIHN5c2NhbGxzLg0NClRoZSBzeXNjYWxscyBvcmdpbmF0ZSBmcm9tIHJi X3czMl9yZXBhcnNlX3N5bWxpbmtfcCAvIGxzdGF0DQ0KDQ0KUnVieWdlbXMgbGl2ZSBpbiBzdWJm b2xkZXJzIHdpdGggOSsgcGFydHM6ICJDOlxSdWJ5MzIteDY0XGxpYlxydWJ5XGdlbXNcMy4yLjBc Z2Vtc1xnbGliMi00LjAuOFxsaWJcZ2xpYjJcdmFyaWFudC5yYiINDQpFYWNoIGZpbGUgdGFrZXMg OCAqIDkgPSAqKjcyKiorIGNhbGxzLiBGb3IgdmFyaWFudC5yYiBpdCBpcyAqKjgwKiogIGNhbGxz Lg0NClRoZSByZXN1bHQgZm9yIHRoZSBzeXNjYWxscyBkb24ndCBjaGFuZ2UgaW4gc3VjaCBhIHNo b3J0IHRpbWUsIHNvIGl0IHNob3VsZCBiZSBwb3NzaWJsZSB0byBjYWNoZSBpdC4NDQoNDQpXaXRo IHJlcXVpcmVfcmVsYXRpdmUgaXQncyB0d2ljZSBhcyBtYW55IGNhbGxzLg0NCg0NCiMjIE90aGVy IHRlc3RjYXNlcw0NCg0NClNhbWUgcmVzdWx0OiANDQpgYGAgcnVieQ0NCkZpbGUucmVhbHBhdGgg X19kaXJfXyArICIvaGVsbG93b3JsZDEucmIiDQ0KRmlsZS5yZWFscGF0aCBfX2Rpcl9fICsgIi9o ZWxsb3dvcmxkMi5yYiINDQpgYGANDQpgYGAgcnVieQ0NCkZpbGUuc3RhdCBfX2Rpcl9fICsgIi9o ZWxsb3dvcmxkMS5yYiINDQpGaWxlLnN0YXQgX19kaXJfXyArICIvaGVsbG93b3JsZDIucmIiDQ0K YGBgDQ0KSXQgZG9lcyBub3QgaGFwcGVuIGluICRMT0FEX1BBVEgucmVzb2x2ZV9mZWF0dXJlX3Bh dGgoX19kaXJfXyArICIvaGVsbG93b3JsZDEucmIiKQ0NCg0NCg0NCg0NCiMjIFJlcXVlc3QgDQ0K DQ0KV291bGQgaXQgYmUgcG9zc2libGUgdG8gY2FjaGUgdGhlIHN0YXQgY2FsbHMgd2hlbiB1c2lu ZyByZXF1aXJlPw0NCkkgdHJpZWQgdG8gaW1wbGVtZW50IGEgY2FjaGUgaW5zaWRlIHRoZSBydWJ5 IHNvdXJjZSBjb2RlLCBidXQgZmFpbGVkLg0NCklmIG5vdCwgaXMgdGhlcmUgbm93IGEgd2F5IHRv IGNvbWJpbmUgcnVieSBmaWxlcyBpbnRvIG9uZT8NDQoNDQpJIHByZXZpb3VzbHkgdGFsa2VkIGFi b3V0IHJlcXVpcmUgaGVyZTogW1lKSVQ6IFdpbmRvd3Mgc3VwcG9ydCBsYWNraW5nLl0oaHR0cHM6 Ly9idWdzLnJ1YnktbGFuZy5vcmcvaXNzdWVzLzE5MzI1I25vdGUtMTEpDQ0KDQ0KIyMgSG93IHRv IHJlcHJvZHVjZSANDQpSdWJ5IHZlcnNpb25zOiBBdCBsZWFzdCAzLjArLCBtb3N0IGxpa2VseSBv bGRlciBvbmVzIHRvby4NDQpUZXN0ZWQgdXNpbmcgUnVieSBJbnN0YWxsZXIgMy4xIGFuZCAzLjIu DQ0KW1Byb2Ntb24gU29mdHdhcmUgYnkgU3lzaW50ZXJuYWxzXShodHRwczovL2xlYXJuLm1pY3Jv c29mdC5jb20vZW4tdXMvc3lzaW50ZXJuYWxzL2Rvd25sb2Fkcy9wcm9jbW9uKQ0NCg0NCg0NCi0t LUZpbGVzLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NDQp3aW5kb3dzLW5vLXJlYWxw YXRoLXJlcXVpcmUucGF0Y2ggKDk5MiBCeXRlcykNDQp3aW5kb3dzLXJldmVydC03OWE0NDg0YS5w YXRjaCAoNS40MiBLQikNDQoNDQoNDQotLSANDQpodHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy8N DQogX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwogcnVieS1j b3JlIG1haWxpbmcgbGlzdCAtLSBydWJ5LWNvcmVAbWwucnVieS1sYW5nLm9yZwogVG8gdW5zdWJz Y3JpYmUgc2VuZCBhbiBlbWFpbCB0byBydWJ5LWNvcmUtbGVhdmVAbWwucnVieS1sYW5nLm9yZwog cnVieS1jb3JlIGluZm8gLS0gaHR0cHM6Ly9tbC5ydWJ5LWxhbmcub3JnL21haWxtYW4zL3Bvc3Rv cml1cy9saXN0cy9ydWJ5LWNvcmUubWwucnVieS1sYW5nLm9yZy8=