[#110300] [Ruby master Bug#19057] Hide implementation of `rb_io_t`. — "ioquatix (Samuel Williams)" <noreply@...>
SXNzdWUgIzE5MDU3IGhhcyBiZWVuIHJlcG9ydGVkIGJ5IGlvcXVhdGl4IChTYW11ZWwgV2lsbGlh
53 messages
2022/10/15
[ruby-core:110237] [Ruby master Bug#18455] `IO#close` has poor performance and difficult to understand semantics.
From:
"ioquatix (Samuel Williams)" <noreply@...>
Date:
2022-10-08 08:01:01 UTC
List:
ruby-core #110237
SXNzdWUgIzE4NDU1IGhhcyBiZWVuIHVwZGF0ZWQgYnkgaW9xdWF0aXggKFNhbXVlbCBXaWxsaWFt cykuCgoKSSBkaWRuJ3QgcmVhbGlzZSBpdCBidXQgSSBhbHJlYWR5IGZpbGVkIGEgYnVnIGZvciBh IHJhY2UgY29uZGl0aW9uIGluIHRoaXMgYmVoYXZpb3VyIHRvbzogaHR0cHM6Ly9idWdzLnJ1Ynkt bGFuZy5vcmcvaXNzdWVzLzE0NjgxCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCkJ1ZyAjMTg0NTU6IGBJTyNjbG9zZWAgaGFzIHBvb3IgcGVyZm9ybWFuY2UgYW5kIGRp ZmZpY3VsdCB0byB1bmRlcnN0YW5kIHNlbWFudGljcy4KaHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5v cmcvaXNzdWVzLzE4NDU1I2NoYW5nZS05OTUyMQoKKiBBdXRob3I6IGlvcXVhdGl4IChTYW11ZWwg V2lsbGlhbXMpCiogU3RhdHVzOiBPcGVuCiogUHJpb3JpdHk6IE5vcm1hbAoqIEJhY2twb3J0OiAy LjY6IFVOS05PV04sIDIuNzogVU5LTk9XTiwgMy4wOiBVTktOT1dOLCAzLjE6IFVOS05PV04KLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpgSU8jY2xvc2VgIHNob3VsZCBi ZSByZXNwb25zaWJsZSBmb3IgY2xvc2luZyB0aGUgZmlsZSBkZXNjcmlwdG9yIHJlZmVycmVkIHRv IGJ5IHRoZSBJTyBpbnN0YW5jZS4gV2hlbiBkZWFsaW5nIHdpdGggYnVmZmVyZWQgSU8sIG9uZSBj YW4gYWxzbyBleHBlY3QgdGhpcyB0byBmbHVzaCB0aGUgaW50ZXJuYWwgYnVmZmVycyBpZiBwb3Nz aWJsZS4KCkN1cnJlbnRseSwgYWxsIGJsb2NraW5nIElPIG9wZXJhdGlvbnMgcmVsZWFzZSB0aGUg R1ZMIGFuZCBwZXJmb3JtIHRoZSBibG9ja2luZyBzeXN0ZW0gY2FsbCB1c2luZyBgcmJfdGhyZWFk X2lvX2Jsb2NraW5nX3JlZ2lvbmAuIFRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9uIHRha2VzIGEg ZmlsZSBkZXNjcmlwdG9yIGFuZCBhZGRzIGFuIGVudHJ5IHRvIHRoZSBWTSBnbG9iYWwgYHdhaXRp bmdfZmRzYCBsaXN0LiBXaGVuIHRoZSBvcGVyYXRpb24gaXMgY29tcGxldGVkLCB0aGUgZW50cnkg aXMgcmVtb3ZlZCBmcm9tIGB3YWl0aW5nX2Zkc2AuCgpXaGVuIGNhbGxpbmcgYElPI2Nsb3NlYCwg dGhpcyBsaXN0IGlzIHRyYXZlcnNlZCBhbmQgYW55IHRocmVhZHMgcGVyZm9ybWluZyBibG9ja2lu ZyBvcGVyYXRpb25zIHdpdGggYSBtYXRjaGluZyBmaWxlIGRlc2NyaXB0b3IgYXJlIGludGVycnVw dGVkLiBUaGUgcGVyZm9ybWFuY2Ugb2YgdGhpcyBpcyBPKG51bWJlciBvZiBibG9ja2luZyBJTyBv cGVyYXRpb25zKSB3aGljaCBpbiBwcmFjdGljZSB0aGUgcGVyZm9ybWFuY2Ugb2YgYElPI2Nsb3Nl YCBjYW4gdGFrZSBtaWxsaXNlY29uZHMgd2l0aCAxMCwwMDAgdGhyZWFkcyBwZXJmb3JtaW5nIGJs b2NraW5nIElPLiBUaGlzIHBlcmZvcm1hbmNlIGlzIHVuYWNjZXB0YWJsZS4KCmBgYCBydWJ5CiMh L3Vzci9iaW4vZW52IHJ1YnkKCnJlcXVpcmUgJ2JlbmNobWFyaycKCmNsYXNzIFJlYWRpbmcKICBk ZWYgaW5pdGlhbGl6ZQogICAgQHIsIEB3ID0gSU8ucGlwZQoKICAgIEB0aHJlYWQgPSBUaHJlYWQu bmV3IGRvCiAgICAgIEByLnJlYWQKICAgIHJlc2N1ZSBJT0Vycm9yCiAgICAgICMgSWdub3JlLgog ICAgZW5kCiAgZW5kCgogIGF0dHIgOnIKICBhdHRyIDp3CgogIGF0dHIgOnRocmVhZAoKICBkZWYg am9pbgogICAgQHRocmVhZC5qb2luCiAgZW5kCmVuZAoKZGVmIG1lYXN1cmUoY291bnQgPSAxMCkK ICByZWFkaW5ncyA9IGNvdW50LnRpbWVzLm1hcCBkbwogICAgUmVhZGluZy5uZXcKICBlbmQKCiAg c2xlZXAgMTAKCiAgZHVyYXRpb24gPSBCZW5jaG1hcmsubWVhc3VyZSBkbwogICAgcmVhZGluZ3Mu ZWFjaCBkbyB8cmVhZGluZ3wKICAgICAgcmVhZGluZy5yLmNsb3NlCiAgICAgIHJlYWRpbmcudy5j bG9zZQogICAgZW5kCiAgZW5kCgogIGF2ZXJhZ2UgPSAoZHVyYXRpb24udG90YWwgLyBjb3VudCkg KiAxMDAwLjAKICBwcCBjb3VudDogY291bnQsIGF2ZXJhZ2U6IHNwcmludGYoIiUwLjJmbXMiLCBh dmVyYWdlKQoKICByZWFkaW5ncy5lYWNoKCY6am9pbikKZW5kCgptZWFzdXJlKCAgIDEwKQptZWFz dXJlKCAgMTAwKQptZWFzdXJlKCAxMDAwKQptZWFzdXJlKDEwMDAwKQpgYGAKCkluIGFkZGl0aW9u LCB0aGUgc2VtYW50aWNzIG9mIHRoaXMgb3BlcmF0aW9uIGFyZSBjb25mdXNpbmcgYXQgYmVzdC4g V2hpbGUgUnVieSBwcm9ncmFtcyBhcmUgZGVhbGluZyB3aXRoIElPIGluc3RhbmNlcywgdGhlIFZN IGlzIGRlYWxpbmcgd2l0aCBmaWxlIGRlc2NyaXB0b3JzLCBpbiBlZmZlY3QgcGVyZm9ybWluZyBz b21lIGludGVybmFsIGRlLWR1cGxpY2F0aW9uIG9mIElPIHN0YXRlLiBJbiBwcmFjdGljZSwgdGhp cyBsZWFkcyB0byBzdHJhbmdlIGJlaGF2aW91cjoKCmBgYCBydWJ5CiMhL3Vzci9iaW4vZW52IHJ1 YnkKCnIsIHcgPSBJTy5waXBlCnIyID0gSU8uZm9yX2ZkKHIudG9faSkKcHAgcjogciwgcjI6IHIy Cgp0ID0gVGhyZWFkLm5ldyBkbwogIHIyLnJlYWQgcmVzY3VlIG5pbAogIHIyLnJlYWQgIyBFQkFE RgplbmQKCnNsZWVwIDAuNQpyLmNsb3NlCnQuam9pbiByZXNjdWUgbmlsCgpwcCByOiByLCByMjog cjIKIyByIGlzIGNsb3NlZCwgcjIgaXMgdmFsaWQgYnV0IHdpbGwgcmFpc2UgRUJBREYgb24gYW55 IG9wZXJhdGlvbi4KYGBgCgpJbiBhZGRpdGlvbiwgdGhpcyBjb25mdXNpbmcgYmVoYXZpb3VyIGV4 dGVuZHMgdG8gUmFjdG9yIGFuZCBzdGF0ZSBpcyBsZWFrZWQgYmV0d2VlbiB0aGUgdHdvOgoKYGBg IHJ1YnkKciwgdyA9IElPLnBpcGUKCnJhY3RvciA9IFJhY3Rvci5uZXcoci50b19pKSBkbyB8ZmR8 CiAgcjIgPSBJTy5mb3JfZmQoZmQpCiAgcjIucmVhZAogICMgcjIucmVhZCAjIEVCQURGCmVuZAoK c2xlZXAgMC41CnIuY2xvc2UKCnBwIHRha2U6IHJhY3Rvci50YWtlCmBgYAoKSSBwcm9wb3NlIHRo ZSBmb2xsb3dpbmcgY2hhbmdlcyB0byBzaW1wbGlmeSB0aGUgc2VtYW50aWNzIGFuZCBpbXByb3Zl IHBlcmZvcm1hbmNlOgoKLSBNb3ZlIHRoZSBzZW1hbnRpY3Mgb2YgYHdhaXRpbmdfZmRzYCBmcm9t IHBlci1mZCB0byBwZXItSU8uIFRoaXMgbWVhbnMgdGhhdCBgSU8jY2xvc2VgIG9ubHkgaW50ZXJy dXB0cyBibG9ja2luZyBvcGVyYXRpb25zIHBlcmZvcm1lZCBvbiB0aGUgc2FtZSBJTyBpbnN0YW5j ZSByYXRoZXIgdGhhbiBBTlkgSU8gd2hpY2ggcmVmZXJzIHRvIHRoZSBzYW1lIGZpbGUgZGVzY3Jp cHRvci4gSSB0aGluayB0aGlzIGJlaGF2aW91ciBpcyBlYXNpZXIgdG8gdW5kZXJzdGFuZCBhbmQg c3RpbGwgcHJvdGVjdHMgYWdhaW5zdCB0aGUgdmFzdCBtYWpvcml0eSBvZiBpbmNvcnJlY3QgdXNh Z2UuCi0gTW92ZSB0aGUgZGV0YWlscyBvZiBgc3RydWN0IHJiX2lvX3RgIHRvIGBpbnRlcm5hbC9p by5oYCBzbyB0aGF0IHRoZSBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzIGFyZSBub3QgcGFydCBvZiB0 aGUgcHVibGljIGludGVyZmFjZS4KCiMjIEJlbmNobWFya3MKCkJlZm9yZToKCmBgYAp7OmNvdW50 PT4xMCwgOmF2ZXJhZ2U9PiIwLjE5bXMifQp7OmNvdW50PT4xMDAsIDphdmVyYWdlPT4iMC4xMW1z In0Kezpjb3VudD0+MTAwMCwgOmF2ZXJhZ2U9PiIwLjE4bXMifQp7OmNvdW50PT4xMDAwMCwgOmF2 ZXJhZ2U9PiIxLjE2bXMifQpgYGAKCkFmdGVyOgoKYGBgCns6Y291bnQ9PjEwLCA6YXZlcmFnZT0+ IjAuMjBtcyJ9Cns6Y291bnQ9PjEwMCwgOmF2ZXJhZ2U9PiIwLjExbXMifQp7OmNvdW50PT4xMDAw LCA6YXZlcmFnZT0+IjAuMTVtcyJ9Cns6Y291bnQ9PjEwMDAwLCA6YXZlcmFnZT0+IjAuNjhtcyJ9 CmBgYAoKQWZ0ZXIgaW52ZXN0aWdhdGluZyB0aGlzIGZ1cnRoZXIgSSBmb3VuZCB0aGF0IHRoZSBg cmJfdGhyZWFkX2lvX2Jsb2NraW5nX3JlZ2lvbmAgdXNpbmcgYHViZl9zZWxlY3RgIGNhbiBiZSBp bmNyZWRpYmx5IHNsb3csIHByb3BvcnRpb25hbCB0byB0aGUgbnVtYmVyIG9mIHRocmVhZHMuIEkg ZG9uJ3Qga25vdyB3aGV0aGVyIGl0J3MgYWR2aXNhYmxlIGJ1dDoKCmBgYCBjCiAgICAgICAgQkxP Q0tJTkdfUkVHSU9OKGJsb2NraW5nX25vZGUudGhyZWFkLCB7CiAgICAgICAgICAgIHZhbCA9IGZ1 bmMoZGF0YTEpOwogICAgICAgICAgICBzYXZlZF9lcnJubyA9IGVycm5vOwogICAgICAgIH0sIE5V TEwgLyogdWJmX3NlbGVjdCAqLywgYmxvY2tpbmdfbm9kZS50aHJlYWQsIEZBTFNFKTsKYGBgCgpE aXNhYmxpbmcgdGhlIFVCRiBmdW5jdGlvbiBhbmQgcmVseWluZyBvbiBgcmVhZChmZCwgLi4uKWAv YHdyaXRlKGZkLCAuLi4pYCBibG9ja2luZyBvcGVyYXRpb25zIHRvIGZhaWwgd2hlbiBgY2xvc2Uo ZmQpYCBpcyBpbnZva2VkIG1pZ2h0IGJlIHN1ZmZpY2llbnQ/IFRoaXMgbmVlZHMgbW9yZSBpbnZl c3RpZ2F0aW9uIGJ1dCBhZnRlciBtYWtpbmcgdGhpcyBjaGFuZ2UsIHdlIGhhdmUgY29uc3RhbnQt dGltZSBJTyNjbG9zZS4KCmBgYAp7OmNvdW50PT4xMCwgOmF2ZXJhZ2U9PiIwLjEzbXMifQp7OmNv dW50PT4xMDAsIDphdmVyYWdlPT4iMC4wNm1zIn0Kezpjb3VudD0+MTAwMCwgOmF2ZXJhZ2U9PiIw LjA0bXMifQp7OmNvdW50PT4xMDAwMCwgOmF2ZXJhZ2U9PiIwLjA5bXMifQpgYGAKCldoaWNoIGlz IGlkZWFsbHkgd2hhdCB3ZSB3YW50LgoKCgotLSAKaHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcv CgpVbnN1YnNjcmliZTogPG1haWx0bzpydWJ5LWNvcmUtcmVxdWVzdEBydWJ5LWxhbmcub3JnP3N1 YmplY3Q9dW5zdWJzY3JpYmU+CjxodHRwOi8vbGlzdHMucnVieS1sYW5nLm9yZy9jZ2ktYmluL21h aWxtYW4vb3B0aW9ucy9ydWJ5LWNvcmU+Cg==