[#110300] [Ruby master Bug#19057] Hide implementation of `rb_io_t`. — "ioquatix (Samuel Williams)" <noreply@...>
SXNzdWUgIzE5MDU3IGhhcyBiZWVuIHJlcG9ydGVkIGJ5IGlvcXVhdGl4IChTYW11ZWwgV2lsbGlh
53 messages
2022/10/15
[ruby-core:110396] [Ruby master Feature#19061] Proposal: make a concept of "consuming enumerator" explicit
From:
"zverok (Victor Shepelev)" <noreply@...>
Date:
2022-10-18 11:18:56 UTC
List:
ruby-core #110396
SXNzdWUgIzE5MDYxIGhhcyBiZWVuIHVwZGF0ZWQgYnkgenZlcm9rIChWaWN0b3IgU2hlcGVsZXYp LgoKCj4gSGVyZSBpcyBteSB1bmRlcnN0YW5kaW5nCgpUaGlzIGlzIGNvcnJlY3QuCgo+IFByb2Js ZW0gMTogVGhlIGNvbnN1bWluZyBmbGFnIGRlcGVuZHMgb24gdGhlIHVuZGVybHlpbmcgSU8KClRo YXQncyBhbiBpbnRlcmVzdGluZyBwcm9ibGVtIGluZGVlZCEgSSdsbCBsb29rIGRlZXBlciBpbnRv IGl0LgoKQnV0IGZvciBub3csIEkgY29uc2lkZXIgaXQgYW4gZWRnZSBjYXNlIHRoYXQgY2FuIGJl LCBpbiB0aGUgd29yc3QgY2FzZSwganVzdCBjb3ZlcmVkIGJ5IGRvY3MuIEUuZy4gc29tZXRoaW5n IGxpa2UgImBGaWxlLmZvcmVhY2hgIHJlcG9ydHMgaXRzZWxmIGFzIG5vdCBjb25zdW1pbmcsIGJ1 dCBkZXBlbmRpbmcgb24gSU8gcHJvcGVydGllcyB0aGlzIG1pZ2h0IG5vdCBiZSB0cnVlLi4uIiwg d2hpbGUsIHNheSwgYEZpbGUjZWFjaF9saW5lYCBpcyBjb25zdW1pbmcgYnkgZGVzaWduLCBpZiBJ IHVuZGVyc3RhbmQgY29ycmVjdGx5LgoKVGhlIGRpc3RpbmN0aW9uIG9mICJjb25zdW1pbmciLyJu b24tY29uc3VtaW5nIiBbYnkgZGVzaWduXSBzdGlsbCBzZWVtcyBoZWxwZnVsLgoKPiBQcm9ibGVt IDI6IFRoZSByZXN1bHQgb2YgRW51bWVyYXRvciNjb25zdW1pbmcgc2hhcmVzIHRoZSBzdGF0ZSB3 aXRoIHRoZSBvcmlnaW5hbCBFbnVtZXJhdG9yCgpJdCBpcyBqdXN0IGJlY2F1c2UgbXkgcmVmZXJl bmNlIGltcGxlbWVudGF0aW9uIHdhcyB0b28gbmFpdmUgOikKQnkgc2ltcGx5IGNoYW5naW5nIGl0 IHRvIApgYGBydWJ5CmNsYXNzIEVudW1lcmF0b3IKICBkZWYgY29uc3VtaW5nCiAgICBzb3VyY2Ug PSBkdXAKICAgIEVudW1lcmF0b3IubmV3IHsgfHl8IGxvb3AgeyB5IDw8IHNvdXJjZS5uZXh0IH0g fQogIGVuZAplbmQKYGBgCi4uLmZvciBhbGwgSSBjYW4gdGVsbCwgYnJlYWtzIGFsbCB0aGUgdGll cyB3aXRoIHRoZSBvcmlnaW5hbCBlbnVtZXJhdG9yJ3Mgc3RhdGUsIGFuZCBhbGwgb2YgdGhlIGV4 YW1wbGVzIGJlaGF2ZSByZWFzb25hYmx5OgpgYGBydWJ5CmUxID0gKDEuLjUpLnRvX2VudW0KZTIg PSBlMS5jb25zdW1pbmcKCnAgZTEubmV4dCAjPT4gMQpwIGUyLm5leHQgIz0+IDEgKHVuYWZmZWN0 ZWQgYnkgZTEubmV4dCkKcCBlMS5uZXh0ICM9PiAyICh1bmFmZmVjdGVkIGJ5IGUyLm5leHQpCgpl MS5yZXdpbmQKCnAgZTIubmV4dCAjPT4gMiAodW5hZmZlY3RlZCBieSByZXdpbmQpCmBgYAoKRG8g eW91IHNlZSBhIHByb2JsZW0gd2l0aCB0aGlzIHNvbHV0aW9uPy4uCgotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkZlYXR1cmUgIzE5MDYxOiBQcm9wb3NhbDogbWFrZSBh IGNvbmNlcHQgb2YgImNvbnN1bWluZyBlbnVtZXJhdG9yIiBleHBsaWNpdApodHRwczovL2J1Z3Mu cnVieS1sYW5nLm9yZy9pc3N1ZXMvMTkwNjEjY2hhbmdlLTk5NzAzCgoqIEF1dGhvcjogenZlcm9r IChWaWN0b3IgU2hlcGVsZXYpCiogU3RhdHVzOiBPcGVuCiogUHJpb3JpdHk6IE5vcm1hbAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCioqVGhlIHByb2JsZW0qKgoKTGV0 J3MgaW1hZ2luZSB0aGlzIHN5bnRoZXRpYyBkYXRhOgpgYGBydWJ5CmxpbmVzID0gWwogICItLUVN QUlMLS0iLAogICJGcm9tOiB6dmVyb2sub2ZmbGluZUBnbWFpbC5jb20iLAogICJUbzsgYnVnc0By dWJ5LWxhbmcub3JnIiwKICAiU3ViamVjdDogQ29uc3VtaW5nIEVudW1lcmF0b3JzIiwKICAiIiwK ICAiSGVyZSwgSSBhbSBwcmVzZW50aW5nIHRoZSBmb2xsb3dpbmcgcHJvcG9zYWwuIiwKICAiTGV0 J3MgdGFsayBhYm91dCBjb25zdW1pbmcgZW51bWVyYXRvcnMuLi4iCl0KYGBgClRoZSBsb2dpYyBv ZiBwYXJzaW5nIGl0IGlzIG1vcmUgb3IgbGVzcyBjbGVhcjoKKiBza2lwIHRoZSBmaXJzdCBsaW5l CiogdGFrZSBsaW5lcyB1bnRpbCBtZWV0IGVtcHR5LCB0byByZWFkIHRoZSBoZWFkZXIKKiB0YWtl IHRoZSByZXN0IG9mIHRoZSBsaW5lcyB0byByZWFkIHRoZSBib2R5CgpJdCBjYW4gYmUgZWFzaWx5 IHRyYW5zbGF0ZWQgaW50byBSdWJ5IGNvZGUsIGFsbW9zdCBsaXRlcmFsbHk6CmBgYHJ1YnkKZGVm IHBhcnNlKGVudW1lcmF0b3IpCiAgcHV0cyAiVGVzdGluZzogI3tlbnVtZXJhdG9yLmluc3BlY3R9 IgogIGVudW1lcmF0b3IubmV4dAogIHAgZW51bWVyYXRvci50YWtlX3doaWxlIHsgIV8xLmVtcHR5 PyB9CiAgcCBlbnVtZXJhdG9yLnRvX2EKZW5kCmBgYAoKTm93LCBsZXQncyB0cnkgdGhpcyBjb2Rl IHdpdGggdHdvIGRpZmZlcmVudCBlbnVtZXJhdG9ycyBvbiB0aG9zZSBsaW5lczoKYGBgcnVieQpy ZXF1aXJlICdzdHJpbmdpbycKCmVudW1lcmF0b3IxID0gbGluZXMuZWFjaAplbnVtZXJhdG9yMiA9 IFN0cmluZ0lPLm5ldyhsaW5lcy5qb2luKCJcbiIpKS5lYWNoX2xpbmUoY2hvbXA6IHRydWUpCgpw dXRzICJBcnJheSNlYWNoIgpwYXJzZShlbnVtZXJhdG9yMSkKCnB1dHMKcHV0cyAiU3RyaW5nSU8j ZWFjaF9saW5lIgpwYXJzZShlbnVtZXJhdG9yMikKYGBgCk91dHB1dCAoYXMgeW91IHByb2JhYmx5 IGFscmVhZHkgZ3Vlc3NlZCk6CmBgYApBcnJheSNlYWNoClRlc3Rpbmc6ICM8RW51bWVyYXRvcjog Wy4uLl06ZWFjaD4KWyItLUVNQUlMLS0iLCAiRnJvbTogenZlcm9rLm9mZmxpbmVAZ21haWwuY29t IiwgIlRvOyBidWdzQHJ1YnktbGFuZy5vcmciLCAiU3ViamVjdDogQ29uc3VtaW5nIEVudW1lcmF0 b3JzIl0KWyItLUVNQUlMLS0iLCAiRnJvbTogenZlcm9rLm9mZmxpbmVAZ21haWwuY29tIiwgIlRv OyBidWdzQHJ1YnktbGFuZy5vcmciLCAiU3ViamVjdDogQ29uc3VtaW5nIEVudW1lcmF0b3JzIiwg IiIsICJIZXJlLCBJIGFtIHByZXNlbnRpbmcgdGhlIGZvbGxvd2luZyBwcm9wb3NhbC4iLCAiTGV0 J3MgdGFsayBhYm91dCBjb25zdW1pbmcgZW51bWVyYXRvcnMuLi4iXQoKU3RyaW5nSU8jZWFjaF9s aW5lClRlc3Rpbmc6ICM8RW51bWVyYXRvcjogIzxTdHJpbmdJTzoweDAwMDA1NTgxMDE4YzUwYTA+ OmVhY2hfbGluZShjaG9tcDogdHJ1ZSk+ClsiRnJvbTogenZlcm9rLm9mZmxpbmVAZ21haWwuY29t IiwgIlRvOyBidWdzQHJ1YnktbGFuZy5vcmciLCAiU3ViamVjdDogQ29uc3VtaW5nIEVudW1lcmF0 b3JzIl0KWyJIZXJlLCBJIGFtIHByZXNlbnRpbmcgdGhlIGZvbGxvd2luZyBwcm9wb3NhbC4iLCAi TGV0J3MgdGFsayBhYm91dCBjb25zdW1pbmcgZW51bWVyYXRvcnMuLi4iXQpgYGAKCk9ubHkgdGhl IHNlY29uZCBlbnVtZXJhdG9yIGJlaGF2ZXMgdGhlIHdheSB3ZSB3YW50ZWQgaXQgdG8uClRoaW5n cyB0byBub3RpY2UgaGVyZToKMS4gQm90aCBlbnVtZXJhdG9ycyBhcmUgb2YgdGhlIHNhbWUgY2xh c3MsICJqdXN0IGVudW1lcmF0b3IsIiBidXQgdGhleSBiZWhhdmUgZGlmZmVyZW50bHk6IG9uZSBv ZiB0aGVtIGlzICoqY29uc3VtaW5nKiogZGF0YSBvbiBlYWNoIGl0ZXJhdGlvbiBtZXRob2QsIHRo ZSBvdGhlciBkb2VzIG5vdDsgYnV0IHRoZXJlIGlzIG5vIHByb2dyYW1tYXRpYyB3YXkgdG8gdGVs bCB3aGV0aGVyIHNvbWUgZW51bWVyYXRvciBpbnN0YW5jZSBpcyBjb25zdW1pbmcKMi4gVGhlcmUg aXMgbm8gZWFzeSB3YXkgdG8gKiptYWtlIGEgbm9uLWNvbnN1bWluZyBlbnVtZXJhdG9yIGJlaGF2 ZSBpbiBhIGNvbnN1bWluZyB3YXkqKiwgdG8gb3BlbiBhIHBvc3NpYmlsaXR5IG9mIGEgc2VxdWVu Y2Ugb2YgcHJvY2Vzc2luZyAic2tpcCB0aGlzLCB0YWtlIHRoYXQsIHRha2UgdGhlIHJlc3QiCgoq KkNvbmNyZXRlIHByb3Bvc2FsKioKCjEuIEludHJvZHVjZSBhbiBgRW51bWVyYXRvciNjb25zdW1p bmc/YCBtZXRob2QgdGhhdCB3aWxsIGFsbG93IHRlbGxpbmcgb25lIG9mIHRoZSBvdGhlciAoYW5k IG1ha2UgY29yZSBlbnVtZXJhdG9ycyBsaWtlIGAjZWFjaF9saW5lYCBwcm9wZXJseSByZXBvcnQg dGhleSBhcmUgY29uc3VtaW5nKS4KMi4gSW50cm9kdWNlIGBjb25zdW1pbmc6IHRydWVgIHBhcmFt ZXRlciBmb3IgYEVudW1lcmF0b3IubmV3YCBzbyBpdCB3b3VsZCBiZSBlYXN5IGZvciB1c2VyJ3Mg Y29kZSB0byBzcGVjaWZ5IHRoZSBmbGFnCjMuIEludHJvZHVjZSBgRW51bWVyYXRvciNjb25zdW1p bmdgIG1ldGhvZCB0byBwcm9kdWNlIGEgY29uc3VtaW5nIGVudW1lcmF0b3IgZnJvbSBhIG5vbi1j b25zdW1pbmcgb25lOgpgYGBydWJ5CiMgcmVmZXJlbmNlIGltcGxlbWVudGF0aW9uIGlzIHRyaXZp YWw6CmNsYXNzIEVudW1lcmF0b3IKICBkZWYgY29uc3VtaW5nCiAgICBzb3VyY2UgPSBzZWxmCiAg ICBFbnVtZXJhdG9yLm5ldyB7IHx5fCBsb29wIHsgeSA8PCBzb3VyY2UubmV4dCB9IH0KICBlbmQK ZW5kCgplbnVtZXJhdG9yMyA9IGxpbmVzLmVhY2guY29uc3VtaW5nCnBhcnNlKGVudW1lcmF0b3Iz KQpgYGAKT3V0cHV0OgpgYGAKWyJGcm9tOiB6dmVyb2sub2ZmbGluZUBnbWFpbC5jb20iLCAiVG87 IGJ1Z3NAcnVieS1sYW5nLm9yZyIsICJTdWJqZWN0OiBDb25zdW1pbmcgRW51bWVyYXRvcnMiXQpb IkhlcmUsIEkgYW0gcHJlc2VudGluZyB0aGUgZm9sbG93aW5nIHByb3Bvc2FsLiIsICJMZXQncyB0 YWxrIGFib3V0IGNvbnN1bWluZyBlbnVtZXJhdG9ycy4uLiJdCmBgYAoKCgotLSAKaHR0cHM6Ly9i dWdzLnJ1YnktbGFuZy5vcmcvCgpVbnN1YnNjcmliZTogPG1haWx0bzpydWJ5LWNvcmUtcmVxdWVz dEBydWJ5LWxhbmcub3JnP3N1YmplY3Q9dW5zdWJzY3JpYmU+CjxodHRwOi8vbGlzdHMucnVieS1s YW5nLm9yZy9jZ2ktYmluL21haWxtYW4vb3B0aW9ucy9ydWJ5LWNvcmU+Cg==