[ruby-core:123326] [Ruby Feature#19326] Please add a better API for passing a Proc to a Ractor
From:
"byroot (Jean Boussier) via ruby-core" <ruby-core@...>
Date:
2025-09-25 06:59:50 UTC
List:
ruby-core #123326
SXNzdWUgIzE5MzI2IGhhcyBiZWVuIHVwZGF0ZWQgYnkgYnlyb290IChKZWFuIEJvdXNzaWVyKS4N Cg0KU3RhdHVzIGNoYW5nZWQgZnJvbSBBc3NpZ25lZCB0byBDbG9zZWQNCg0KSSB0aGluayB3ZSBj YW4gY2xvc2Ugbm93Pw0KDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t DQpGZWF0dXJlICMxOTMyNjogUGxlYXNlIGFkZCBhIGJldHRlciBBUEkgZm9yIHBhc3NpbmcgYSBQ cm9jIHRvIGEgUmFjdG9yDQpodHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy9pc3N1ZXMvMTkzMjYj Y2hhbmdlLTExNDY5NA0KDQoqIEF1dGhvcjogc2R3b2xmeiAoQ29kcnXImyBHdciZb2kpDQoqIFN0 YXR1czogQ2xvc2VkDQoqIEFzc2lnbmVlOiBrbzEgKEtvaWNoaSBTYXNhZGEpDQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpFeGFtcGxlIDE6DQpgYGBydWJ5DQpjbGFz cyBXb3JrZXINCiAgZGVmIGluaXRpYWxpemUoJmJsb2NrKQ0KICAgIEBibG9jayA9IGJsb2NrDQog IGVuZA0KDQogIGRlZiBydW4NCiAgICBSYWN0b3IubmV3KEBibG9jaywgJjpjYWxsKQ0KICBlbmQN CmVuZA0KDQp3b3JrZXIgPSBXb3JrZXIubmV3IHsgMSB9DQpwdXRzIHdvcmtlci5ydW4udGFrZQ0K YGBgDQoNCkVycm9ycyB3aXRoOg0KYGBgDQo8aW50ZXJuYWw6cmFjdG9yPjoyNzE6aW4gYG5ldyc6 IGFsbG9jYXRvciB1bmRlZmluZWQgZm9yIFByb2MgKFR5cGVFcnJvcikNCiAgICAgICAgZnJvbSBz Y3JpcHRzL3J1bi5yYjo5OmluIGBydW4nDQogICAgICAgIGZyb20gc2NyaXB0cy9ydW4ucmI6MTQ6 aW4gYDxtYWluPicNCmBgYA0KDQpFeGFtcGxlIDI6DQpgYGBydWJ5DQpjbGFzcyBXb3JrZXINCiAg ZGVmIGluaXRpYWxpemUoJmJsb2NrKQ0KICAgIEBibG9jayA9IFJhY3Rvci5tYWtlX3NoYXJlYWJs ZShibG9jaykNCiAgZW5kDQoNCiAgZGVmIHJ1bg0KICAgIFJhY3Rvci5uZXcoQGJsb2NrLCAmOmNh bGwpDQogIGVuZA0KZW5kDQoNCndvcmtlciA9IFdvcmtlci5uZXcgeyAxIH0NCnB1dHMgd29ya2Vy LnJ1bi50YWtlDQpgYGANCg0KRXJyb3JzIHdpdGg6DQoNCmBgYA0KPGludGVybmFsOnJhY3Rvcj46 ODIwOmluIGBtYWtlX3NoYXJlYWJsZSc6IFByb2MncyBzZWxmIGlzIG5vdCBzaGFyZWFibGU6ICM8 UHJvYzoweDAwMDA3ZjAwMzk0YzM4Yjggc2NyaXB0cy9ydW4ucmI6MTM+IChSYWN0b3I6Oklzb2xh dGlvbkVycm9yKQ0KICAgICAgICBmcm9tIHNjcmlwdHMvcnVuLnJiOjU6aW4gYGluaXRpYWxpemUn DQogICAgICAgIGZyb20gc2NyaXB0cy9ydW4ucmI6MTM6aW4gYG5ldycNCiAgICAgICAgZnJvbSBz Y3JpcHRzL3J1bi5yYjoxMzppbiBgPG1haW4+Jw0KYGBgDQoNCkV4YW1wbGUgMzoNCmBgYHJ1YnkN CmNsYXNzIFdvcmtlcg0KICBkZWYgaW5pdGlhbGl6ZSgmYmxvY2spDQogICAgQGJsb2NrID0gUmFj dG9yLm1ha2Vfc2hhcmVhYmxlKGJsb2NrKQ0KICBlbmQNCg0KICBkZWYgcnVuDQogICAgUmFjdG9y Lm5ldyhAYmxvY2ssICY6Y2FsbCkNCiAgZW5kDQplbmQNCg0Kd29ya2VyID0gUmFjdG9yLmN1cnJl bnQuaW5zdGFuY2VfZXZhbCB7IFdvcmtlci5uZXcgeyAxIH0gfQ0KcHV0cyB3b3JrZXIucnVuLnRh a2UNCmBgYA0KDQpXb3JrcywgYnV0IGhhdmluZyBgUmFjdG9yLmN1cnJlbnQuaW5zdGFuY2VfZXZh bGAgYXMgYSB3cmFwcGVyIGFyb3VuZCB0aGUgYmxvY2sgaXMgbm90IGlkZWFsLCBhcyBSYWN0b3Ig aXMgc3VwcG9zZWQgdG8gYmUgb25seSBhbiBpbXBsZW1lbnRhdGlvbiBkZXRhaWwgaW4gV29ya2Vy Lg0KDQpJIGtub3cgYWJvdXQgaHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvaXNzdWVzLzE4MjQz IGFuZCB0aGUgZGlzY3Vzc2lvbiBhcm91bmQgYHByb2MuYmluZChuaWwpYC4gVGhhdCB3b3VsZCBh Y3R1YWxseSBiZSBpZGVhbCwgYXMgZm9yIHRoZSBwdXJwb3NlcyBpZiB3aHkgSSB3YW50IHRoaXMg ZnVuY3Rpb25hbGl0eSBJIGRvbid0IGNhcmUgd2hhdCBgc2VsZmAgaXMgaW4gYSBibG9jaywgYW5k IHRoZSBsZXNzIGl0IGhhcyBhY2Nlc3MgdG8gdGhlIGJldHRlci4NCg0KVGhlIGdlbmVyYWwgaWRl YSBvZiBXb3JrZXIgaXMgdG8gaGF2ZSBhIFJhY3RvciBiZSBhYmxlIHRvIGxhemlseSBleGVjdXRl IGFuIGFyYml0cmFyeSBwcm9jLiBBbmQgYWxsIHRoZSBiaW5kaW5ncyBpdCB3b3VsZCBuZWVkIHdv dWxkIGJlIHBhc3NlZCBleHBsaWNpdGx5LCBlaXRoZXIgdGhyb3VnaCBgYXJnc2AgaW4gdGhlIGNv bnN0cnVjdG9yIG9yIHRocm91Z2ggYHNlbmRgL2ByZWNlaXZlYCwgc28gYHNlbGZgIHdvdWxkIHJl YWxseSBub3QgbWF0dGVyLg0KDQpUaGUgYmVuZWZpdDogdGhpcyB3b3VsZCBtYWtlIGl0IHNvIGNv bmN1cnJlbnQgY29kZSBjYW4gYmUgbW9yZSBlYXNpbHkgYmUgaW1wbGVtZW50ZWQgd2l0aCBSYWN0 b3JzIGFzIGN1cnJlbnRseSB5b3UgY2FuIGV4ZWN1dGUgYW4gYXJiaXRyYXJ5IHByb2MgYnkgcGFz c2luZyBpdCB0byBhIFRocmVhZCAoYnV0IHlvdSBkb24ndCBnZXQgdGhlIG5pY2UgZGF0YSBpc29s YXRpb24pLg0KDQoNCg0KLS0gDQpodHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy8NCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KIHJ1YnktY29yZSBtYWlsaW5n IGxpc3QgLS0gcnVieS1jb3JlQG1sLnJ1YnktbGFuZy5vcmcKIFRvIHVuc3Vic2NyaWJlIHNlbmQg YW4gZW1haWwgdG8gcnVieS1jb3JlLWxlYXZlQG1sLnJ1YnktbGFuZy5vcmcKIHJ1YnktY29yZSBp bmZvIC0tIGh0dHBzOi8vbWwucnVieS1sYW5nLm9yZy9tYWlsbWFuMy9saXN0cy9ydWJ5LWNvcmUu bWwucnVieS1sYW5nLm9yZy8K