[ruby-core:80510] [Ruby trunk Feature#13166] Feature Request: Byte Arrays for Ruby 3

From: Ruby-Lang@...
Date: 2017-03-31 08:04:24 UTC
List: ruby-core #80510
SXNzdWUgIzEzMTY2IGhhcyBiZWVuIHVwZGF0ZWQgYnkgandtaXR0YWcgKErDtnJnIFcgTWl0dGFn
KS4KCgpJIGFncmVlIHRoYXQgdGhlIE9QIHByb2JhYmx5IGlzIG1vcmUgaW50ZXJlc3RlZCBpbiBh
IGBCaXRWZWN0b3JgL2BCaXRBcnJheWAgdGhhbiBhIGBCeXRlQXJyYXlgLCBhdCBsZWFzdCBmb3Ig
dGhlIHNwZWNpZmljIHVzZSBjYXNlIGhlIGlzIGRlc2NyaWJpbmcuIE5vbmV0aGVsZXNzLCBzdWNo
IGEgZGF0YSB0eXBlIHNvdW5kcyB1c2VmdWwgZm9yIGhpZ2gtcGVyZm9ybWFuY2UgY29kZTsgaXQg
bWF5IGFsc28gbWFrZSBpdCBlYXNpZXIgdG8gc2VsZi1ob3N0IGxhcmdlciBwb3J0aW9ucyBvZiB0
aGUgc3RkbGliIGFuZCBjb3JlbGliLgoKSSB3b3VsZCBzdWdnZXN0IHRvIHRha2UgYSBnb29kIGxv
b2sgYXQgdGhlIHN0cnVjdHVyZWQgZGF0YSB0eXBlcyB0aGF0IGhhdmUgYmVlbiBhZGRlZCB0byBF
Q01BU2NyaXB0IGluIHRoZSBsYXN0IGZldyB5ZWFycywgc3BlY2lmaWNhbGx5IFtgVHlwZWRBcnJh
eWBzXShodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy10eXBlZGFycmF5LW9iamVj
dHMpLCBbYERhdGFWaWV3YF0oaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtZGF0
YXZpZXctb2JqZWN0cyksIGFuZCBbYEFycmF5QnVmZmVyYF0oaHR0cHM6Ly90YzM5LmdpdGh1Yi5p
by9lY21hMjYyLyNzZWMtYXJyYXlidWZmZXItb2JqZWN0cyksIHdoaWNoIGFyZSBhIGdlbmVyYWxp
emF0aW9uIG9mIHdoYXQgdGhlIE9QIGlzIGFza2luZyBhYm91dDogYEFycmF5QnVmZmVyYCBpcyBh
biB1bnR5cGVkIGNvbnRpZ3VvdXMgcG9ydGlvbiBvZiBtZW1vcnkuIEl0IGNhbm5vdCBiZSBtYW5p
cHVsYXRlZCBkaXJlY3RseSwgaXQgY2FuIG9ubHkgYmUgbWFuaXB1bGF0ZWQgdGhyb3VnaCAqdmll
d3MqLiBBIGJ1ZmZlciBjYW4gaGF2ZSBtdWx0aXBsZSB2aWV3cyBhc3NvY2lhdGVkIHdpdGggaXQs
IGFuZCBhIHZpZXcgY2FuIGJlIGFzc29jaWF0ZWQgd2l0aCBvbmx5IGEgc3Vic2VjdGlvbiBvZiB0
aGUgYnVmZmVyLiBUaGVyZSBhcmUgdHdvIGtpbmRzIG9mIHZpZXdzOiBgRGF0YVZpZXdgcyBvZmZl
ciBoZXRlcm9nZW5lb3VzIGFjY2Vzcywgd2l0aCBtZXRob2RzIGxpa2UgYHNldF9pbnQ4YCwgYHNl
dF91aW50OGAsIGBzZXRfaW50MTZgLCBgc2V0X2Zsb2F0NjRgIChhbmQgdGhlIGNvcnJlc3BvbmRp
bmcgYGdldF8qYCBtZXRob2RzKSBhbmQgc28gb24uIGBUeXBlZEFycmF5YHMgb2ZmZXIgaG9tb2dl
bmVvdXMgYWNjZXNzLCB0aGVyZSBhcmUgdHlwZXMgbGlrZSBgSW50OEFycmF5YCwgYFVJbnQ4QXJy
YXlgLCBhbmQgc28gb24uIGBUeXBlZEFycmF5YHMgYmVoYXZlIGxpa2UgYEFycmF5YHMsIGJ1dCBv
bmx5IHN1cHBvcnQgYSBzdWJzZXQgb2YgYEFycmF5YCBtZXRob2RzLgoKVHJhbnNsYXRpbmcgdGhl
IEVDTUFTY3JpcHQgQVBJIHRvIFJ1YnkgY291bGQgbG9vayBzb21ldGhpbmcgbGlrZSB0aGlzOgoK
YGBgcnVieQpjbGFzcyBBcnJheUJ1ZmZlcgogIGRlZiBpbml0aWFsaXplKGxlbmd0aCkgZW5kCgog
IGF0dHJfcmVhZGVyIDpieXRlX2xlbmd0aAoKICBkZWYgc2xpY2UoYmVnaW5fb2Zmc2V0LCBlbmRf
b2Zmc2V0ID0gYnl0ZV9sZW5ndGgpIGVuZAplbmQKCmNsYXNzIERhdGFWaWV3CiAgZGVmIGluaXRp
YWxpemUoYnVmZmVyLCBieXRlX29mZnNldCA9IDAsIGJ5dGVfbGVuZ3RoID0gYnVmZmVyLmJ5dGVf
bGVuZ3RoIC0gYnl0ZV9vZmZzZXQpIGVuZAoKICBhdHRyX3JlYWRlciA6YnVmZmVyLCA6Ynl0ZV9v
ZmZzZXQsIDpieXRlX2xlbmd0aAoKICBkZWYgZ2V0X2ludDgoYnl0ZV9vZmZzZXQpIGVuZAogIGRl
ZiBzZXRfaW50OChieXRlX29mZnNldCwgdmFsdWUpIGVuZAogIGRlZiBnZXRfdWludDgoYnl0ZV9v
ZmZzZXQpIGVuZAogIGRlZiBzZXRfdWludDgoYnl0ZV9vZmZzZXQsIHZhbHVlKSBlbmQKICBkZWYg
Z2V0X3VpbnQ4YyhieXRlX29mZnNldCkgZW5kCiAgZGVmIHNldF91aW50OGMoYnl0ZV9vZmZzZXQs
IHZhbHVlKSBlbmQKICBkZWYgZ2V0X2ludDE2KGJ5dGVfb2Zmc2V0LCBsaXR0bGVfZW5kaWFuID0g
ZmFsc2UpIGVuZAogIGRlZiBzZXRfaW50MTYoYnl0ZV9vZmZzZXQsIHZhbHVlLCBsaXR0bGVfZW5k
aWFuID0gZmFsc2UpIGVuZAogIGRlZiBnZXRfdWludDE2KGJ5dGVfb2Zmc2V0LCBsaXR0bGVfZW5k
aWFuID0gZmFsc2UpIGVuZAogIGRlZiBzZXRfdWludDE2KGJ5dGVfb2Zmc2V0LCB2YWx1ZSwgbGl0
dGxlX2VuZGlhbiA9IGZhbHNlKSBlbmQKICBkZWYgZ2V0X2ludDMyKGJ5dGVfb2Zmc2V0LCBsaXR0
bGVfZW5kaWFuID0gZmFsc2UpIGVuZAogIGRlZiBzZXRfaW50MzIoYnl0ZV9vZmZzZXQsIHZhbHVl
LCBsaXR0bGVfZW5kaWFuID0gZmFsc2UpIGVuZAogIGRlZiBnZXRfdWludDMyKGJ5dGVfb2Zmc2V0
LCBsaXR0bGVfZW5kaWFuID0gZmFsc2UpIGVuZAogIGRlZiBzZXRfdWludDMyKGJ5dGVfb2Zmc2V0
LCB2YWx1ZSwgbGl0dGxlX2VuZGlhbiA9IGZhbHNlKSBlbmQKICBkZWYgZ2V0X2ludDY0KGJ5dGVf
b2Zmc2V0LCBsaXR0bGVfZW5kaWFuID0gZmFsc2UpIGVuZAogIGRlZiBzZXRfaW50NjQoYnl0ZV9v
ZmZzZXQsIHZhbHVlLCBsaXR0bGVfZW5kaWFuID0gZmFsc2UpIGVuZAogIGRlZiBnZXRfdWludDY0
KGJ5dGVfb2Zmc2V0LCBsaXR0bGVfZW5kaWFuID0gZmFsc2UpIGVuZAogIGRlZiBzZXRfdWludDY0
KGJ5dGVfb2Zmc2V0LCB2YWx1ZSwgbGl0dGxlX2VuZGlhbiA9IGZhbHNlKSBlbmQKICBkZWYgZ2V0
X2Zsb2F0MzIoYnl0ZV9vZmZzZXQsIGxpdHRsZV9lbmRpYW4gPSBmYWxzZSkgZW5kCiAgZGVmIHNl
dF9mbG9hdDMyKGJ5dGVfb2Zmc2V0LCB2YWx1ZSwgbGl0dGxlX2VuZGlhbiA9IGZhbHNlKSBlbmQK
ICBkZWYgZ2V0X2Zsb2F0NjQoYnl0ZV9vZmZzZXQsIGxpdHRsZV9lbmRpYW4gPSBmYWxzZSkgZW5k
CiAgZGVmIHNldF9mbG9hdDY0KGJ5dGVfb2Zmc2V0LCB2YWx1ZSwgbGl0dGxlX2VuZGlhbiA9IGZh
bHNlKSBlbmQKZW5kCgpjbGFzcyBUeXBlZEFycmF5CiAgcHJpdmF0ZV9jbGFzc19tZXRob2QgOm5l
dyAjIFR5cGVkQXJyYXkgaXMgYWJzdHJhY3QKICBkZWYgaW5pdGlhbGl6ZShsZW5ndGgpIGVuZAog
IGRlZiBpbml0aWFsaXplKHR5cGVkX2FycmF5KSBlbmQKICBkZWYgaW5pdGlhbGl6ZShlbnVtKSBl
bmQKICBkZWYgaW5pdGlhbGl6ZShidWZmZXIsIGJ5dGVfb2Zmc2V0ID0gMCwgYnl0ZV9sZW5ndGgg
PSBidWZmZXIuYnl0ZV9sZW5ndGggLSBieXRlX29mZnNldCkgZW5kCgogIGF0dHJfcmVhZGVyIDpi
dWZmZXIsIDpieXRlX29mZnNldCwgOmJ5dGVfbGVuZ3RoLCA6bGVuZ3RoCgogIGRlZiBzZXQoYXJy
YXksIG9mZnNldCA9IDApIGVuZAogIGRlZiBzdWJhcnJheShiZWdpbl9vZmZzZXQgPSAwLCBlbmRf
b2Zmc2V0ID0gYnl0ZV9sZW5ndGgpCgogIGluY2x1ZGUgRW51bWVyYWJsZQoKICBjbGFzcyBJbnQ4
IDwgc2VsZgogICAgQllURVNfUEVSX0VMRU1FTlQgPSAxCgogICAgZGVmIGVhY2goJmJsaykgZW5k
CiAgICBkZWYgW10o4oCmKSBlbmQKICAgIGRlZiBbXT0o4oCmKSBlbmQKCiAgICAjIGFkZGl0aW9u
YWwgYXJyYXkgbWV0aG9kcyDigKYKICBlbmQKCiAgY2xhc3MgVUludDggPCBzZWxmCiAgICBCWVRF
U19QRVJfRUxFTUVOVCA9IDEKCiAgICAjIOKApgogIGVuZAoKICBjbGFzcyBVSW50OEMgPCBzZWxm
CiAgICBCWVRFU19QRVJfRUxFTUVOVCA9IDEKCiAgICAjIOKApgogIGVuZAoKICBjbGFzcyBJbnQx
NiA8IHNlbGYKICAgIEJZVEVTX1BFUl9FTEVNRU5UID0gMgoKICAgICMg4oCmCiAgZW5kCgogICMg
YW5kIHNvIG9uCmVuZAoKY2xhc3MgQXJyYXkKICBkZWYgdG9fdHlwZWRfYXJyYXkodHlwZSkgZW5k
CmVuZApgYGAKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KRmVhdHVy
ZSAjMTMxNjY6IEZlYXR1cmUgUmVxdWVzdDogQnl0ZSBBcnJheXMgZm9yIFJ1YnkgMwpodHRwczov
L2J1Z3MucnVieS1sYW5nLm9yZy9pc3N1ZXMvMTMxNjYjY2hhbmdlLTY0MDEzCgoqIEF1dGhvcjog
anpha2l5YSAoSmFiYXJpIFpha2l5YSkKKiBTdGF0dXM6IEZlZWRiYWNrCiogUHJpb3JpdHk6IE5v
cm1hbAoqIEFzc2lnbmVlOiAKKiBUYXJnZXQgdmVyc2lvbjogCi0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KSSBkbyBhIGxvdCBvZiBudW1lcmljYWxseSBpbnRlbnNpdmUg
YXBwbGljYXRpb25zLgpJbiBtYW55IGluc3RhbmNlcyBJIHVzZSBhcnJheXMgdGhhdCBjb250YWlu
IGJvb2xlYW4gZGF0YSAodHJ1ZXxmYWxzZSBvciAxfDApIHZhbHVlcy4KCldoZW4gSSBjcmVhdGUg
c3VjaCBhbiBhcnJheSBsaWtlOgoKYGRhdGEgPSBBcnJheS5uZXcoc2l6ZSwgdmFsdWUpYCBvciBq
dXN0ICBgZGF0YSA9IEFycmF5Lm5ldyhzaXplKWAKCmlzIGl0IGNvcnJlY3QgdGhhdCB0aGUgZGVm
YXVsdCBtZW1vcnkgdW5pdCBzaXplIGlzIHRoYXQgb2YgdGhlIGNwdSwgaS5lLiAoMzJ8NjQpLWJp
dD8KClNpbmNlIGFsbW9zdCBhbGwgbW9kZXJuIGNwdXMgYXJlIGJ5dGUgYWRkcmVzc2FibGUsIEkg
d2FudCB0byBvcHRpbWFsbHkgdXNlIHRoZWlyIHN5c3RlbSBtZW1vcnkgCmJ5IGJlaW5nIGFibGUg
dG8gZXhwbGljaXRseSBjcmVhdGUgYXJyYXlzIG9mIGJ5dGUgYWRkcmVzc2FibGUgZWxlbWVudHMu
CgpGb3IgdGhlc2UgdXNlIGNhc2VzLCB0aGlzIHdsbGwgYWxsb3cgbXkgYXBwcyB0byBleHRlbmQg
dGhlaXIgbWVtb3J5IHVzZSBjYXBhY2l0eSwgaW5zdGVhZApvZiB3YXN0aW5nIDMxfDYzIGJpdCBv
ZiBtZW1vcnkgb24gMzJ8NjQgYml0IGNwdXMgc3lzdGVtcyBqdXN0IHRvIHN0b3JlIGEgYm9vbGVh
biB2YWx1ZS4KClRvIGJlIGNsZWFyLCBJIGFtIG5vdCB0YWxraW5nIGFib3V0IHN0b3JpbmcgInN0
cmluZ3MiIG9yICJjaGFycyIgYnV0IGFkZGVzc2FibGUgOC1iaXQgbnVtYmVyIGVsZW1lbnRzLgoK
SSBoYXZlIG5vdCBzZWVuIHRoaXMgY2FwYWJpbGl0eSBkb2N1bWVudGVkIGluIFJ1YnksIHRodXMg
SSByZXF1ZXN0IHRoaXMgZmVhdHVyZSBiZSBhZGRlZCB0bwpSdWJ5IDMsIGFuZCBwcm9wb3NlIHRo
ZSBmb2xsb3dpbmcgc3ludGF4IHRoYXQgd2lsbCBiZSBiYWNrd2FyZHMgY29tcGF0aWJsZSAobm9u
IGNvbmZsaWN0aW5nKS4KCmBgYHJ1YnkKZGF0YSA9IEFycmF5OC5uZXcoc2l6ZSwgdmFsdWUpCmBg
YAoKSGF2aW5nIGV4cGxpY2l0IGFkZHJlc3NhYmxlIGJ5dGUgYXJyYXlzIG5vdCBvbmx5IHdpbGwg
aW5jcmVhc2UgbWVtb3J5IHVzZSBjb21wYWN0bmVzcyBvZiBtYW55CmFwcGxpY2F0aW9ucywgdGhp
cyBjb21wYWN0bmVzcyB3aWxsIGRpcmVjdGx5IGNvbnRyaWJ1dGUgdG8gdGhlIFJ1YnkgM3gzIGdv
YWwgZm9yIHBlcmZvcm1hbmNlCmJ5IGFsbG93aW5nIG1vcmUgZGF0YSB0byBiZSBoZWxkIGVudGly
ZWx5IGluIGNhY2hlIG1lbW9yeSB3aGVuIHBvc3NpYmxlLgoKVGhhbmtzIGluIGFkdmFuY2UgZm9y
IGl0cyBjb25zaWRlcmF0b2luLgoKCgoKLS0gCmh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnLwoK
VW5zdWJzY3JpYmU6IDxtYWlsdG86cnVieS1jb3JlLXJlcXVlc3RAcnVieS1sYW5nLm9yZz9zdWJq
ZWN0PXVuc3Vic2NyaWJlPgo8aHR0cDovL2xpc3RzLnJ1YnktbGFuZy5vcmcvY2dpLWJpbi9tYWls
bWFuL29wdGlvbnMvcnVieS1jb3JlPgo=

In This Thread

Prev Next