[ruby-core:123497] [Ruby Feature#21642] Introduce `IO::ConnectionResetError` and `IO::BrokenPipeError` as standardized IO-level exceptions.
From:
"mame (Yusuke Endoh) via ruby-core" <ruby-core@...>
Date:
2025-10-20 00:55:01 UTC
List:
ruby-core #123497
SXNzdWUgIzIxNjQyIGhhcyBiZWVuIHVwZGF0ZWQgYnkgbWFtZSAoWXVzdWtlIEVuZG9oKS4NCg0K DQpJIHN5bXBhdGhpemUgd2l0aCB0aGlzIHByb3Bvc2FsLiBIYXZpbmcgdG8gcmVzY3VlIGEgd2lk ZSB2YXJpZXR5IG9mIGV4Y2VwdGlvbnMgaXMgYSBjb21tb24gcGFpbiBwb2ludCwgZXNwZWNpYWxs eSB3aGVuIHdyaXRpbmcgYXBwbGljYXRpb25zIGxpa2UgY2hhdGJvdHMuDQoNCkkgYmVsaWV2ZSB0 aGUgYmVzdCBhcHByb2FjaCBpcyB0byBjbGFzc2lmeSBleGNlcHRpb25zIGJhc2VkIG9uIHRoZSBy ZXF1aXJlZCB1c2VyIGFjdGlvbiwgcmF0aGVyIHRoYW4gYnkgdGhlaXIgdW5kZXJseWluZyBjYXVz ZS4NCg0KVGhlIGV4aXN0aW5nIGBJTzo6V2FpdFJlYWRhYmxlYCBhbmQgYElPOjpXYWl0V3JpdGFi bGVgIG1vZHVsZXMgYXJlIGV4Y2VsbGVudCBwcmVjZWRlbnRzIGZvciB0aGlzIHByaW5jaXBsZS4g VGhleSB1bmlmeSB2YXJpb3VzIHVuZGVybHlpbmcgZXhjZXB0aW9ucyAoZS5nLiwgYEVycm5vOjpF QUdBSU5gLCBgRXJybm86OkVXT1VMREJMT0NLYCwgYE9wZW5TU0w6OlNTTEVycm9yV2FpdFJlYWRh YmxlYCkgdW5kZXIgYSBzaW5nbGUgY29uY2VwdC4gSW4gYWxsIHRoZXNlIGNhc2VzLCB0aGUgdXNl cidzIGFjdGlvbiBpcyB0aGUgc2FtZTogd2FpdCBmb3IgdGhlIElPIG9iamVjdCB0byBiZWNvbWUg cmVhZHkuIFRoaXMgaXMgYSB2ZXJ5IHJhdGlvbmFsIGFwcHJvYWNoLg0KDQpBcHBseWluZyB0aGlz IHNhbWUgbG9naWMgdG8gYENvbm5lY3Rpb25SZXNldEVycm9yYCBhbmQgYEJyb2tlblBpcGVFcnJv cmAsIHRoZSB1c2VyJ3MgcmVzcG9uc2UgaXMgYWxtb3N0IGFsd2F5cyB0byB0cmVhdCB0aGUgY29u bmVjdGlvbiBhcyB1bnJlY292ZXJhYmxlIGFuZCBjYWxsIGBJTyNjbG9zZWAuIFRvIHBhcmFsbGVs IHRoZSBuYW1pbmcgY29udmVudGlvbiBvZiBgSU86OldhaXRSZWFkYWJsZWAgKHdoaWNoIGlzIGJh c2VkIG9uIHRoZSBhY3Rpb24gIndhaXQiKSwgYSBuYW1lIGxpa2UgYElPOjpDbG9zZWAgb3IgYElP OjpDbG9zZVVucmVjb3ZlcmFibGVgIHNlZW1zIGxpa2UgYSBjb25zaXN0ZW50IGFuZCBkZXNjcmlw dGl2ZSBjaG9pY2UsIGFzIGl0IGRpcmVjdGx5IHJlZmxlY3RzIHRoZSByZXF1aXJlZCBhY3Rpb24g ImNsb3NlIi4gV2hpbGUgdGhlIGV4YWN0IG5hbWUgaXMgY2VydGFpbmx5IG9wZW4gZm9yIGRpc2N1 c3Npb24sIGl0IGZvbGxvd3MgdGhpcyBlc3RhYmxpc2hlZCBwYXR0ZXJuLg0KDQpGdXJ0aGVybW9y ZSwgSSBiZWxpZXZlIHVzaW5nIHRoaXMgc2hvdWxkIGJlIGFuIGluY2x1ZGFibGUgbW9kdWxlIHJh dGhlciB0aGFuIHBhcnQgb2YgYSBjbGFzcyBoaWVyYXJjaHksIG1pcnJvcmluZyB0aGUgZGVzaWdu IG9mIGBJTzo6V2FpdFJlYWRhYmxlYC4gQ2hhbmdpbmcgZXhpc3RpbmcgY29kZSB0aGF0IHJhaXNl cyBgT3BlblNTTDo6U1NMOjpTU0xFcnJvcmAgdG8gcmFpc2UgYSBkaWZmZXJlbnQgZXhjZXB0aW9u IGNsYXNzIHdvdWxkIGJlIGEgbWFqb3IgYmFja3dhcmQgaW5jb21wYXRpYmlsaXR5LiBBIG11Y2gg c2FmZXIgYXBwcm9hY2ggd291bGQgYmUgdG8gaGF2ZSBgT3BlblNTTDo6U1NMOjpTU0xFcnJvcmAg c2ltcGxlIGBpbmNsdWRlYCB0aGUgYElPOjpDbG9zZVVucmVjb3ZlcmFibGVgIG1vZHVsZS4NCg0K LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KRmVhdHVyZSAjMjE2NDI6 IEludHJvZHVjZSBgSU86OkNvbm5lY3Rpb25SZXNldEVycm9yYCBhbmQgYElPOjpCcm9rZW5QaXBl RXJyb3JgIGFzIHN0YW5kYXJkaXplZCBJTy1sZXZlbCBleGNlcHRpb25zLg0KaHR0cHM6Ly9idWdz LnJ1YnktbGFuZy5vcmcvaXNzdWVzLzIxNjQyI2NoYW5nZS0xMTQ4NzANCg0KKiBBdXRob3I6IGlv cXVhdGl4IChTYW11ZWwgV2lsbGlhbXMpDQoqIFN0YXR1czogT3Blbg0KLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KQ3VycmVudGx5LCBkaWZmZXJlbnQgSU8gaW1wbGVt ZW50YXRpb25zIGluIFJ1YnkgcmFpc2UgaW5jb25zaXN0ZW50IGV4Y2VwdGlvbiB0eXBlcyB3aGVu IGEgY29ubmVjdGlvbiBpcyByZXNldCBvciBicm9rZW4uDQoNCkZvciBleGFtcGxlOg0KDQpgYGBy dWJ5DQojIFBsYWluIFRDUCBzb2NrZXQ6DQpzb2NrZXQucmVhZF9ub25ibG9jaygxMDI0KQ0KIyA9 PiBFcnJubzo6RUNPTk5SRVNFVA0KDQojIFNTTCBzb2NrZXQ6DQpzc2xfc29ja2V0LnJlYWRfbm9u YmxvY2soMTAyNCkNCiMgPT4gT3BlblNTTDo6U1NMOjpTU0xFcnJvcjogU1NMX3JlYWQ6IHVuZXhw ZWN0ZWQgZW9mIHdoaWxlIHJlYWRpbmcNCmBgYA0KDQpCb3RoIHJlcHJlc2VudCBhICpjb25uZWN0 aW9uIHJlc2V0IGJ5IHBlZXIqLCBidXQgdGhlIGVycm9ycyBkaWZmZXIgc2lnbmlmaWNhbnRseSBp biB0eXBlIGFuZCBtZXNzYWdlLg0KVGhpcyBpbmNvbnNpc3RlbmN5IG1ha2VzIGl0IGRpZmZpY3Vs dCB0byBoYW5kbGUgY29ubmVjdGlvbi1sZXZlbCBlcnJvcnMgZ2VuZXJpY2FsbHkgYWNyb3NzIElP IHR5cGVzLg0KDQpTaW1pbGFybHksIGBFUElQRWAgaXMgdXNlZCBpbiBzb21lIGNvbnRleHRzIHRv IHNpZ25hbCBhICpicm9rZW4gY29ubmVjdGlvbiosIGJ1dCBhZ2FpbiwgdGhlIHJlcHJlc2VudGF0 aW9uIGFuZCBtZXNzYWdlIGRpZmZlciBiZXR3ZWVuIElPIGNsYXNzZXMuDQoNCiMjIyBQcm9wb3Nh bA0KDQpJbnRyb2R1Y2UgZXhwbGljaXQgc3ViY2xhc3NlcyBvZiB0aGUgY29ycmVzcG9uZGluZyBz eXN0ZW0gZXJyb3JzIGFzIHBhcnQgb2YgUnVieeKAmXMgc3RhbmRhcmQgSU8gaW50ZXJmYWNlOg0K DQpgYGBydWJ5DQpjbGFzcyBJTw0KICBjbGFzcyBDb25uZWN0aW9uUmVzZXRFcnJvciA8IEVycm5v OjpFQ09OTlJFU0VUOyBlbmQNCiAgY2xhc3MgQnJva2VuUGlwZUVycm9yIDwgRXJybm86OkVQSVBF OyBlbmQNCmVuZA0KYGBgDQoNClRoZW4sIHN0YW5kYXJkaXplIHRoZSBSdWJ5IEkvTyBlY29zeXN0 ZW0gKGluY2x1ZGluZyBPcGVuU1NMKSB0byByYWlzZSB0aGVzZSBzdWJjbGFzc2VzIGluc3RlYWQg b2YgcmF3IHN5c3RlbSBlcnJvcnMgb3IgbGlicmFyeS1zcGVjaWZpYyBlcnJvciB3cmFwcGVycy4N Cg0KVGhpcyB3b3VsZCBlc3RhYmxpc2ggYSBjb25zaXN0ZW50LCB3ZWxsLWRlZmluZWQgcHVibGlj IGludGVyZmFjZSBmb3IgaGFuZGxpbmcgY29ubmVjdGlvbi1sZXZlbCBmYWlsdXJlcy4NCg0KIyMj IE1vdGl2YXRpb24NCg0KKiAqKkNvbnNpc3RlbmN5OioqIFVzZXJzIGNhbiBoYW5kbGUgYElPOjpD b25uZWN0aW9uUmVzZXRFcnJvcmAgYWNyb3NzIGBJT2AsIGBUQ1BTb2NrZXRgLCBgT3BlblNTTDo6 U1NMOjpTU0xTb2NrZXRgLCBhbmQgb3RoZXIgSU8tbGlrZSBvYmplY3RzLg0KKiAqKkNsYXJpdHk6 KiogVGhlIG5hbWUgY2xlYXJseSBleHByZXNzZXMgYSBoaWdoLWxldmVsIHNlbWFudGljICjigJxj b25uZWN0aW9uIHJlc2V04oCdKSByYXRoZXIgdGhhbiBhIGxvdy1sZXZlbCBzeXN0ZW0gZXJyb3Iu DQoqICoqRXh0ZW5zaWJpbGl0eToqKiBPdGhlciBSdWJ5IElPIGltcGxlbWVudGF0aW9ucyAoY3Vz dG9tIHNvY2tldHMsIHBpcGVzLCBldGMuKSBjYW4gZm9sbG93IHRoZSBzYW1lIGNvbnZlbnRpb24u DQoqICoqQmFja3dhcmRzIENvbXBhdGliaWxpdHk6KiogQmVjYXVzZSBgSU86OkNvbm5lY3Rpb25S ZXNldEVycm9yIDwgRXJybm86OkVDT05OUkVTRVRgLCBleGlzdGluZyByZXNjdWUgY2xhdXNlcyBj b250aW51ZSB0byB3b3JrOg0KDQogIGBgYHJ1YnkNCiAgcmVzY3VlIEVycm5vOjpFQ09OTlJFU0VU DQogICAgIyBzdGlsbCBjYXRjaGVzIGl0DQogIGVuZA0KICBgYGANCg0KIyMjIEV4YW1wbGVzDQoN CmBgYHJ1YnkNCmJlZ2luDQogIGlvLnJlYWRfbm9uYmxvY2soMTAyNCkNCnJlc2N1ZSBJTzo6Q29u bmVjdGlvblJlc2V0RXJyb3INCiAgcHV0cyAiQ29ubmVjdGlvbiB3YXMgcmVzZXQgYnkgcGVlci4i DQplbmQNCmBgYA0KDQojIyMgSW1wYWN0IG9uIGV4aXN0aW5nIGNvZGUNCg0KKiBNaW5pbWFsIHRv IG5vbmUuDQoqIEV4aXN0aW5nIGNvZGUgdGhhdCByZXNjdWVzIGBFcnJubzo6RUNPTk5SRVNFVGAg b3IgYEVycm5vOjpFUElQRWAgd2lsbCBjb250aW51ZSB0byBmdW5jdGlvbi4NCiogRnV0dXJlIGNv ZGUgZ2FpbnMgYSBtb3JlIHNlbWFudGljIGFuZCBwb3J0YWJsZSB3YXkgdG8gaGFuZGxlIHRoZXNl IGNvbW1vbiBmYWlsdXJlIG1vZGVzLg0KDQoNCg0KDQotLSANCmh0dHBzOi8vYnVncy5ydWJ5LWxh bmcub3JnLw0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwog cnVieS1jb3JlIG1haWxpbmcgbGlzdCAtLSBydWJ5LWNvcmVAbWwucnVieS1sYW5nLm9yZwogVG8g dW5zdWJzY3JpYmUgc2VuZCBhbiBlbWFpbCB0byBydWJ5LWNvcmUtbGVhdmVAbWwucnVieS1sYW5n Lm9yZwogcnVieS1jb3JlIGluZm8gLS0gaHR0cHM6Ly9tbC5ydWJ5LWxhbmcub3JnL21haWxtYW4z L2xpc3RzL3J1YnktY29yZS5tbC5ydWJ5LWxhbmcub3JnLwo=