[ruby-core:88459] [Ruby trunk Feature#14982] Improve namespace system in ruby to avoiding top-level names chaos

From: merch-redmine@...
Date: 2018-08-13 03:34:57 UTC
List: ruby-core #88459
SXNzdWUgIzE0OTgyIGhhcyBiZWVuIHVwZGF0ZWQgYnkgamVyZW15ZXZhbnMwIChKZXJlbXkgRXZh
bnMpLgoKCkluIHRoZSBXaHk/IHNlY3Rpb24sIGNhc2UgMSBpcyBqdXN0IGEgcHJvZ3JhbW1pbmcg
ZXJyb3Igb24gdGhlIGxpYnJhcnkgZGV2ZWxvcGVyJ3Mgb3IgbGlicmFyeSB1c2VyJ3MgcGFydCwg
ZGVwZW5kaW5nIG9uIGhvdyB0aGUgbGlicmFyeSBpcyBkb2N1bWVudGVkLiAgCgpJbiB0ZXJtcyBv
ZiBjYXNlIDIgKG11bHRpcGxlIGdlbXMgZGVmaW5lIG92ZXJsYXBwaW5nIGNvbnN0YW50cyBpbiB0
aGUgdG9wIGxldmVsIG5hbWVzcGFjZSksIHRoYXQgY291bGQgYmUgYSBpc3N1ZSBpbiB0aGVvcnks
IGJ1dCBpdCBkb2Vzbid0IGdlbmVyYWxseSBwcmVzZW50IGEgcHJvYmxlbSBpbiBwcmFjdGljZSBh
cyBsaWJyYXJ5IGF1dGhvcnMgaW4gbW9zdCBjYXNlcyB0YWtlIGNhcmUgdG8gY2hvb3NlIG5vbi1v
dmVybGFwcGluZyBuYW1lcy4KCkl0IHdpbGwgcHJvYmFibHkgYmUgY2hhbGxlbmdpbmcgdG8gbWFr
ZSBgaW1wb3J0YCB3b3JrIHdpdGggcnVieSdzIGNvbnN0YW50IGxvb2t1cCBpZiB0aGUgdG9wIGxl
dmVsIG5hbWVzcGFjZSBpcyBub3QgYWN0dWFsbHkgbW9kaWZpZWQuICBMaWJyYXJpZXMgbWF5IGV4
cGVjdCB0aGF0IHRoZWlyIGNvbnN0YW50cyBuYW1lcyBhcmUgYXZhaWxhYmxlIGluIHRoZSB0b3Ag
bGV2ZWwgbmFtZXNwYWNlOgoKfn5+IHJ1YnkKIyBmb29fYS5yYgpjbGFzcyBGb28KICBkZWYgc2Vs
Zi5mb28KICAgIDo6Rm9vCiAgICAjIG9yIEZvbwogICAgIyBvciBPYmplY3QuY29uc3RfZ2V0KDpG
b28pCiAgZW5kCmVuZAoKIyBmb29fYi5yYgpjbGFzcyBGb28KICBkZWYgc2VsZi5mb28KICAgIDo6
Rm9vCiAgZW5kCmVuZAoKIyBtYWluCm5hbWVzcGFjZSA6QmFyIGRvCiAgaW1wb3J0IDpGb28sIGFz
OiA6Rm9vX0EsIGZyb206ICdmb29fYScKICBpbXBvcnQgOkZvbywgYXM6IDpGb29fQiwgZnJvbTog
J2Zvb19iJwoKICBGb29fQS5mb28KICBGb29fQi5mb28KZW5kCn5+fgoKSSBzdXBwb3NlIGl0IGlz
IHBvc3NpYmxlLCBidXQgQ1JFRiBoYW5kbGluZyBpbiB0aGUgVk0gd291bGQgaGF2ZSB0byBiZSBt
YWRlIHNpZ25pZmljYW50bHkgbW9yZSBjb21wbGV4IHRvIGltcGxlbWVudCBpdCBjb3JyZWN0bHkg
KHNvIHRoYXQgdGhlIGNvZGUgd29ya3MgdGhlIHNhbWUgYm90aCB2aWEgYHJlcXVpcmVgIGFuZCBg
aW1wb3J0IDphc2ApLgoKCllvdSBjYW4gc29ydCBvZiBnZXQgd2hhdCB5b3Ugd2FudCBpbiB0ZXJt
cyBvZiBhbiBpc29sYXRlZCBuYW1lc3BhY2Ugd2l0aCBCYXNpY09iamVjdCBzdWJjbGFzc2VzOgoK
fn5+IHJ1YnkKY2xhc3MgRm9vCmVuZAoKY2xhc3MgSGVsbG8gPCBCYXNpY09iamVjdAplbmQKCmNs
YXNzIEhlbGxvCiAgRm9vICMgTmFtZUVycm9yCmVuZAoKSGVsbG86OkZvbyA9IDo6Rm9vCgpjbGFz
cyBIZWxsbwogIEZvbyAjIG5vIE5hbWVFcnJvcgplbmQKCm1vZHVsZSBBCiAgbW9kdWxlIEIKICAg
IG1vZHVsZSBDCiAgICAgIG1vZHVsZSBECiAgICAgIGVuZAogICAgZW5kCiAgZW5kCmVuZAoKSGVs
bG86OkUgPSA6OkE6OkI6OkM6OkQKCmRlZiBGb28uZm9vOyAxOyBlbmQKT2JqZWN0LnNlbmQoOnJl
bW92ZV9jb25zdCwgOkZvbykKCnJlcXVpcmUgJ2Zvb19hJwojIGluIGZvb19hLnJiCiMgY2xhc3Mg
Rm9vOyBlbmQKIyBkZWYgRm9vLmZvbzsgMjsgZW5kCkhlbGxvOjpGb29fQSA9IE9iamVjdC5zZW5k
KDpyZW1vdmVfY29uc3QsIDpGb28pCgpyZXF1aXJlICdmb29fYicKIyBpbiBmb29fYi5yYgojIGNs
YXNzIEZvbzsgZW5kCiMgZGVmIEZvby5mb287IDM7IGVuZApIZWxsbzo6Rm9vX0IgPSBPYmplY3Qu
c2VuZCg6cmVtb3ZlX2NvbnN0LCA6Rm9vKQoKY2xhc3MgSGVsbG8KICBjbGFzcyBCYXIKICAgIGRl
ZiB4eHgKICAgICAgW0ZvbywgRm9vX0EsIEZvb19CXS5tYXB7fHN8IFtzLCBzLmZvb119CiAgICBl
bmQKICBlbmQKZW5kCgpIZWxsbzo6QmFyLm5ldy54eHgKIyBbW0ZvbywgMV0sIFtGb28sIDJdLCBb
Rm9vLCAzXV0Kfn5+CgpTdWNoIGFuIGFwcHJvYWNoIGNlcnRhaW5seSBoYXMgaXQncyBvd24gaXNz
dWVzLCB0aG91Z2guIEFsc28sIGl0IGRvZXNuJ3QgcmVhbGx5IGFkZHJlc3MgdGhlIGlzc3VlIG9m
IHRyeWluZyB0byBoYW5kbGUgb3ZlcmxhcHBpbmcgdG9wIGxldmVsIGNvbnN0YW50cyBpbiBzZXBh
cmF0ZSBsaWJyYXJpZXMuCgpJIHNlZSB0aGUgYmVuZWZpdHMgb2YgdGhpcyBwcm9wb3NhbCwgYXMg
cmVxdWlyZSBpbnRvIGlzb2xhdGVkIGJpbmRpbmcgaXMgYSBuaWNlIHRvIGhhdmUgYXNzdW1pbmcg
ZXZlcnl0aGluZyBjb250aW51ZXMgdG8gd29yay4gSG93ZXZlciwgSSBkb24ndCB0aGluayB0aGUg
YmVuZWZpdHMgb2YgdGhpcyBwcm9wb3NhbCB3b3VsZCBleGNlZWQgdGhlIGltcGxlbWVudGF0aW9u
IGFuZCBtYWludGVuYW5jZSBjb3N0LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQpGZWF0dXJlICMxNDk4MjogSW1wcm92ZSBuYW1lc3BhY2Ugc3lzdGVtIGluIHJ1Ynkg
dG8gYXZvaWRpbmcgdG9wLWxldmVsICBuYW1lcyBjaGFvcwpodHRwczovL2J1Z3MucnVieS1sYW5n
Lm9yZy9pc3N1ZXMvMTQ5ODIjY2hhbmdlLTczNTI2CgoqIEF1dGhvcjogamp5ciAoSmlueWFuZyBK
aWFuZykKKiBTdGF0dXM6IE9wZW4KKiBQcmlvcml0eTogTm9ybWFsCiogQXNzaWduZWU6IAoqIFRh
cmdldCB2ZXJzaW9uOiAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpV
cGRhdGVkOiBodHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy9pc3N1ZXMvMTQ5ODIjbm90ZS01CgoK
CiMjIFdoeQoKUnVieSBoYXMgZXZhbHVhdGlvbiBhbGwgY2xhc3MvbW9kdWxlIG5hbWVzIGluIHRv
cC1sZXZlbCBjb250ZXh0KGFrYSBUT1BMRVZFTF9CSU5ESU5HKS4gCkFzIGEgdXNlciB3ZSBiYXNp
Y2FsbHkgaGFyZCB0byBrbm93IGhvdyBtYW55IG5hbWVzIGluIHRoZSBjdXJyZW50IGNvbnRleHQs
IGlzIGNhdXNpbmcgY2hhb3MgaW4gc29tZSBjYXNlcy4gRm9yIGV4YW1wbGU6CgpjYXNlIDE6IAoK
UHV0IGNvbW1vbiB1c2VkIGVycm9ycyBjbGFzcyBpbiBhIHNpbmdsZSBmaWxlLCBsaWtlIGJlbG93
CgpgYGAgcnVieQojIHV0aWxzL2Vycm9ycy5yYgoKY2xhc3MgRm9vRXJyb3IKZW5kCgpjbGFzcyBC
YXJFcnJvcgplbmQKYGBgCgpJbiBvdGhlciBmaWxlcyB1bmRlciAndXRpbHMnIHdlIHdhbnQgdG8g
dXNlIHRob3NlIGVycm9ycywgc28gdGhlIGJlc3QgcHJhY3RpY2UgaXMgdG8gdXNlIGByZXF1aXJl
X3JlbGF0aXZlICdlcnJvcnMnYCBpbiBlYWNoIGZpbGUgd2UgbmVlZC4KCmBgYCBydWJ5CiMgdXRp
bHMvYmluYXJ5X2hlbHBlci5yYgoKIyB3ZSBmb3JnZXQgcmVxdWlyZSBlcnJvcnMKCm1vZHVsZSBC
aW5hcnlIZWxwZXIKIyAuLi4KICByYWlzZSBCYXJFcnJvcgojIC4uLgplbmQKCmBgYAoKQnV0IHNv
bWV0aW1lIHdlIG1heSBmb3JnZXQgdG8gcmVxdWlyZSBkZXBlbmRlbmNpZXMgaW4gYSBmaWxlLCBp
dCdzIGhhcmQgdG8gbm90aWNlIGJlY2F1c2UKIGlmIFJ1YnlWTSBhbHJlYWR5IGV4ZWN1dGUgdGhl
IHJlcXVpcmVzIHdlIHN0aWxsIGNhbiBhY2Nlc3MgdGhlIG5hbWUgQmFyRXJyb3IsCgpidXQgaWYg
dXNlciBkaXJlY3RseSB0byByZXF1aXJlICd1dGlscy9iaW5hcnlfaGVscGVyJywgaGUvc2hlIHdp
bGwgZ290IGFuIE5hbWVFcnJvci4KCgpjYXNlIDI6IAoKVHdvIGdlbXMgdXNlIHNhbWUgdG9wLWxl
dmVsIG1vZHVsZSBuYW1lLCBzbyB3ZSBjYW4ndCB1c2UgdGhlbSB0b2dldGhlcgoKIyMgVGhlIFJl
YXNvbiBvZiBUaGUgUHJvYmxlbQoKVGhlIHJlYXNvbiBpcyB3ZSBsZXQgbW9kdWxlIGF1dGhvciB0
byBkZWNpc2lvbiB3aGljaCBtb2R1bGUgdXNlciBjYW4gdXNlLiAoJ3JlcXVpcmUnIGlzIGJhc2lj
YWxseSBldmFsdWF0aW9uLCBoaWdobHkgZGVwZW5kZW50IG9uIHRoZSBtb2R1bGUgYXV0aG9yJ3Mg
ZGVzaWduKQoKQnV0IHdlIHNob3VsZCBsZXQgdXNlcnMgY29udHJvbCB3aGljaCBuYW1lcyB0byB1
c2UgYW5kIGF2YWlsYWJsZSBpbiBjb250ZXh0LiBBcyBtYW55IG90aGVyIHBvcHVsYXIgbGFuZ3Vh
Z2VzIGRvc2UoUnVzdCwgUHl0aG9uLi4pCgpJIHRoaW5rIHRoZSBzb2x1dGlvbiBpcyBiYXNpY2Fs
bHkgdGhlIHNhbWUgcGhpbG9zb3BoeSBjb21wYXJlcyB0byByZWZpbmVtZW50IGZlYXR1cmUuCgoK
IyMgVGhlIERlc2lnbgoKSSBwcm9wb3NlIGFuIGltcHJvdmVkIG5hbWVzcGFjZSB0byBSdWJ5LCB0
byBzb2x2ZSB0aGUgcHJvYmxlbXMgYW5kIHN0aWxsIGNvbXBhdGlibGUgd2l0aCB0aGUgY3VycmVu
dCBSdWJ5IG1vZHVsZSBzeXN0ZW0uCgpgYGAgcnVieQpjbGFzcyBGb28KZW5kCgojIGludHJvZHVj
ZSBLZXJuZWwjbmFtZXNwYWNlCm5hbWVzcGFjZSA6SGVsbG8gZG8KICAjIGF2b2lkaW5nIG5hbWVz
cGFjZSBjaGFvcwogICMgRm9vIC0+IE5hbWVFcnJvciwgY2FuJ3QgYWNjZXNzIFRPUExFVkVMX0JJ
TkRJTkcgZGlyZWN0bHkKICAKICAjIEtlcm5lbCNpbXBvcnQgbWV0aG9kLCBpbnRyb2R1Y2UgRm9v
IG5hbWUgZnJvbSBUT1BMRVZFTF9CSU5ESU5HCiAgaW1wb3J0IDpGb28KCiAgIyBpbiBhIG5hbWVz
cGFjZSB1c2VyIGNhbiBvbmx5IGFjY2VzcyBpbXBvcnRlZCBuYW1lCiAgRm9vCgogICMgaW1wb3J0
IGNvbnN0YW50IHRvIGFub3RoZXIgYWxpYXMgbmFtZQogICMgY2FuIGF2b2lkIHdyaXRpbmcgbmVz
dGVkIG1vZHVsZS9jbGFzcyBuYW1lcwogIGltcG9ydCA6IkE6OkI6OkM6OkQiLCBhczogOkUKCiAg
IyByZXF1aXJlIHRoZW4gaW1wb3J0LCBmb3IgY29udmVuaWVudCAKICBpbXBvcnQgOiJBOjpCOjpD
OjpEIiwgYXM6IDpFLCBmcm9tOiAnc29tZV9yYl9maWxlJwoKICAjIGltcG9ydCBzYW1lIG5hbWUg
ZnJvbSB0d28gZ2VtcwogIGltcG9ydCA6IkZvbyIsIGFzOiA6Rm9vX0EsIGZyb206ICdmb29fYScK
ICBpbXBvcnQgOiJGb28iLCBhczogOkZvb19CLCBmcm9tOiAnZm9vX2InCgogICMgaW1wb3J0IG5h
bWVzIGluIGJhdGNoCiAgaW1wb3J0ICVpeyJBOjpCOjpDOjpEIiwgIkFub3RoZXJDbGFzcyJ9LCBm
cm9tOiAnc29tZV9yYl9maWxlJwoKICAjIGltcG9ydCBhbmQgYWxpYXMgaW4gYmF0Y2gKICBpbXBv
cnQgezoiQTo6Qjo6Qzo6RCIgPT4gOkUsIDpGb28gPT4gRm9vMn0sIGZyb206ICdzb21lX3JiX2Zp
bGUnCgogIGNsYXNzIEJhcgogICAgZGVmIHh4eAogICAgICAjIGNhbiBhY2Nlc3MgYWxsIG5hbWVz
IGluIG5hbWVzcGFjZSBzY29wZQogICAgICBbRm9vLCBGb29fQSwgRm9vX0JdCiAgICBlbmQKICBl
bmQKZW5kCgpIZWxsby5jbGFzcyAjICAtPiBtb2R1bGUuIG5hbWVzcGFjZSBpcyBqdXN0IGEgbW9k
dWxlCkhlbGxvOjpCYXIgIyBzbyB3ZSBkbyBub3QgYnJva2VuIGN1cnJlbnQgcnVieSBtb2R1bGUg
ZGVzaWduCgojIG5hbWVzcGFjZSBzeXN0ZW0gaXMgaW50ZW50IHRvIGxldCB1c2VyIHRvIGNvbnRy
b2wgbmFtZXMgaW4gY29udGV4dAojIFNvIHVzZXIgY2FuIGNob29zZSB1c2UgdGhlIG9sZCByZXF1
aXJlIHdheQoKcmVxdWlyZSAnaGVsbG8nCgpIZWxsbzo6QmFyCgoKIyBPciB1c2VyIGNhbiB1c2Ug
bmFtZXNwYWNlIHN5c3RlbSBhcyB3ZSBkbyBpbiBoZWxsby5yYgoKbmFtZXNwYWNlIDpFeGFtcGxl
IGRvCiAgaW1wb3J0IDoiSGVsbG86OkJhciIsIGFzOiA6QmFyCiAgQmFyICMgb2sKICBGb28gIyBu
YW1lIGVycm9yLCBjYXVzZSB3ZSBkbyBub3QgaW1wb3J0IEZvbyBpbiA6RXhhbXBsZSBuYW1lc3Bh
Y2UKZW5kCgpGb28gIyBvaywgY2F1c2UgRm9vIGlzIGxvYWRlZCBpbiBUT1BMRVZFTF9CSU5ESU5H
CgojIGRlZmluZSBuZXN0ZWQgbmFtZXNwYWNlCgojIG1vcmUgY2xlYXIgc3ludGF4IHRoYW4g4oCc
bW9kdWxlIEV4YW1wbGU6Ok5lc3RlZEV4YW1wbGXigJ0KbmFtZXNwYWNlIDpOZXN0ZWRFeGFtcGxl
LCB1bmRlcjogRXhhbXBsZSBkbwplbmQKCm5hbWVzcGFjZSA6RXhhbXBsZTIgZG8KICBuYW1lc3Bh
Y2UgOk5lc3RlZEV4YW1wbGUgZG8KICBlbmQKZW5kCgpgYGAKClByb3M6CgoqIENvbXBsZXRlbHkg
Y29tcGF0aWJsZSB3aXRoIHRoZSBjdXJyZW50IG1vZHVsZSBzeXN0ZW0sIGEgZ2VtIHVzZXIgY2Fu
IGNvbXBsZXRlbHkgaWdub3JlIHdoZXRoZXIgYSBnZW0gaXMgd3JpdGUgaW4gTmFtZXNwYWNlIG9y
IG5vdC4KKiBVc2VyIGNhbiBjb21wbGV0ZWx5IGNvbnRyb2wgd2hpY2ggbmFtZXMgaW4gY3VycmVu
dCBjb250ZXh0L3Njb3BlLgoqIE1heSBzb2x2ZSB0aGUgdG9wIG1vZHVsZSBuYW1lIGNvbmZsaWN0
IGlzc3VlKGRlcGVuZHMgb24gVk0gaW1wbGVtZW50YXRpb24pLgoqIEF2b2lkIGludHJvZHVjaW5n
IG5ldyBrZXl3b3JkIGFuZCBzeW50YXguCiogVHlwZSBoaW50IG9yIG5hbWUgaGludCBjYW4gYmUg
bW9yZSBhY2N1cmFjeSB1bmRlciBuYW1lc3BhY2Uobm90IHN1cmUpLgoKQ29uczoKCiogTmVlZCB0
byBtb2RpZnkgUnVieSBWTSB0byBzdXBwb3J0IHRoZSBmZWF0dXJlLgoKCgoKLS0gCmh0dHBzOi8v
YnVncy5ydWJ5LWxhbmcub3JnLwoKVW5zdWJzY3JpYmU6IDxtYWlsdG86cnVieS1jb3JlLXJlcXVl
c3RAcnVieS1sYW5nLm9yZz9zdWJqZWN0PXVuc3Vic2NyaWJlPgo8aHR0cDovL2xpc3RzLnJ1Ynkt
bGFuZy5vcmcvY2dpLWJpbi9tYWlsbWFuL29wdGlvbnMvcnVieS1jb3JlPgo=

In This Thread

Prev Next