[ruby-core:109501] [Ruby master Feature#17330] Object#non
From:
"zverok (Victor Shepelev)" <noreply@...>
Date:
2022-08-16 15:23:15 UTC
List:
ruby-core #109501
SXNzdWUgIzE3MzMwIGhhcyBiZWVuIHVwZGF0ZWQgYnkgenZlcm9rIChWaWN0b3IgU2hlcGVsZXYp LgoKCkBtYW1lIE9uZSB0aGluZyB0aGF0IGlzIHJlYWxseSBmcmVxdWVudCBpbiBSYWlscyBjb2Rl YmFzZXMgaXMgY29kZSBsaWtlIHRoaXM6CmBgYHJ1YnkKcGFyYW1zLnByZXNlbmNlIHx8IERFRkFV VF9QQVJBTVMKIyBvciwgcXVvdGluZyBmcm9tIGFib3ZlLCB3aGF0IEkgd3JpdGUgYXMuLi4KcGFy YW1zWzpuYW1lXSYubm9uKCY6ZW1wdHk/KQojIGluIFJhaWxzIHdvdWxkIGJlLi4uCnBhcmFtc1s6 bmFtZV0ucHJlc2VuY2UKYGBgCihub3Qgb25seSBgcGFyYW1zYC1yZWxhdGVkLCBpdCBpcyBqdXN0 IGFuIGV4YW1wbGUpCgpJdCByZWxpZXMgb24gUmFpbHMteSAoYW5kIFBIUC15LCBidXQgbm90IFJ1 YnktaXNoKSBjb25jZXB0IG9mICJldmVyeSBlbXB0eSBvYmplY3QgaXMgbm90IF9wcmVzZW50XyIu IEl0cyBleGlzdGVuY2UgYW5kIHBvcHVsYXJpdHkgaXMgbm90YWJsZS4gQnV0IGl0IGlzIAphKSB2 ZXJ5IHBhcnRpY3VsYXIgKG9ubHkgZW1wdHkvZmFsc3kgb2JqZWN0cyksIGFuZCBhdCB0aGUgc2Ft ZSB0aW1lCmIpIHZlcnkgaW1wcmVjaXNlIChlbXB0eSBBTkQgZmFsc3kgb2JqZWN0cywgc28gYnkg dGhlIGAucHJlc2VuY2VgIHlvdSBjYW4ndCB0ZWxsIHdoZXRoZXIgYG5pbGAgY291bGQgYmUgaGVy ZSBvciBub3QsIG9yIGBmYWxzZWAgY291bGQgYmUgZXRjLikKCkkgYW0gdHJ5aW5nIHRvIGdlbmVy YWxpemUgaXQgdG8gYmUgc3VpdGFibGUgZm9yIHRoZSBjaGFpbmFibGUgc3R5bGUgb2YgY29tcHV0 YXRpb25zLiBUaGUgZXhpc3RlbmNlIG9mIGBub256ZXJvP2AgaGlnaGxpZ2h0cyB0aGF0IFJ1Ynkg Y29yZSBkZXZzIGFsc28gdHJpZWQgdG8gYWRkcmVzcyB0aGUgcHJvYmxlbS4KCkkgZmluZCB0aGF0 IGZyZXF1ZW50bHkgZXhpc3RlbmNlIG9mICJjaGFpbmFibGUtZnJpZW5kbHkiIEFQSSBpbnNwaXJl cyB0aGUgZGVzaWduIG9mIG90aGVyIEFQSXMsIHNheSwgRmFyYWRheSBleGFtcGxlIGNhbiBiZSBz aW1wbGlmaWVkIHdpdGggCmBgYHJ1YnkKRmFyYWRheS5nZXQodXJsKS5ub24oJjplcnJvcj8pJi5i b2R5CmBgYApXaGljaCBzcGVsbHMgYXMgYSBkaXJlY3QgdGVsbGluZyB3aGF0J3MgaGFwcGVuaW5n OiAiZ2V0IHJlc3BvbnNlIGZyb20gVVJMLCBbdGhlbiwgaXQgaXQgaXNdIG5vbi1lcnJvciwgZ2V0 IHRoZSByZXNwb25zZSBib2R5IgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KRmVhdHVyZSAjMTczMzA6IE9iamVjdCNub24KaHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5v cmcvaXNzdWVzLzE3MzMwI2NoYW5nZS05ODY2OQoKKiBBdXRob3I6IHp2ZXJvayAoVmljdG9yIFNo ZXBlbGV2KQoqIFN0YXR1czogT3BlbgoqIFByaW9yaXR5OiBOb3JtYWwKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQooQXMgYWx3YXlzICJ3aXRoIGNvcmUiIG1ldGhvZCBw cm9wb3NhbHMsIEkgZG9uJ3QgZXhwZWN0IHF1aWNrIHN1Y2Nlc3MsIGJ1dCBob3BlIGZvciBhIGZy dWl0ZnVsIGRpc2N1c3Npb24pCgojIyMgUmVhc29uczoKClJ1YnkgYWx3YXlzIHRyaWVkIHRvIGJl IHZlcnkgY2hhaW5hYmlsaXR5LWZyaWVuZGx5LiBSZWNlbnRseSwgd2l0aCBpbnRyb2R1Y3Rpb24g b2YgYC50aGVuYCBhbmQgYD0+YCwgZXZlbiBtb3JlIHNvLiBCdXQgb25lIHBhdHRlcm4gdGhhdCBm cmVxdWVudGx5IGVtZXJnZXMgYW5kIGRvZXNuJ3QgaGF2ZSBnb29kIGlkaW9tYXRpYyBleHByZXNz aW9uOiBjYWxjdWxhdGUgc29tZXRoaW5nLCBhbmQgaWYgaXQgaXMgbm90IGEgImdvb2QiIHZhbHVl LCByZXR1cm4gYG5pbGAgKG9yIHByb3ZpZGUgZGVmYXVsdCB2YWx1ZSB3aXRoIGB8fGApLiBUaGVy ZSBhcmUgY3VycmVudGx5IHR3byBwYXJ0aWFsIHNvbHV0aW9uczoKCjEuIGBub256ZXJvP2AgaW4g UnVieSBjb3JlIChmcmVxdWVudGx5IG1vY2tlZCBmb3IgImluYWRlcXVhdGUiIGJlaGF2aW9yLCBh cyBpdCBpcyBsb29raW5nIGxpa2UgcHJlZGljYXRlIG1ldGhvZCwgYnV0IGluc3RlYWQgb2YgYHRy dWVgL2BmYWxzZWAgcmV0dXJucyBhbiBvcmlnaW5hbCB2YWx1ZSBvciBgbmlsYCkKMi4gQWN0aXZl U3VwcG9ydCBgT2JqZWN0I3ByZXNlbmNlYCwgd2hpY2ggYWxzbyByZXR1cm5zIGFuIG9yaWdpbmFs IHZhbHVlIG9yIGBuaWxgIGlmIGl0IGlzIG5vdCAicHJlc2VudCIgKGUuZy4gYG5pbGAgb3IgYGVt cHR5P2AgaW4gQVMtc3BlYWspCgpCb3RoIG9mIHRoZW0gcHJvdmUgdGhlbXNlbHZlcyBxdWl0ZSB1 c2VmdWwgaW4gc29tZSBkb21haW5zLCBidXQgdGhleSBhcmUgdGFyZ2V0aW5nIG9ubHkgdGhvc2Ug cGFydGljdWxhciBkb21haW5zLCBsb29rIHVubGlrZSBlYWNoIG90aGVyLCBhbmQgY2FuIGJlIGNv bmZ1c2luZy4KCiMjIyBQcm9wb3NhbDoKCk1ldGhvZCBgT2JqZWN0I25vbmAgKG9yIGBLZXJuZWwj bm9uYCksIHdoaWNoIHJlY2VpdmVzIGEgYmxvY2ssIGNhbGxzIGl0IHdpdGggcmVjZWl2ZXIgYW5k IHJldHVybnMgYG5pbGAgKGlmIGJsb2NrIG1hdGNoZWQpIG9yIHJlY2VpdmVyIG90aGVyd2lzZS4K CiMjIyMjIFByb3RvdHlwZSBpbXBsZW1lbnRhdGlvbjoKCmBgYHJ1YnkKY2xhc3MgT2JqZWN0CiAg ZGVmIG5vbgogICAgc2VsZiB1bmxlc3MgeWllbGQoc2VsZikKICBlbmQKZW5kCmBgYAoKIyMjIyMg VXNhZ2UgZXhhbXBsZXM6CgoxLiBXaXRoIG51bWJlcjoKCiAgICBgYGBydWJ5CiAgICBsaW1pdCA9 IGNhbGN1bGF0ZS5zb21lLmxpbWl0CiAgICBsaW1pdC56ZXJvPyA/IERFRkFVTFRfTElNSVQgOiBs aW1pdAogICAgIyBvciwgd2l0aCBub256ZXJvPwogICAgY2FsY3VsYXRlLnNvbWUubGltaXQubm9u emVybz8gfHwgREVGQVVMVF9MSU1JVAogICAgIyB3aXRoIG5vbjoKICAgIGNhbGN1bGF0ZS5zb21l LmxpbWl0Lm5vbigmOnplcm8/KSB8fCBERUZBVUxUX0xJTUlUCiAgICAjIF4gTm90ZSBoZXJlLCBo b3csIHVubGlrZSBgbm9uemVybz9gLCB3ZSBzZWUgcHJlZGljYXRlLXkgPywgYnV0IGl0IGlzIElO U0lERSB0aGUgYG5vbigpYCBhbmQgbGVzcyBjb25mdXNpbmcKICAgIGBgYAoKMi4gV2l0aCBzdHJp bmc6CgogICAgYGBgcnVieQogICAgbmFtZSA9IHBhcmFtc1s6bmFtZV0gaWYgcGFyYW1zWzpuYW1l XSAmJiAhcGFyYW1zWzpuYW1lXS5lbXB0eT8KICAgICMgb3IsIHdpdGggQWN0aXZlU3VwcG9ydDoK ICAgIG5hbWUgPSBwYXJhbXNbOm5hbWVdLnByZXNlbmNlCiAgICAjIHdpdGggbm9uOgogICAgbmFt ZSA9IHBhcmFtc1s6bmFtZV0mLm5vbigmOmVtcHR5PykKICAgIGBgYAoKMy4gTW9yZSBjb21wbGlj YXRlZCBleGFtcGxlCgogICAgYGBgcnVieQogICAgYWN0aW9uID0gcGF5bG9hZC5kaWcoJ2FjdGlv bicsICd0eXBlJykKICAgIHJldHVybiBpZiBQUk9ISUJJVEVEX0FDVElPTlMuaW5jbHVkZT8oYWN0 aW9uKQogICAgc2VuZCgiZG9fI3thY3Rpb259IikKICAgICMgd2l0aCBub24gJiB0aGVuOgogICAg cGF5bG9hZC5kaWcoJ2FjdGlvbicsICd0eXBlJykKICAgICAgLm5vbiB7IHxhY3Rpb258IFBST0hJ QklURURfQUNUSU9OUy5pbmNsdWRlPyhhY3Rpb24pIH0KICAgICAgJi50aGVuIHsgfGFjdGlvbnwg c2VuZCgiZG9fI3thY3Rpb259IikgfQogICAgYGBgCgpCYXNpY2FsbHksIHRoZSBwcm9wb3NhbCBp cyBhICJjaGFpbmFibGUgZ3VhcmQgY2xhdXNlIiB0aGF0IGFsbG93cyB0byAiY2hhaW4iaWZ5IGFu ZCBEUllpZnkgY29kZSBsaWtlOgoKYGBgcnVieQp2YWx1ZSA9IGZldGNoX3NvbWV0aGluZwpyZXR1 cm4gdmFsdWUgdW5sZXNzIHZhbHVlLndpdGhfcHJvYmxlbXM/CiMgd2hpY2ggdHVybnMgaW50bwpm ZXRjaF9zb21ldGhpbmcubm9uKCY6d2l0aF9wcm9ibGVtcz8pCgojIG9yCnZhbHVlID0gZmV0Y2hf c29tZXRoaW5nCnZhbHVlID0gcmVhc29uYWJsZV9kZWZhdWx0IGlmIHZhbHVlLndpdGhfcHJvYmxl bXM/CiMgdHVybnMgaW50bwp2YWx1ZSA9IGZldGNoX3NvbWV0aGluZy5ub24oJjp3aXRoX3Byb2Js ZW1zPykgfHwgcmVhc29uYWJsZV9kZWZhdWx0CmBgYAoKSSBiZWxpZXZlIHRoYXQgdGhpcyBpZGlv bSBpcyBmcmVxdWVudCBlbm91Z2gsIGluIGNvbWJpbmF0aW9ucyBsaWtlIChhc3NvcnRlZCBleGFt cGxlcykgInJlYWQgY29uZmlnIGZpbGUgYnV0IHJldHVybiBgbmlsYCBpZiBpdCBpcyBlbXB0eS93 cm9uZyB2ZXJzaW9uIiwgImZldGNoIGxhdGVzdCBpbnZvaWNlLCBidXQgaWdub3JlIGlmIGl0IGhh cyBhbiBgdW5wYXlhYmxlYCBmbGFnIiwgImZldGNoIGEgbGlzdCBvZiBsYXN0IHVzZXIncyBzZWFy Y2hlcywgYnV0IGlmIGl0IGlzIGVtcHR5LCBwcm92aWRlIGRlZmF1bHQgc2VhcmNoIGhpbnRzIiBl dGMuCgpJIGJlbGlldmUgdGhlcmUgX2lzXyB1biB1bnJlZmxlY3RlZCBuZWVkIGZvciBpZGlvbSBs aWtlIHRoaXMsIHRoZSBuZWVkIHRoYXQgaXMgZGVtb25zdHJhdGVkIGJ5IHRoZSBleGlzdGVuY2Ug b2YgYG5vbnplcm8/YCBhbmQgYHByZXNlbmNlYC4KCgoKLS0gCmh0dHBzOi8vYnVncy5ydWJ5LWxh bmcub3JnLwoKVW5zdWJzY3JpYmU6IDxtYWlsdG86cnVieS1jb3JlLXJlcXVlc3RAcnVieS1sYW5n Lm9yZz9zdWJqZWN0PXVuc3Vic2NyaWJlPgo8aHR0cDovL2xpc3RzLnJ1YnktbGFuZy5vcmcvY2dp LWJpbi9tYWlsbWFuL29wdGlvbnMvcnVieS1jb3JlPgo=