[#119637] Behavior of raising from rescue blocks when multiple rescue blocks exist — Rodrigo Rosenfeld Rosas via ruby-core <ruby-core@...>
Hello, I couldn't find any documentation about the subject, so I thought
3 messages
2024/10/29
[ruby-core:119385] [Ruby master Feature#20770] A *new* pipe operator proposal
From:
"austin (Austin Ziegler) via ruby-core" <ruby-core@...>
Date:
2024-10-01 17:19:42 UTC
List:
ruby-core #119385
SXNzdWUgIzIwNzcwIGhhcyBiZWVuIHVwZGF0ZWQgYnkgYXVzdGluIChBdXN0aW4gWmllZ2xlciku DQoNCg0KSSB0aGluayB0aGF0IHRoaXMgaXMgb25lIG9mIHRoZSBtb3JlIGludGVyZXN0aW5nIGFw cHJvYWNoZXMgdG8gYSBwaXBlbGluZSBvcGVyYXRvciBpbiBSdWJ5IGFzIGl0IGlzIGp1c3Qgc3lu dGF4IHN1Z2FyLiBBcyBJIGFtIHVuZGVyc3RhbmRpbmcgaXQ6DQoNCmBgYHJ1YnkNCmZvbw0KfD4g YmFyKF8xLCBiYXopDQp8PiBob2dlKF8xLCBxdXV4KQ0KYGBgDQoNCndvdWxkIGJlIHRyZWF0ZWQg YnkgdGhlIHBhcnNlciB0byBiZSB0aGUgc2FtZSBhczoNCg0KYGBgcnVieQ0KZm9vDQogIC50aGVu IHsgYmFyKF8xLCBiYXopIH0NCiAgLnRoZW4geyBob2dlKF8xLCBxdXV4KSB9DQpgYGANCg0KSXQg d291bGQgYmUgKm5pY2UqIChnaXZlbiB0aGF0IHRoZXJlIHN5bnRheCBzdWdhcmluZyBoYXBwZW5p bmcgaGVyZSkgdGhhdCBpZiBgaXRgIG9yIGBfMWAgaXMgbWlzc2luZywgaXQgaXMgaW1wbGljaXRs eSBpbnNlcnRlZCBhcyB0aGUgZmlyc3QgcGFyYW1ldGVyOg0KDQpgYGBydWJ5DQpmb28NCnw+IGJh cihiYXopDQp8PiBob2dlKHF1dXgpDQoNCiAgPT0NCg0KZm9vDQogIC50aGVuIHsgYmFyKF8xLCBi YXopIH0NCiAgLnRoZW4geyBob2dlKF8xLCBxdXV4KSB9DQpgYGANCg0KVGhpcyB3b3VsZCBlbmFi bGUgdGhlIHVzZSBvZiBjYWxsYWJsZXMgKHByb2NzIGFuZCB1bi9ib3VuZCBtZXRob2RzKSBhcyBz dWdnZXN0ZWQgYnkgQGRhbjAwNDIgaW4gI25vdGUtMjAuDQoNCkkgYW0gKm5vdCogc3VyZSB0aGF0 IHdpdGhvdXQgdGhhdCBpbXBsaWNpdCBmaXJzdCBwYXJhbWV0ZXIsIHRoZSBwb3RlbnRpYWwgY29u ZnVzaW9uIGludHJvZHVjZWQgYnkgdGhlIGRpZmZlcmVudGx5LXNoYXBlZCBibG9ja3MgaXMgd29y dGh3aGlsZS4gUmVnYXJkbGVzcywgYXMgc29tZW9uZSB3aG8gbWFpbnRhaW5zIGxpYnJhcmllcyB0 aGF0IHdpdGggZGVlcCBjb21wYXRpYmlsaXR5LCBJIHdvbid0IGJlIGFibGUgdG8gdXNlIHRoaXMg aW4gdGhvc2UgZm9yIGFub3RoZXIgZGVjYWRlIGF0IGxlYXN0IChJICpzdGlsbCogaGF2ZW4ndCBy ZWxlYXNlZCB2ZXJzaW9ucyBvZiBteSBtb3N0IHVzZWQgbGlicmFyaWVzIHRoYXQgYXJlIDMueCBv bmx5KSwgYnkgd2hpY2ggdGltZSBJIGFtIGhvcGluZyB0byBoYXZlIGZvdW5kIHNvbWVvbmUgZWxz ZSB0byBtYWludGFpbiB0aGVtLg0KDQp2by54IChWaXQgT25kcnVjaCkgd3JvdGUgaW4gI25vdGUt MTg6DQo+IFt0aGUgcGlwZSBvcGVyYXRvcl0gaXMgSU1ITyBtb3N0bHkgYWJvdXQgdHlwZSBjb252 ZXJzaW9uDQoNCkhhdmluZyB1c2VkIEVsaXhpciBoZWF2aWx5IGZvciB0aGUgbGFzdCBzZXZlbiB5 ZWFycywgSSBkbyBub3QgYWdyZWUgd2l0aCB0aGlzIGRlc2NyaXB0aW9uLiBJdCAqY2FuKiBiZSwg YW5kIHRoZSBleGFtcGxlcyBpbiBxdWVzdGlvbiBtaWdodCBiZSwgYnV0IGl0J3MgdXNlZCBlcXVh bGx5IGluIHRyYW5zZm9ybWF0aW9uICh0eXBlIGNvbnZlcnNpb24pIGFuZCBpbiBjb250ZXh0IHBh c3NpbmcuIGBQbHVnYCAobW9yZSBvciBsZXNzIHRoZSBFbGl4aXIgZXF1aXZhbGVudCB0byBSYWNr KSBpcyBjb21wb3NhYmxlIGJlY2F1c2UgdGhlIGZpcnN0IHBhcmFtZXRlciB0byBldmVyeSBwbHVn IGZ1bmN0aW9uICh3aGV0aGVyIGEgYGZ1bmN0aW9uLzJgIG9yIGEgbW9kdWxlIHdpdGggYGluaXQv MWAgYW5kIGBjYWxsLzJgKSBpcyBhIGBQbHVnLkNvbm5gIHN0cnVjdCwgYWxsb3dpbmcgY29kZSBs aWtlIHRoaXM6DQoNCmBgYGVsaXhpcg0KZGVmIGNhbGwoY29ubiwgJUNvbmZpZ3t9ID0gY29uZmln KSBkbw0KICB7bWV0YWRhdGEsIHNwYW5fY29udGV4dH0gPQ0KICAgIHN0YXJ0X3NwYW4oOnBsdWcs ICV7Y29ubjogY29ubiwgb3B0aW9uczogQ29uZmlnLnRlbGVtZXRyeV9jb250ZXh0KGNvbmZpZyl9 KQ0KDQogIGNvbm4gPQ0KICAgIHJlZ2lzdGVyX2JlZm9yZV9zZW5kKGNvbm4sIGZuIGNvbm4gLT4N CiAgICAgIHN0b3Bfc3BhbihzcGFuX2NvbnRleHQsIE1hcC5wdXQobWV0YWRhdGEsIDpjb25uLCBj b25uKSkNCiAgICAgIGNvbm4NCiAgICBlbmQpDQoNCiAgcmVzdWx0cyA9DQogICAgY29ubg0KICAg IHw+IHZlcmlmeV9yZXF1ZXN0X2hlYWRlcnMoY29uZmlnKQ0KICAgIHw+IE1hcC5uZXcoKQ0KDQog IGNvbm4NCiAgfD4gcHV0X3ByaXZhdGUoY29uZmlnLm5hbWUsIHJlc3VsdHMpDQogIHw+IGRpc3Bh dGNoX3Jlc3VsdHMoY29uZmlnKQ0KICB8PiBkaXNwYXRjaF9vbl9yZXNvbHV0aW9uKGNvbmZpZy5v bl9yZXNvbHV0aW9uKQ0KZW5kDQpgYGANCg0KVGhpcyBpcyBubyBkaWZmZXJlbnQgdGhhbjoNCg0K YGBgZWxpeGlyDQpkZWYgY2FsbChjb25uLCAlQ29uZmlne30gPSBjb25maWcpIGRvDQogIHttZXRh ZGF0YSwgc3Bhbl9jb250ZXh0fSA9DQogICAgc3RhcnRfc3Bhbig6cGx1ZywgJXtjb25uOiBjb25u LCBvcHRpb25zOiBDb25maWcudGVsZW1ldHJ5X2NvbnRleHQoY29uZmlnKX0pDQoNCiAgY29ubiA9 DQogICAgcmVnaXN0ZXJfYmVmb3JlX3NlbmQoY29ubiwgZm4gY29ubiAtPg0KICAgICAgc3RvcF9z cGFuKHNwYW5fY29udGV4dCwgTWFwLnB1dChtZXRhZGF0YSwgOmNvbm4sIGNvbm4pKQ0KICAgICAg Y29ubg0KICAgIGVuZCkNCg0KICByZXN1bHRzID0gdmVyaWZ5X3JlcXVlc3RfaGVhZGVycyhjb25u LCBjb25maWcpDQogIHJlc3VsdHMgPSBNYXAubmV3KHJlc3VsdHMpDQoNCiAgY29ubiA9IHB1dF9w cml2YXRlKGNvbm4sIGNvbmZpZy5uYW1lLCByZXN1bHRzKQ0KICBjb25uID0gZGlzcGF0Y2hfcmVz dWx0cyhjb25uLCBjb25maWcpDQogIGRpc3BhdGNoX29uX3Jlc29sdXRpb24oY29ubiwgY29uZmln Lm9uX3Jlc29sdXRpb24pDQplbmQNCmBgYA0KDQpJIGZpbmQgdGhlIGZvcm1lciAqbXVjaCogbW9y ZSByZWFkYWJsZSwgYmVjYXVzZSBpdCdzIG1vcmUgZGF0YSBvcmllbnRlZCBhbmQgaW5kaWNhdGVz IHRoYXQgdGhlIGRhdGEgZmxvd3MgKnRocm91Z2gqIHRoZSBwaXBlIOKAlCB3aGVyZSBpdCBtaWdo dCBiZSB0cmFuc2Zvcm1lZCAoYGNvbm4gfD4gdmVyaWZ5X3JlcXVlc3RfaGVhZGVycyjigKYpIHw+ IE1hcC5uZXcoKWApIG9yIGl0IG1pZ2h0IGp1c3QgYmUgbW9kaWZ5aW5nIHRoZSBpbnB1dCBwYXJh bWV0ZXIgKGBjb25uIHw+IHB1dF9wcml2YXRlKOKApikgfD4gZGlzcGF0Y2hfcmVzdWx0cyjigKYp IHw+IGRpc3BhdGNoX29uX3Jlc29sdXRpb24o4oCmKWApLg0KDQpqZXJlbXlldmFuczAgKEplcmVt eSBFdmFucykgd3JvdGUgaW4gI25vdGUtMTA6DQo+IFdlIGNvdWxkIGV4cGFuZCB0aGUgc3ludGF4 IHRvIHRyZWF0IGAue31gIGFzIGAudGhlbnt9YCwgc2ltaWxhciB0byBob3cgYC4oKWAgaXMgYC5j YWxsKClgLiAgV2l0aCB0aGF0LCB5b3UgY291bGQgZG86DQo+IA0KPiBgYGBydWJ5DQo+IGNsaWVu dF9hcGlfdXJsDQo+ICAgLnsgVVJJLnBhcnNlKGl0KSB9DQo+ICAgLnsgTmV0OjpIVFRQLmdldChp dCkgfQ0KPiAgIC57IEpTT04ucGFyc2UoaXQpLmZldGNoKGltcG9ydGFudF9rZXkpIH0NCj4gYGBg DQo+IA0KPiBXaGljaCBpcyBhbG1vc3QgYXMgbG93IG9mIGEgc3ludGF0aWMgb3ZlcmhlYWQgYXMg eW91IHdvdWxkIHdhbnQuDQo+IA0KPiBOb3RlIHRoYXQgd2UgYXJlIHN0aWxsIGluIGEgc3ludGF4 IG1vcmF0b3JpdW0sIHNvIGl0J3MgcHJvYmFibHkgYmV0dGVyIHRvIHdhaXQgdW50aWwgYWZ0ZXIg dGhhdCBpcyBvdmVyIGFuZCB3ZSBoYXZlIGNyb3duZWQgdGhlIG9uZSB0cnVlIHBhcnNlciBiZWZv cmUgc2VyaW91c2x5IGNvbnNpZGVyaW5nIG5ldyBzeW50YXguDQoNClRoaXMgaXMg4oCmIGludGVy ZXN0aW5nLiBUaGUgYmlnZ2VzdCBwcm9ibGVtIHdpdGggaXQgKGZyb20gbXkgcGVyc3BlY3RpdmUp IGlzIHRoYXQgaXQgd291bGQgcHJpdmlsZWdlIGB7fWAgYmxvY2tzIHdpdGggdGhpcyBmb3JtLCBi ZWNhdXNlIGBkb2AgKmlzKiBhIHZhbGlkIG1ldGhvZCBuYW1lLCBzbyBgLmRvIFVSSS5wYXJzZShp dCkgZW5kYCBsaWtlbHkgYmUgYSBzeW50YXggZXJyb3IuIFRoYXQgYW5kIHRoZSBmYWN0IHRoYXQg aXQgd291bGQgYmUgbmVhcmx5IGEgZGVjYWRlIGJlZm9yZSBpdCBjb3VsZCBiZSB1c2VkIGJ5IG15 IGxpYnJhcmllcy4NCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0K RmVhdHVyZSAjMjA3NzA6IEEgKm5ldyogcGlwZSBvcGVyYXRvciBwcm9wb3NhbA0KaHR0cHM6Ly9i dWdzLnJ1YnktbGFuZy5vcmcvaXNzdWVzLzIwNzcwI2NoYW5nZS0xMTAwMDINCg0KKiBBdXRob3I6 IEFsZXhhbmRyZU1hZ3JvIChBbGV4YW5kcmUgTWFncm8pDQoqIFN0YXR1czogT3Blbg0KLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KSGVsbG8sDQoNClRoaXMgaXMgbXkg Zmlyc3QgY29udHJpYnV0aW9uIGhlcmUuIEkgaGF2ZSBzZWVuIHByZXZpb3VzIGRpc2N1c3Npb25z IGFyb3VuZCBpbnRyb2R1Y2luZyBhIHBpcGUgb3BlcmF0b3IsIGJ1dCBpdCBzZWVtcyB0aGUgY29t bXVuaXR5IGRpZG4ndCByZWFjaCBhIGNvbnNlbnN1cy4gSSB3b3VsZCBsaWtlIHRvIHJldmlzaXQg dGhpcyBpZGVhIHdpdGggYSBzaW1wbGVyIGFwcHJvYWNoLCBtb3JlIG9mIGEgc3ludGFjdGljIHN1 Z2FyIHRoYXQgYWxpZ25zIHdpdGggaG93IG90aGVyIGxhbmd1YWdlcyBpbXBsZW1lbnQgdGhlIHBp cGUgb3BlcmF0b3IsIGJ1dCB3aXRob3V0IG1ha2luZyBzaWduaWZpY2FudCBjaGFuZ2VzIHRvIFJ1 YnkncyBzeW50YXguDQoNCkN1cnJlbnRseSwgd2Ugb2Z0ZW4gd3JpdGUgY29kZSBsaWtlIHRoaXM6 DQoNCmBgYHJ1YnkNCnZhbHVlID0gaGFsZihzcXVhcmUoYWRkKHZhbHVlLCAzKSkpDQpgYGANCg0K V2UgY2FuIGFjaGlldmUgdGhlIHNhbWUgcmVzdWx0IHVzaW5nIHRoZSBgdGhlbmAgbWV0aG9kOg0K DQpgYGBydWJ5DQp2YWx1ZSA9IHZhbHVlLnRoZW4geyBhZGQoXzEsIDMpIH0udGhlbiB7IHNxdWFy ZShfMSkgfS50aGVuIHsgaGFsZihfMSkgfQ0KYGBgDQoNCldoaWxlIGB0aGVuYCBoZWxwcyB3aXRo IHJlYWRhYmlsaXR5LCB3ZSBjYW4gc2ltcGxpZnkgaXQgZnVydGhlciB1c2luZyB0aGUgcHJvcG9z ZWQgcGlwZSBvcGVyYXRvcjoNCg0KYGBgcnVieQ0KdmFsdWUgPSBhZGQodmFsdWUsIDMpIHw+IHNx dWFyZShfMSkgfD4gaGFsZihfMSkNCmBgYA0KDQpNb3Jlb3Zlciwgd2l0aCB0aGUgdXBjb21pbmcg YGl0YCBmZWF0dXJlIGluIFJ1YnkgMy40ICgjMTg5ODApLCB0aGUgY29kZSBjb3VsZCBsb29rIGV2 ZW4gY2xlYW5lcjoNCg0KYGBgcnVieQ0KdmFsdWUgPSBhZGQodmFsdWUsIDMpIHw+IHNxdWFyZShp dCkgfD4gaGFsZihpdCkNCmBgYA0KDQpUaGlzIHByb3Bvc2FsIHVzZXMgdGhlIGFub255bW91cyBi bG9jayBhcmd1bWVudCBgKF8xKWAsIGFuZCB3aXRoIGBpdGAsIGl0IHNpbXBsaWZpZXMgdGhlIGNv ZGUgd2l0aG91dCBpbnRyb2R1Y2luZyBjb21wbGV4IHN5bnRheCBjaGFuZ2VzLiBJdCB3b3VsZCBh bGxvdyB1cyB0byBhY2hpZXZlIHRoZSBzYW1lIHJlc3VsdHMgYXMgaW4gb3RoZXIgbGFuZ3VhZ2Vz IHRoYXQgc3VwcG9ydCBwaXBlIG9wZXJhdG9ycywgYnV0IGluIGEgd2F5IHRoYXQgZmVlbHMgbmF0 dXJhbCB0byBSdWJ5LCB1c2luZyBleGlzdGluZyBjb25zdHJ1Y3RzIGxpa2UgYHRoZW5gIHVuZGVy bmVhdGguDQoNCkkgYmVsaWV2ZSB0aGlzIG9wZXJhdG9yIHdvdWxkIGVuaGFuY2UgY29kZSByZWFk YWJpbGl0eSBhbmQgbWFpbnRhaW5hYmlsaXR5LCBlc3BlY2lhbGx5IGluIGNhc2VzIHdoZXJlIG11 bHRpcGxlIG9wZXJhdGlvbnMgYXJlIGNoYWluZWQgdG9nZXRoZXIuDQoNClRoYW5rIHlvdSBmb3Ig Y29uc2lkZXJpbmcgdGhpcyBwcm9wb3NhbCENCg0KDQoNCg0KDQoNCi0tIA0KaHR0cHM6Ly9idWdz LnJ1YnktbGFuZy5vcmcvDQogX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwogcnVieS1jb3JlIG1haWxpbmcgbGlzdCAtLSBydWJ5LWNvcmVAbWwucnVieS1sYW5n Lm9yZwogVG8gdW5zdWJzY3JpYmUgc2VuZCBhbiBlbWFpbCB0byBydWJ5LWNvcmUtbGVhdmVAbWwu cnVieS1sYW5nLm9yZwogcnVieS1jb3JlIGluZm8gLS0gaHR0cHM6Ly9tbC5ydWJ5LWxhbmcub3Jn L21haWxtYW4zL2xpc3RzL3J1YnktY29yZS5tbC5ydWJ5LWxhbmcub3JnLw==