[#110300] [Ruby master Bug#19057] Hide implementation of `rb_io_t`. — "ioquatix (Samuel Williams)" <noreply@...>
SXNzdWUgIzE5MDU3IGhhcyBiZWVuIHJlcG9ydGVkIGJ5IGlvcXVhdGl4IChTYW11ZWwgV2lsbGlh
53 messages
2022/10/15
[ruby-core:110503] [Ruby master Feature#19000] Data: Add "Copy with changes method" [Follow-on to #16122 Data: simple immutable value object]
From:
"ufuk (Ufuk Kayserilioglu)" <noreply@...>
Date:
2022-10-24 19:42:56 UTC
List:
ruby-core #110503
SXNzdWUgIzE5MDAwIGhhcyBiZWVuIHVwZGF0ZWQgYnkgdWZ1ayAoVWZ1ayBLYXlzZXJpbGlvZ2x1 KS4NCg0KDQo+IC4uLiBTZXF1ZWwgdXNlcyBgY2xvbmVgIGluc3RlYWQgb2YgYGR1cGAgKGZvciBo aXN0b3JpY2FsIHJlYXNvbnMgYW5kIGJlY2F1c2UgaXQgYWxzbyBuZWVkcyB0byBjb3B5IHNpbmds ZXRvbiBjbGFzc2VzKS4NCg0KSSB0aGluayBjb3B5aW5nIHNpbmdsZXRvbiBjbGFzc2VzIGludG8g c3VjaCBjb3BpZXMgbWlnaHQgTk9UIGJlIGRlc2lyZWQgYmVoYXZpb3VyIGZvciBgRGF0YWAgb2Jq ZWN0cy4gU28sIGl0IG1pZ2h0IG1ha2UgbW9yZSBzZW5zZSB0byB1c2UgYGR1cGAgZm9yIHRoaXMu IFRoYXQgbWVhbnMsIGl0IHNob3VsZCB3b3JrIGluIHRoZSBmb2xsb3dpbmcgd2F5Og0KYGBgcnVi eQ0KUG9pbnQgPSBEYXRhLmRlZmluZSg6eCwgOnksIDp6KQ0KT1JJR0lOID0gUG9pbnQubmV3KHg6 IDAuMCwgeTogMC4wLCB6OiAwLjApDQpPUklHSU4uc2luZ2xldG9uX2NsYXNzLmRlZmluZV9tZXRo b2QoOmRpc3RhbmNlX2Zyb21fb3JpZ2luKSB7IDAgfQ0KDQpyaWdodCA9IE9SSUdJTi5kdXAoeDog MS4wKQ0KdXAgPSBPUklHSU4uZHVwKHk6IDEuMCkNCnVwX2FuZF9yaWdodCA9IHJpZ2h0LmR1cCh5 OiB1cC55KQ0KDQpPUklHSU4uZGlzdGFuY2VfZnJvbV9vcmlnaW4gIyA9PiAwDQpyaWdodC5kaXN0 YW5jZV9mcm9tX29yaWdpbiAjID0+IHVuZGVmaW5lZCBtZXRob2QgYGRpc3RhbmNlX2Zyb21fb3Jp Z2luJyBmb3IgIzxkYXRhIFBvaW50IHg9MS4wLCB5PTAuMCwgej0wLjA+IChOb01ldGhvZEVycm9y KQ0KdXAuZGlzdGFuY2VfZnJvbV9vcmlnaW4gIyA9PiB1bmRlZmluZWQgbWV0aG9kIGBkaXN0YW5j ZV9mcm9tX29yaWdpbicgZm9yICM8ZGF0YSBQb2ludCB4PTAuMCwgeT0xLjAsIHo9MC4wPiAoTm9N ZXRob2RFcnJvcikNCnVwX2FuZF9yaWdodC5kaXN0YW5jZV9mcm9tX29yaWdpbiAjID0+IHVuZGVm aW5lZCBtZXRob2QgYGRpc3RhbmNlX2Zyb21fb3JpZ2luJyBmb3IgIzxkYXRhIFBvaW50IHg9MS4w LCB5PTEuMCwgej0wLjA+IChOb01ldGhvZEVycm9yKQ0KYGBgDQoNCkRhbjAwNDIgKERhbmllbCBE ZUxvcm1lKSB3cm90ZSBpbiAjbm90ZS02Og0KPiB1ZnVrIChVZnVrIEtheXNlcmlsaW9nbHUpIHdy b3RlIGluICNub3RlLTQ6DQo+IC4uLiBCdXQgdGhlIGR1cC9jbG9uZSBBUEkgaXMgc28gb2xkLCBz byB3ZWxsIGVzdGFibGlzaGVkIGFuZCBzbyBjb25zaXN0ZW50IHRocm91Z2hvdXQgcnVieSwgY2hh bmdpbmcvZXh0ZW5kaW5nIGl0IHdvdWxkIGJlIGEgbWlzdGFrZS4NCg0KSSBhbSBub3Qgc3VyZSB3 ZSB3b3VsZCBiZSBleHRlbmRpbmcgdGhlIEFQSSBpbiBhbnkgaW5jb21wYXRpYmxlIHdheS4gQ2Fs bGluZyBgZHVwYCB3aXRoIG5vIGFyZ3VtZW50cyB3b3VsZCBzdGlsbCB3b3JrIGFzIGl0IHNob3Vs ZCwgYnkgY3JlYXRpbmcgYSBjb3B5IG9mIHRoZSBvcmlnaW5hbCBvYmplY3QuIElmIG9uZSBzdXBw bGllcywgb3B0aW9uYWwsIGtleXdvcmQgYXJndW1lbnRzIHRvIGBkdXBgLCB0aG91Z2gsIHRoZW4g b25lIHdvdWxkIGdldCB0aGUgc3BlY2lhbCBjb3B5aW5nIHRoYXQgaXMgc3VpdGFibGUgZm9yIGBE YXRhYCBvYmplY3RzLiBCVFcsIGl0IHNob3VsZCBiZSBhbiBlcnJvciB0byBzdXBwbHkgYSBrZXl3 b3JkIGFyZ3VtZW50IHRoYXQgdGhlIERhdGEgY2xhc3MgZG9lcyBub3QgaGF2ZSBhcyBtZW1iZXJz Lg0KDQpgYGBydWJ5DQpQb2ludCA9IERhdGEuZGVmaW5lKDp4LCA6eSwgOnopDQpPUklHSU4gPSBQ b2ludC5uZXcoeDogMC4wLCB5OiAwLjAsIHo6IDAuMCkNCg0KY2xvbmVkX29yaWdpbiA9IE9SSUdJ Ti5kdXAgIyA9PiB3b3JrcyBhcyBleHBlY3RlZA0KaWxsZWdhbCA9IE9SSUdJTi5kdXAodzogMS4w KSAjID0+IEFyZ3VtZW50RXJyb3INCmBgYA0KDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0NCkZlYXR1cmUgIzE5MDAwOiBEYXRhOiBBZGQgIkNvcHkgd2l0aCBjaGFu Z2VzIG1ldGhvZCIgW0ZvbGxvdy1vbiB0byAjMTYxMjIgRGF0YTogc2ltcGxlIGltbXV0YWJsZSB2 YWx1ZSBvYmplY3RdDQpodHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy9pc3N1ZXMvMTkwMDAjY2hh bmdlLTk5ODI1DQoNCiogQXV0aG9yOiBSdWJ5QnVncyAoQSBOb255bW91cykNCiogU3RhdHVzOiBP cGVuDQoqIFByaW9yaXR5OiBOb3JtYWwNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0NCipBcyByZXF1ZXN0ZWQ6IGV4dHJhY3RlZCBhIGZvbGxvdy11cCB0byAjMTYxMjIg RGF0YTogc2ltcGxlIGltbXV0YWJsZSB2YWx1ZSBvYmplY3QgZnJvbSBbdGhpcyBjb21tZW50XSho dHRwOi8vYmxhZGUubmFnYW9rYXV0LmFjLmpwL2NnaS1iaW4vc2NhdC5yYi9ydWJ5L3J1YnktY29y ZS8xMDk4MTUpKg0KDQoNCiMgUHJvcG9zYWw6IEFkZCBhICJDb3B5IHdpdGggY2hhbmdlcyIgbWV0 aG9kIHRvIERhdGENCg0KQXNzdW1lIHRoZSBwcm9wb3NlZCBgRGF0YS5kZWZpbmVgIGV4aXN0cy4N ClNlZWluZyBleGFtcGxlcyBmcm9tIHRoZSBbW1ZhbHVlcyBnZW1dXShodHRwczovL2dpdGh1Yi5j b20vbXMtYXRpL1ZhbHVlcyk6DQoNCmBgYHJ1YnkNCiMgQSBuZXcgY2xhc3MNClBvaW50ID0gRGF0 YS5kZWYoOngsIDp5KQ0KDQojIEFuIGltbXV0YWJsZSBpbnN0YW5jZQ0KT3JpZ2luID0gUG9pbnQu d2l0aCh4OiAwLCB5OiAwKQ0KDQojIFE6IEhvdyBkbyB3ZSBtYWtlIGNvcGllcyB0aGF0IGNoYW5n ZSAxIG9yIG1vcmUgdmFsdWVzPw0KcmlnaHQgPSBPcmlnaW4ud2l0aCh4OiAxLjApDQp1cCA9IE9y aWdpbi53aXRoKHk6IDEuMCkNCnVwX2FuZF9yaWdodCA9IHJpZ2h0LndpdGgoeTogdXAueSkNCg0K IyBJbiBsb29wcw0KbW92ZW1lbnRzID0gWw0KICB7IHg6ICswLjUgfSwNCiAgeyB4OiArMC41IH0s DQogIHsgeTogLTEuMCB9LA0KICB7IHg6ICswLjUgfSwNCl0NCg0KIyBwb3NpdGlvbiA9IFBvaW50 KHg6IDEuNSwgeTogLTEuMCkNCnBvc2l0aW9uID0gbW92ZW1lbnRzLmluamVjdChPcmlnaW4pIHsg fHAsIG1vdmV8IHAud2l0aCgqKm1vdmUpIH0NCmBgYA0KDQojIyBQcm9wb3NlZCBkZXRhaWw6IENh bGwgdGhpcyBtZXRob2Q6IGAjd2l0aGANCg0KYGBgcnVieQ0KTW9uZXkgPSBEYXRhLmRlZmluZSg6 YW1vdW50LCA6Y3VycmVuY3kpDQoNCmFjY291bnQgPSBNb25leS5uZXcoYW1vdW50OiAxMDAsIGN1 cnJlbmN5OiAnVVNEJykNCg0KdHJhbnNhY3Rpb25zID0gWysxMCwgLTUsICsxNV0NCg0KYWNjb3Vu dCA9IHRyYW5zYWN0aW9ucy5pbmplY3QoYWNjb3VudCkgeyB8YSwgdHwgYS53aXRoKGFtb3VudDog YS5hbW91bnQgKyB0KSB9DQojPT4gTW9uZXkoYW1vdW50OiAxMjAsIGN1cnJlbmN5OiAiVVNEIikN CmBgYA0KDQojIyBXaHkgYWRkIHRoaXMgIkNvcHkgd2l0aCBjaGFuZ2VzIiBtZXRob2QgdG8gdGhl IERhdGEgc2ltcGxlIGltbXV0YWJsZSB2YWx1ZSBjbGFzcz8NCg0KQ2FsbGVkIG9uIGFuIGluc3Rh bmNlLCBpdCByZXR1cm5zIGEgbmV3IGluc3RhbmNlIHdpdGggb25seSB0aGUgcHJvdmlkZWQgcGFy YW1ldGVycyBjaGFuZ2VkLg0KDQpUaGlzIEFQSSBhZmZvcmRhbmNlIGlzIG5vdyAqKndpZGVseSBh ZG9wdGVkIGFjcm9zcyBtYW55IGxhbmd1YWdlcyoqIGZvciBpdHMgdXNlZnVsbmVzcy4gV2h5IGlz IGl0IHNvIHVzZWZ1bD8gQmVjYXVzZSBjb3B5aW5nIGltbXV0YWJsZSB2YWx1ZSBvYmplY3QgaW5z dGFuY2VzLCB3aXRoIDEgb3IgbW9yZSBkaXNjcmV0ZSBjaGFuZ2VzIHRvIHNwZWNpZmljIGZpZWxk cywgaXMgdGhlIHByb3BlciBhbmQgdWJpcXVpdG91cyBwYXR0ZXJuIHRoYXQgdGFrZXMgdGhlIHBs YWNlIG9mIG11dGF0aW9uIHdoZW4gd29ya2luZyB3aXRoIGltbXV0YWJsZSB2YWx1ZSBvYmplY3Rz Lg0KDQoqKk90aGVyIGxhbmd1YWdlcyoqDQoNCkMjIFJlY29yZHM6IOKAnGltbXV0YWJsZSByZWNv cmQgc3RydWN0cyDigJQgTm9uLWRlc3RydWN0aXZlIG11dGF0aW9u4oCdIOKAlCBpcyBjYWxsZWQg YHdpdGggeyAuLi4gfWANCmh0dHBzOi8vZG9jcy5taWNyb3NvZnQuY29tL2VuLXVzL2RvdG5ldC9j c2hhcnAvbGFuZ3VhZ2UtcmVmZXJlbmNlL2J1aWx0aW4tdHlwZXMvcmVjb3JkI25vbmRlc3RydWN0 aXZlLW11dGF0aW9uDQoNClNjYWxhIENhc2UgQ2xhc3NlcyDigJQgaXMgY2FsbGVkIGAjY29weWAN Cmh0dHBzOi8vZG9jcy5zY2FsYS1sYW5nLm9yZy90b3VyL2Nhc2UtY2xhc3Nlcy5odG1sDQoNCkph dmEgMTQrIFJlY29yZHMg4oCUIEJyaWFuIEdvZXR6IGF0IE9yYWNsZSBpcyB3b3JraW5nIG9uIGFk ZGluZyBhIHdpdGggY29weSBjb25zdHJ1Y3RvciBpbnNwaXJlZCBieSBDIyBhYm92ZSBhcyB3ZSBz cGVhaywgbGlrZWx5IHRvIGJlIGNhbGxlZCBgI3dpdGhgDQpodHRwczovL21haWwub3Blbmpkay5v cmcvcGlwZXJtYWlsL2FtYmVyLXNwZWMtZXhwZXJ0cy8yMDIyLUp1bmUvMDAzNDYxLmh0bWwNCg0K UnVzdCDigJxTdHJ1Y3QgVXBkYXRlIFN5bnRheOKAnSB2aWEgYC4uYCBzeW50YXggaW4gY29uc3Ry dWN0b3INCmh0dHBzOi8vZG9jLnJ1c3QtbGFuZy5vcmcvYm9vay9jaDA1LTAxLWRlZmluaW5nLXN0 cnVjdHMuaHRtbCNjcmVhdGluZy1pbnN0YW5jZXMtZnJvbS1vdGhlci1pbnN0YW5jZXMtd2l0aC1z dHJ1Y3QtdXBkYXRlLXN5bnRheA0KDQojIyBBbHRlcm5hdGl2ZXMNCg0KV2l0aG91dCBhIGNvcHkt d2l0aC1jaGFuZ2VzIG1ldGhvZCwgb25lIG11c3QgY29uc3RydWN0IGVudGlyZWx5IG5ldyBpbnN0 YW5jZXMgdXNpbmcgdGhlIGNvbnN0cnVjdG9yLiBUaGlzIGNhbiBlaXRoZXIgYmUgKGEpIGZ1bGx5 IHNwZWxsZWQgb3V0IGFzIGJvaWxlcnBsYXRlIGNvZGUsIG9yIChiKSB1c2UgYSBzeW1tZXRyaWNh bCBgI3RvX2hgIHRvIGZlZWQgdGhlIGtleXdvcmQtYXJncyBjb25zdHJ1Y3Rvci4NCg0KKiooYSkg Qm9pbGVycGxhdGUgdXNpbmcgY29uc3RydWN0b3IqKg0KDQpgYGBydWJ5DQpQb2ludCA9IERhdGEu ZGVmaW5lKDp4LCA6eSwgOnopDQpPcmlnaW4gPSBQb2ludC5uZXcoeDogMC4wLCB5OiAwLjAsIHo6 IDAuMCkNCg0KY2hhbmdlID0geyB6OiAtMS41IH0NCg0KIyBIYXZlIHRvIHVzZSBmdWxsIGNvbnN0 cnVjdG9yIC0tIGRvZXMgdGhpcyBldmVuIHdvcms/DQpwb2ludCA9IFBvaW50Lm5ldyh4OiBPcmln aW4ueCwgeTogT3JpZ2luLnksICoqY2hhbmdlKQ0KYGBgDQoNCioqKGIpIFVzaW5nIGEgc2VwYXJh dGVseSBwcm9wb3NlZCBgI3RvX2hgIG1ldGhvZCBhbmQgY29uc3RydWN0b3Igc3ltbWV0cnkqDQoN CmBgYHJ1YnkNClBvaW50ID0gRGF0YS5kZWZpbmUoOngsIDp5LCA6eikNCk9yaWdpbiA9IFBvaW50 Lm5ldyh4OiAwLjAsIHk6IDAuMCwgejogMC4wKQ0KDQpjaGFuZ2UgPSB7IHo6IC0xLjUgfQ0KDQoj IEhhdmUgdG8gdXNlIGZ1bGwgY29uc3RydWN0b3IgLS0gZG9lcyB0aGlzIGV2ZW4gd29yaz8NCnBv aW50ID0gUG9pbnQubmV3KCoqKE9yaWdpbi50b19oLm1lcmdlKGNoYW5nZSkpKQ0KYGBgDQoNCk5v dGljZSB0aGF0IHRoZSBhYm92ZSBhcmUgbm90IGVyZ29ub21pYyAtLSBsZWFkaW5nIHNvIG1hbnkg b2Ygb3VyIHBlZXIgbGFuZ3VhZ2UgY29tbXVuaXRpZXMgdG8gYWRvcHQgdGhlIGAjd2l0aGAgbWV0 aG9kIHRvIGNvcHkgYW4gaW5zdGFuY2Ugd2l0aCBkaXNjcmV0ZSBjaGFuZ2VzLg0KDQoNCg0KLS0g DQpodHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy8NCgpVbnN1YnNjcmliZTogPG1haWx0bzpydWJ5 LWNvcmUtcmVxdWVzdEBydWJ5LWxhbmcub3JnP3N1YmplY3Q9dW5zdWJzY3JpYmU+CjxodHRwOi8v bGlzdHMucnVieS1sYW5nLm9yZy9jZ2ktYmluL21haWxtYW4vb3B0aW9ucy9ydWJ5LWNvcmU+Cg==