[#110300] [Ruby master Bug#19057] Hide implementation of `rb_io_t`. — "ioquatix (Samuel Williams)" <noreply@...>
SXNzdWUgIzE5MDU3IGhhcyBiZWVuIHJlcG9ydGVkIGJ5IGlvcXVhdGl4IChTYW11ZWwgV2lsbGlh
53 messages
2022/10/15
[ruby-core:110463] [Ruby master Feature#19061] Proposal: make a concept of "consuming enumerator" explicit
From:
"zverok (Victor Shepelev)" <noreply@...>
Date:
2022-10-21 12:11:57 UTC
List:
ruby-core #110463
SXNzdWUgIzE5MDYxIGhhcyBiZWVuIHVwZGF0ZWQgYnkgenZlcm9rIChWaWN0b3IgU2hlcGVsZXYp LgoKCkBrbnUgCgpSZToKPiAiQnV0IEknbSBza2VwdGljYWwgYWJvdXQgdGhlIHVzZWZ1bG5lc3Mg b2YgdGhlIGBjb25zdW1pbmc/YCBmbGFnIiAoZnJvbSBkZXYubG9nKQoKSSBiZWxpZXZlIGl0IGlz IGV4dHJlbWVseSB1c2VmdWwgZm9yIGludHJvc3BlY3Rpb24uIEZvciBleGFtcGxlIHRoZSBtZXRo b2QgbGlrZSBzaG93biBpbiB0aGUgb3JpZ2luYWwgdGlja2V0OgpgYGBydWJ5CmRlZiBwYXJzZShl bnVtZXJhdG9yKQogIHB1dHMgIlRlc3Rpbmc6ICN7ZW51bWVyYXRvci5pbnNwZWN0fSIKICBlbnVt ZXJhdG9yLm5leHQKICBwIGVudW1lcmF0b3IudGFrZV93aGlsZSB7ICFfMS5lbXB0eT8gfQogIHAg ZW51bWVyYXRvci50b19hCmVuZApgYGAKLi4ud2lsbCB3b3JrIHByb3Blcmx5IChlbnVtZXJhdG9y Lm5leHQgYW5kIGVudW1lcmF0b3IudGFrZVtfd2hpbGVdIGFkdmFuY2UgdGhlIGVudW1lcmF0b3Ip IHdpdGggYSBjb25zdW1pbmcgZW51bWVyYXRvciBhbmQgc3VycHJpc2luZ2x5IHdpdGggYSBub24t Y29uc3VtaW5nLiBBcyBpdCBpcyB0b28gbGF0ZSB0byBtYWtlIGFsbCBlbnVtZXJhdG9ycyBjb25z dW1pbmcgOiksIGF0IGxlYXN0IHRoZSBwcmVzZW5jZSBvZiB0aGUgZXhwbGljaXQgbm90aW9uIG9m ICJjb25zdW1pbmctbmVzcyIgd2lsbCBtYWtlIGl0IHNvbWVob3cgZWFzaWVyIHRvIGV4cGxhaW4g YW5kIHVuZGVyc3RhbmQuIAoKQW5kIGFsc28gYWRqdXN0IHdoZW4gbmVlZGVkIHdpdGggYGVudW1l cmF0b3IgPSBlbnVtZXJhdG9yLmNvbnN1bWluZyB1bmxlc3MgZW51bWVyYXRvci5jb25zdW1pbmc/ YCBvciBzb21ldGhpbmcuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CkZlYXR1cmUgIzE5MDYxOiBQcm9wb3NhbDogbWFrZSBhIGNvbmNlcHQgb2YgImNvbnN1bWluZyBl bnVtZXJhdG9yIiBleHBsaWNpdApodHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy9pc3N1ZXMvMTkw NjEjY2hhbmdlLTk5NzgzCgoqIEF1dGhvcjogenZlcm9rIChWaWN0b3IgU2hlcGVsZXYpCiogU3Rh dHVzOiBPcGVuCiogUHJpb3JpdHk6IE5vcm1hbAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCioqVGhlIHByb2JsZW0qKgoKTGV0J3MgaW1hZ2luZSB0aGlzIHN5bnRoZXRp YyBkYXRhOgpgYGBydWJ5CmxpbmVzID0gWwogICItLUVNQUlMLS0iLAogICJGcm9tOiB6dmVyb2su b2ZmbGluZUBnbWFpbC5jb20iLAogICJUbzsgYnVnc0BydWJ5LWxhbmcub3JnIiwKICAiU3ViamVj dDogQ29uc3VtaW5nIEVudW1lcmF0b3JzIiwKICAiIiwKICAiSGVyZSwgSSBhbSBwcmVzZW50aW5n IHRoZSBmb2xsb3dpbmcgcHJvcG9zYWwuIiwKICAiTGV0J3MgdGFsayBhYm91dCBjb25zdW1pbmcg ZW51bWVyYXRvcnMuLi4iCl0KYGBgClRoZSBsb2dpYyBvZiBwYXJzaW5nIGl0IGlzIG1vcmUgb3Ig bGVzcyBjbGVhcjoKKiBza2lwIHRoZSBmaXJzdCBsaW5lCiogdGFrZSBsaW5lcyB1bnRpbCBtZWV0 IGVtcHR5LCB0byByZWFkIHRoZSBoZWFkZXIKKiB0YWtlIHRoZSByZXN0IG9mIHRoZSBsaW5lcyB0 byByZWFkIHRoZSBib2R5CgpJdCBjYW4gYmUgZWFzaWx5IHRyYW5zbGF0ZWQgaW50byBSdWJ5IGNv ZGUsIGFsbW9zdCBsaXRlcmFsbHk6CmBgYHJ1YnkKZGVmIHBhcnNlKGVudW1lcmF0b3IpCiAgcHV0 cyAiVGVzdGluZzogI3tlbnVtZXJhdG9yLmluc3BlY3R9IgogIGVudW1lcmF0b3IubmV4dAogIHAg ZW51bWVyYXRvci50YWtlX3doaWxlIHsgIV8xLmVtcHR5PyB9CiAgcCBlbnVtZXJhdG9yLnRvX2EK ZW5kCmBgYAoKTm93LCBsZXQncyB0cnkgdGhpcyBjb2RlIHdpdGggdHdvIGRpZmZlcmVudCBlbnVt ZXJhdG9ycyBvbiB0aG9zZSBsaW5lczoKYGBgcnVieQpyZXF1aXJlICdzdHJpbmdpbycKCmVudW1l cmF0b3IxID0gbGluZXMuZWFjaAplbnVtZXJhdG9yMiA9IFN0cmluZ0lPLm5ldyhsaW5lcy5qb2lu KCJcbiIpKS5lYWNoX2xpbmUoY2hvbXA6IHRydWUpCgpwdXRzICJBcnJheSNlYWNoIgpwYXJzZShl bnVtZXJhdG9yMSkKCnB1dHMKcHV0cyAiU3RyaW5nSU8jZWFjaF9saW5lIgpwYXJzZShlbnVtZXJh dG9yMikKYGBgCk91dHB1dCAoYXMgeW91IHByb2JhYmx5IGFscmVhZHkgZ3Vlc3NlZCk6CmBgYApB cnJheSNlYWNoClRlc3Rpbmc6ICM8RW51bWVyYXRvcjogWy4uLl06ZWFjaD4KWyItLUVNQUlMLS0i LCAiRnJvbTogenZlcm9rLm9mZmxpbmVAZ21haWwuY29tIiwgIlRvOyBidWdzQHJ1YnktbGFuZy5v cmciLCAiU3ViamVjdDogQ29uc3VtaW5nIEVudW1lcmF0b3JzIl0KWyItLUVNQUlMLS0iLCAiRnJv bTogenZlcm9rLm9mZmxpbmVAZ21haWwuY29tIiwgIlRvOyBidWdzQHJ1YnktbGFuZy5vcmciLCAi U3ViamVjdDogQ29uc3VtaW5nIEVudW1lcmF0b3JzIiwgIiIsICJIZXJlLCBJIGFtIHByZXNlbnRp bmcgdGhlIGZvbGxvd2luZyBwcm9wb3NhbC4iLCAiTGV0J3MgdGFsayBhYm91dCBjb25zdW1pbmcg ZW51bWVyYXRvcnMuLi4iXQoKU3RyaW5nSU8jZWFjaF9saW5lClRlc3Rpbmc6ICM8RW51bWVyYXRv cjogIzxTdHJpbmdJTzoweDAwMDA1NTgxMDE4YzUwYTA+OmVhY2hfbGluZShjaG9tcDogdHJ1ZSk+ ClsiRnJvbTogenZlcm9rLm9mZmxpbmVAZ21haWwuY29tIiwgIlRvOyBidWdzQHJ1YnktbGFuZy5v cmciLCAiU3ViamVjdDogQ29uc3VtaW5nIEVudW1lcmF0b3JzIl0KWyJIZXJlLCBJIGFtIHByZXNl bnRpbmcgdGhlIGZvbGxvd2luZyBwcm9wb3NhbC4iLCAiTGV0J3MgdGFsayBhYm91dCBjb25zdW1p bmcgZW51bWVyYXRvcnMuLi4iXQpgYGAKCk9ubHkgdGhlIHNlY29uZCBlbnVtZXJhdG9yIGJlaGF2 ZXMgdGhlIHdheSB3ZSB3YW50ZWQgaXQgdG8uClRoaW5ncyB0byBub3RpY2UgaGVyZToKMS4gQm90 aCBlbnVtZXJhdG9ycyBhcmUgb2YgdGhlIHNhbWUgY2xhc3MsICJqdXN0IGVudW1lcmF0b3IsIiBi dXQgdGhleSBiZWhhdmUgZGlmZmVyZW50bHk6IG9uZSBvZiB0aGVtIGlzICoqY29uc3VtaW5nKiog ZGF0YSBvbiBlYWNoIGl0ZXJhdGlvbiBtZXRob2QsIHRoZSBvdGhlciBkb2VzIG5vdDsgYnV0IHRo ZXJlIGlzIG5vIHByb2dyYW1tYXRpYyB3YXkgdG8gdGVsbCB3aGV0aGVyIHNvbWUgZW51bWVyYXRv ciBpbnN0YW5jZSBpcyBjb25zdW1pbmcKMi4gVGhlcmUgaXMgbm8gZWFzeSB3YXkgdG8gKiptYWtl IGEgbm9uLWNvbnN1bWluZyBlbnVtZXJhdG9yIGJlaGF2ZSBpbiBhIGNvbnN1bWluZyB3YXkqKiwg dG8gb3BlbiBhIHBvc3NpYmlsaXR5IG9mIGEgc2VxdWVuY2Ugb2YgcHJvY2Vzc2luZyAic2tpcCB0 aGlzLCB0YWtlIHRoYXQsIHRha2UgdGhlIHJlc3QiCgoqKkNvbmNyZXRlIHByb3Bvc2FsKioKCjEu IEludHJvZHVjZSBhbiBgRW51bWVyYXRvciNjb25zdW1pbmc/YCBtZXRob2QgdGhhdCB3aWxsIGFs bG93IHRlbGxpbmcgb25lIG9mIHRoZSBvdGhlciAoYW5kIG1ha2UgY29yZSBlbnVtZXJhdG9ycyBs aWtlIGAjZWFjaF9saW5lYCBwcm9wZXJseSByZXBvcnQgdGhleSBhcmUgY29uc3VtaW5nKS4KMi4g SW50cm9kdWNlIGBjb25zdW1pbmc6IHRydWVgIHBhcmFtZXRlciBmb3IgYEVudW1lcmF0b3IubmV3 YCBzbyBpdCB3b3VsZCBiZSBlYXN5IGZvciB1c2VyJ3MgY29kZSB0byBzcGVjaWZ5IHRoZSBmbGFn CjMuIEludHJvZHVjZSBgRW51bWVyYXRvciNjb25zdW1pbmdgIG1ldGhvZCB0byBwcm9kdWNlIGEg Y29uc3VtaW5nIGVudW1lcmF0b3IgZnJvbSBhIG5vbi1jb25zdW1pbmcgb25lOgpgYGBydWJ5CiMg cmVmZXJlbmNlIGltcGxlbWVudGF0aW9uIGlzIHRyaXZpYWw6CmNsYXNzIEVudW1lcmF0b3IKICBk ZWYgY29uc3VtaW5nCiAgICBzb3VyY2UgPSBzZWxmCiAgICBFbnVtZXJhdG9yLm5ldyB7IHx5fCBs b29wIHsgeSA8PCBzb3VyY2UubmV4dCB9IH0KICBlbmQKZW5kCgplbnVtZXJhdG9yMyA9IGxpbmVz LmVhY2guY29uc3VtaW5nCnBhcnNlKGVudW1lcmF0b3IzKQpgYGAKT3V0cHV0OgpgYGAKWyJGcm9t OiB6dmVyb2sub2ZmbGluZUBnbWFpbC5jb20iLCAiVG87IGJ1Z3NAcnVieS1sYW5nLm9yZyIsICJT dWJqZWN0OiBDb25zdW1pbmcgRW51bWVyYXRvcnMiXQpbIkhlcmUsIEkgYW0gcHJlc2VudGluZyB0 aGUgZm9sbG93aW5nIHByb3Bvc2FsLiIsICJMZXQncyB0YWxrIGFib3V0IGNvbnN1bWluZyBlbnVt ZXJhdG9ycy4uLiJdCmBgYAoKCgotLSAKaHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvCgpVbnN1 YnNjcmliZTogPG1haWx0bzpydWJ5LWNvcmUtcmVxdWVzdEBydWJ5LWxhbmcub3JnP3N1YmplY3Q9 dW5zdWJzY3JpYmU+CjxodHRwOi8vbGlzdHMucnVieS1sYW5nLm9yZy9jZ2ktYmluL21haWxtYW4v b3B0aW9ucy9ydWJ5LWNvcmU+Cg==