[ruby-core:74394] [Ruby trunk Feature#12092] Allow Object#clone to yield cloned object before freezing

From: merch-redmine@...
Date: 2016-03-17 05:51:27 UTC
List: ruby-core #74394
SXNzdWUgIzEyMDkyIGhhcyBiZWVuIHVwZGF0ZWQgYnkgSmVyZW15IEV2YW5zLgoKCk1hcnRpbiBE
w7xyc3Qgd3JvdGU6Cj4gSGVsbG8gSmVyZW15LAo+ICAKPiAgT24gMjAxNi8wMy8xNyAwMToxNCwg
bWVyY2gtcmVkbWluZUBqZXJlbXlldmFucy5uZXQgd3JvdGU6Cj4gIAo+ICA+IE5vYnV5b3NoaSBO
YWthZGEgd3JvdGU6Cj4gID4+IFdoeSBkb2VzIGl0IG5lZWQgdG8gYmUgYSBzaW5nbGV0b24gbWV0
aG9kIGJ1dCBjYW4ndCBhIG1ldGhvZCBmcm9tIGFuIGluY2x1ZGVkIG1vZHVsZT8KPiAgPgo+ICA+
IEkgdGhpbmsgdGhpcyBzaG91bGQgd29yayB3aXRoIGFyYml0cmFyeSBvYmplY3RzLCBhbmQgYWxs
IG9iamVjdHMgaW4gcnVieSB0aGF0IGNhbiBoYXZlIHNpbmdsZXRvbiBjbGFzc2VzIHN1cHBvcnQg
c2luZ2xldG9uIG1ldGhvZHMuCj4gIAo+ICBBdCB0aGUgZGV2ZWxvcGVyJ3MgbWVldGluZyB5ZXN0
ZXJkYXksIHdlIHdlcmUgd29uZGVyaW5nIHdoZXRoZXIgeW91ciAKPiAgcmVxdWVzdCBpcyBtb3N0
bHkgYmFzZWQgb24gYSBjb21wbGV0ZW5lc3MvY29uc2lzdGVuY3kgYXJndW1lbnQgKHdoaWNoIAo+
ICB0aGUgYWJvdmUgc2VudGVuY2UgbG9va3MgbGlrZSkgb3Igd2hldGhlciB5b3UgaGF2ZSBzb21l
IGFjdHVhbCB1c2UgY2FzZSAKPiAgKHRoZSBwZXJmb3JtYW5jZSBhcmd1bWVudHMgeW91IGdpdmUg
c2VlbSB0byBpbmRpY2F0ZSB5b3UgaGF2ZSBhIHVzZSBjYXNlIAo+ICB0aGF0IGludm9sdmVzIGEg
bG90IG9mIGFjdHVhbCBvcGVyYXRpb25zKS4KPiAgCj4gIFNvIGdpdmluZyBtb3JlIGV4YW1wbGVz
IG9mIHVzZSBjYXNlcyAobm90ICJMZXQncyBzYXkuLi4iLCBidXQgYWN0dWFsIAo+ICB1c2FnZSkg
d291bGQgaGVscCBhIGxvdCB0byBtb3ZlIHRoaXMgaXNzdWUgZm9yd2FyZC4KCkkgd291bGQgZXZl
bnR1YWxseSBsaWtlIHRvIHVzZSB0byB1c2UgdGhpcyB3aXRoIFNlcXVlbCBkYXRhc2V0cy4gIElu
IFNlcXVlbCwgZGF0YXNldCBleHRlbnNpb25zIGFuZCBtb2RlbCBwbHVnaW5zIHJlc3VsdCBpbiBk
YXRhc2V0IGluc3RhbmNlcyB0aGF0IGFyZSBleHRlbmRlZCB3aXRoIG11bHRpcGxlIG1vZHVsZXMs
IGFuZCB1c2VycyBjYW4gYWx3YXlzIGFkZCBtZXRob2RzIGRpcmVjdGx5IHRvIGRhdGFzZXRzLiAg
U2VxdWVsJ3MgZGF0YXNldCBBUEkgaXMgYnVpbHQgYXJvdW5kICNjbG9uZSwgd2hpY2ggU2VxdWVs
OjpEYXRhc2V0IG92ZXJyaWRlcyBhbmQgY2FsbHMgc3VwZXI6Cgp+fn4KICAgIGRlZiBjbG9uZShv
cHRzID0gbmlsKQogICAgICBjID0gc3VwZXIoKQogICAgICBpZiBvcHRzCiAgICAgICAgYy5pbnN0
YW5jZV92YXJpYWJsZV9zZXQoOkBvcHRzLCBIYXNoW0BvcHRzXS5tZXJnZSEob3B0cykpCiAgICAg
ICAgYy5pbnN0YW5jZV92YXJpYWJsZV9zZXQoOkBjb2x1bW5zLCBuaWwpIGlmIEBjb2x1bW5zICYm
ICFvcHRzLmVhY2hfa2V5e3xvfCBicmVhayBpZiBDT0xVTU5fQ0hBTkdFX09QVFMuaW5jbHVkZT8o
byl9CiAgICAgIGVsc2UKICAgICAgICBjLmluc3RhbmNlX3ZhcmlhYmxlX3NldCg6QG9wdHMsIEhh
c2hbQG9wdHNdKQogICAgICBlbmQKICAgICAgYwogICAgZW5kCn5+fgoKQmVjYXVzZSB0aGlzIGNh
bm5vdCBjdXJyZW50bHkgd29yayB3aXRoIGZyb3plbiBvYmplY3RzLCBJIGhhdmUgdG8gb3ZlcnJp
ZGUgI2ZyZWV6ZToKCn5+fgogICAgZGVmIGZyZWV6ZQogICAgICBAZnJvemVuID0gdHJ1ZQogICAg
ICBzZWxmCiAgICBlbmQKfn5+CgpBbmQgdGhlbiBJIGhhdmUgdG8gbWFudWFsbHkgY2hlY2sgd2hl
dGhlciB0aGUgaW5zdGFuY2UgaXMgZnJvemVuIGluIGV2ZXJ5IG1ldGhvZCB0aGF0IG11dGF0ZXMg
dGhlIGluc3RhbmNlOgoKfn5+CiAgICBkZWYgaWRlbnRpZmllcl9vdXRwdXRfbWV0aG9kPSh2KQog
ICAgICByYWlzZV9pZl9mcm96ZW4hCiAgICAgIEBpZGVudGlmaWVyX291dHB1dF9tZXRob2QgPSB2
CiAgICBlbmQKCiAgICBkZWYgcmFpc2VfaWZfZnJvemVuIQogICAgICBpZiBmcm96ZW4/CiAgICAg
ICAgcmFpc2UgUnVudGltZUVycm9yLCAiY2FuJ3QgbW9kaWZ5IGZyb3plbiAje3Zpc2libGVfY2xh
c3NfbmFtZX0iCiAgICAgIGVuZAogICAgZW5kCn5+fgoKSG93ZXZlciwgdGhpcyBzdGlsbCBhbGxv
d3MgdXNlcnMgdG8gbWFudWFsbHkgbXV0YXRlIHRoZSBvYmplY3QsIGFuZCBpdCdzIHBvc3NpYmxl
IEkgbWF5IG1pc3MgcGxhY2VzIHdoZXJlIHJhaXNlX2lmX2Zyb3plbiEgc2hvdWxkIGJlIGNhbGxl
ZC4KCkJlaW5nIGFibGUgdG8gYWN0dWFsbHkgZnJlZXplIHRoZSBkYXRhc2V0cyB3b3VsZCBmaXgg
dGhlc2UgaXNzdWVzLCBnaXZlIHN0cm9uZ2VyIGNvbnNpc3RlbmN5IGd1YXJhbnRlZXMsIGFuZCBy
ZW1vdmUgcG9zc2libGUgdGhyZWFkIHNhZmV0eSBpc3N1ZXMuCgpIYXZpbmcgc29tZSB3YXkgdG8g
bXV0YXRlIHRoZSBvYmplY3QgZHVyaW5nICNjbG9uZSBzaG91bGQgYmUgaGVscGZ1bCBmb3IgYW55
IHJ1YnkgbGlicmFyeSB0aGF0IHVzZXMgYSBmdW5jdGlvbmFsIGFwcHJvYWNoIHdpdGggaW1tdXRh
YmxlIG9iamVjdHMgdGhhdCBoYXZlIHNpbmdsZXRvbiBjbGFzc2VzLgoKSG9wZWZ1bGx5IHRoaXMg
Z2l2ZXMgYSBtb3JlIGNsZWFyIHBpY3R1cmUgYWJvdXQgd2h5IEkgd2FudCB0aGlzLiAgSG93ZXZl
ciwgSSBkb24ndCB3YW50IHRoaXMgdG8gYmUgYWJvdXQgU2VxdWVsLCB3aGljaCBpcyB3aHkgSSBk
aWRuJ3QgYnJpbmcgaXQgdXAgcHJldmlvdXNseS4gIEkgdGhpbmsgdGhlIGlkZWEgc2hvdWxkIGJl
IGV2YWx1YXRlZCBvbiBpdHMgb3duIG1lcml0cywgaW5zdGVhZCBvZiBiYXNlZCBvbiBob3cgaXQg
d291bGQgaGVscCBhIHNpbmdsZSBsaWJyYXJ5LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQpGZWF0dXJlICMxMjA5MjogQWxsb3cgT2JqZWN0I2Nsb25lIHRvIHlpZWxk
IGNsb25lZCBvYmplY3QgYmVmb3JlIGZyZWV6aW5nCmh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3Jn
L2lzc3Vlcy8xMjA5MiNjaGFuZ2UtNTc1MTQKCiogQXV0aG9yOiBKZXJlbXkgRXZhbnMKKiBTdGF0
dXM6IEZlZWRiYWNrCiogUHJpb3JpdHk6IE5vcm1hbAoqIEFzc2lnbmVlOiBydWJ5LWNvcmUKLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUaGlzIGFsbG93cyBjcmVhdGlu
ZyBtb2RpZmllZCBjbG9uZXMgb2YgZnJvemVuIG9iamVjdHMgdGhhdCBoYXZlCnNpbmdsZXRvbiBj
bGFzc2VzOgoKfn5+cnVieQphID0gWzEsMiwzXQpkZWYgYS5mbDsgZmlyc3QgKyBsYXN0OyBlbmQK
YS5mcmVlemUKYS5mbCAjID0+IDQKCmNsb25lID0gYS5jbG9uZXt8Y3wgYyA8PCAxMH0KY2xvbmUu
bGFzdCAjID0+IDEwCmNsb25lLmZsICMgPT4gMTEKY2xvbmUuZnJvemVuPyAjID0+IHRydWUKfn5+
CgpQcmV2aW91c2x5LCB0aGlzIHdhcyBub3QgcG9zc2libGUgYXQgYWxsLiAgSWYgYW4gb2JqZWN0
IHdhcwpmcm96ZW4sIHRoZSBjbG9uZSB3YXMgZnJvemVuIGJlZm9yZSB0aGUgY2xvbmVkIG9iamVj
dCBjb3VsZApiZSBtb2RpZmllZC4gIEl0IHdhcyBwb3NzaWJsZSB0byBtb2RpZnkgdGhlIGNsb25l
IHVzaW5nCmBpbml0aWFsaXplX2Nsb25lYCBvciBgaW5pdGlhbGl6ZV9jb3B5YCwgYnV0IHlvdSBj
b3VsZG4ndCBjaGFuZ2UgaG93CnRvIG1vZGlmeSB0aGUgY2xvbmUgb24gYSBwZXItY2FsbCBiYXNp
cy4gIFlvdSBjb3VsZG4ndCB1c2UgYGR1cGAKdG8gcmV0dXJuIGFuIHVuZnJvemVuIGNvcHksIG1v
ZGlmeSBpdCwgYW5kIHRoZW4gZnJlZXplIGl0LCBiZWNhdXNlCmBkdXBgIGRvZXNuJ3QgY29weSBz
aW5nbGV0b24gY2xhc3Nlcy4KClRoaXMgYWxsb3dzIHJ1YnkgdG8gYmUgdXNlZCBpbiBhIGZ1bmN0
aW9uYWwgc3R5bGUgd2l0aCBpbW11dGFibGUKZGF0YSBzdHJ1Y3R1cmVzLCB3aGlsZSBzdGlsbCBr
ZWVwaW5nIHRoZSBhZHZhbnRhZ2VzIG9mIHNpbmdsZXRvbgpjbGFzc2VzLgoKLS0tRmlsZXMtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQowMDAxLUFsbG93LWNsb25lLXRvLXlpZWxkLWNs
b25lZC1vYmplY3QtYmVmb3JlLWZyZWV6aW5nLnBhdGNoICgyLjUxIEtCKQowMDAxLUFsbG93LWNs
b25lLXRvLXRha2UtYS1zZWNvbmQtYXJndW1lbnQtcGFzc2VkLXRvLWluaXQucGF0Y2ggKDIuMzcg
S0IpCgoKLS0gCmh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnLwoKVW5zdWJzY3JpYmU6IDxtYWls
dG86cnVieS1jb3JlLXJlcXVlc3RAcnVieS1sYW5nLm9yZz9zdWJqZWN0PXVuc3Vic2NyaWJlPgo8
aHR0cDovL2xpc3RzLnJ1YnktbGFuZy5vcmcvY2dpLWJpbi9tYWlsbWFuL29wdGlvbnMvcnVieS1j
b3JlPgo=

In This Thread

Prev Next