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

From: jjyruby@...
Date: 2018-08-12 09:12:48 UTC
List: ruby-core #88454
SXNzdWUgIzE0OTgyIGhhcyBiZWVuIHVwZGF0ZWQgYnkgamp5ciAoSmlueWFuZyBKaWFuZykuCgoK
SSBiZWxpZXZlIG5hbWVzcGFjZSBjYW4gcmVkdWNlIHRoZSBjb21wbGV4aXR5IG9mIG9yZ2FuaXpp
bmcgY29kZXMgaW4gbGFyZ2UgcHJvamVjdHMuIAoKUmVjZW50bHkgSSB3cml0ZSBydXN0IGNvZGUg
aW4gYSBsYXJnZSBwcm9qZWN0LiBPdXIgY29kZSBiYXNlIGlzIGRlcGVuZGVudCBvbiBvdGhlciBz
ZXZlcmFsIGNvbXBsZXggcHJvamVjdHMuIFdpdGggcnVzdCBgdXNlYCBzeW50YXgoaHR0cHM6Ly9k
b2MucnVzdC1sYW5nLm9yZy9ib29rL3NlY29uZC1lZGl0aW9uL2NoMDctMDMtaW1wb3J0aW5nLW5h
bWVzLXdpdGgtdXNlLmh0bWwjYnJpbmdpbmctbmFtZXMtaW50by1zY29wZS13aXRoLXRoZS11c2Ut
a2V5d29yZCkgd2UgY2FuIGltcG9ydCB0aGUgbmFtZXMgd2hpY2ggd2UgbmVlZCBmcm9tIG90aGVy
IHByb2plY3RzIHdpdGhvdXQgY2hhb3RpYyB0aGUgZ2xvYmFsIG5hbWVzLiBJdCdzIGVhc3kgdG8g
bWFuYWdlIHRoZSBjb21wbGV4aXR5IGF0IHRoZSBtb2R1bGUgbGV2ZWwuCgpJIGNhbuKAmXQgaW1h
Z2UgaG93IHRvIGhhbmRsZSB0aG9zZSBjb21wbGV4aXRpZXMgdW5kZXIgdGhlIGN1cnJlbnQgcnVi
eSByZXF1aXJpbmcgc3lzdGVtLgoKSSB1bmRlcnN0YW5kIHRoZSBjb25jZXJuLCBpcyB0aGlzIGEg
4oCccmVhbCBwcm9ibGVt4oCdIG9yIGp1c3QgYmVjYXVzZSB3ZSBzYXcgdGhlIGZlYXR1cmUgaW4g
b3RoZXIgbGFuZ3VhZ2VzIHNvIHdlIHdhbnQgaXQ/CgpJIGFtIGN1cnJlbnRseSB3b3JraW5nIG9u
IGEgbWVkaXVtLWxldmVsIHJ1YnkgcHJvamVjdChodHRwczovL2dpdGh1Yi5jb20vY2lyaS1ldGhl
cmV1bS9jaXJpKSBhbmQgSSBmaW5kIGl0J3MgZWFzeSB0byBmb3JnZXQgdG8gYWRkIHNvbWUgdW5u
ZWNlc3NhcnkgcmVxdWlyaW5nLiAKU28gaW4gdGhpcyBzaXR1YXRpb24sIGEgdXNlciBjYW4ndCBk
aXJlY3RseSByZXF1aXJlIHRoaXMgZmlsZSwgSGUgbXVzdCBoYW5kbGUgdGhlIGRlcGVuZGVuY2ll
cyBtYW51YWxseSBvciByZXF1aXJlIHRoZSB3aG9sZSBnZW0uCgpJIGRvIG5vdCBoYXZlIHJlYWwg
ZXhwZXJpZW5jZXMgd29ya2luZyBpbiBtaWxsaW9ucyBvZiBsaW5lcyBydWJ5IHByb2plY3QsIGJ1
dCBJIGJlbGlldmUgbmFtZXNwYWNlIGNhbiBoZWxwIHRvIGNvbnRyb2wgY29tcGxleGl0eSwgZnJv
bSBteSBvdGhlciBsYW5ndWFnZXMgZXhwZXJpZW5jZXMuCgpTbyBJIHBhc3RlIG15IHByb3Bvc2Fs
LCBsZXQgdGhlIGNvbW11bml0eSB0byBkaXNjdXNzIHRoZSBwcm9ibGVtIHdoZXRoZXIgaXMgcmVh
bCBvciBmYWtlLgoKLS0tLS0tLS0tLS0tLS0tLS0KCkkgcmVhbGl6ZWQgdGhlIGVzc2VuY2Ugb2Yg
dGhlIHByb3Bvc2FsIGlzIHRvIGFsbG93IHVzZXIgdG8gbWFuaXB1bGF0ZSBCaW5kaW5nLiBDdXJy
ZW50bHksICBSdWJ5IG9ubHkgaGFzIHRoZSBUT1BMRVZFTF9CSU5ESU5HLCB3ZSBjYW4ndCBpc29s
YXRlZCBCaW5kaW5nIGZyb20gdG9wLWxldmVsLgoKU28gdGhlIHByb3Bvc2FsIGVzc2VudGlhbGx5
IHJlcXVlc3RzIHNldmVyYWwgcHJpbWl0aXZlIHRvIGNvbnRyb2wgQmluZGluZy4KCjEgaXNvbGF0
ZWQgcmVxdWlyaW5nOiBhbGxvd3MgdG8gZXZhbHVhdGlvbiByZXF1aXJlZCBmaWxlcyB1bmRlciBh
biBpc29sYXRlZCBCaW5kaW5nKG5vdCBwb2xsdXRpbmcgVE9QTEVWRUxfQklORElORykuCgpgYGAg
cnVieQojIHJlcXVpcmluZyBpbnRvIGlzb2xhdGVkIEJpbmRpbmcKcmVxdWlyZSDigJhmb2/igJks
IGludG86IDpJc29sYXRlZEJpbmRpbmdNb2R1bGUxCklzb2xhdGVkQmluZGluZ01vZHVsZTEuY2xh
c3MgIyBNb2R1bGUKSXNvbGF0ZWRCaW5kaW5nTW9kdWxlMTo6Rm9vICMgYWNjZXNzIG5hbWVzCgoj
IHRoZSBvbGQgd2F5IHNob3VsZCBzdGlsbCB3b3JrCiMgcmVxdWlyaW5nIGFuZCBwb2xsdXRpbmcg
VE9QTEVWRUxfQklORElORwpyZXF1aXJlIOKAmGZvb+KAmQpGb28KYGBgCgoyIG5hbWVzcGFjZTog
YWxsb3dzIHVzZXJzIHRvIGNyZWF0ZSBhbiBpc29sYXRlZCBCaW5kaW5nIHNjb3BlLgoKYGBgIHJ1
YnkKRm9vCm5hbWVzcGFjZSBkbyAjIENyZWF0ZSBhbiBpc29sYXRlZCBiaW5kaW5nLlRoZSBuYW1l
IG1heWJlIG5vdCBhY2N1cmF0ZSwgY2FuIGJlIGRpc2N1c3NlZC4KICAgIEZvbyAjIE5hbWVFcnJv
cgplbmQKYGBgCgozIGltcG9ydDogYWxsb3cgdXNlciBpbXBvcnQgbmFtZXMgZnJvbSBhIEJpbmRp
bmcgaW50byBhbm90aGVyIEJpbmRpbmcuCgpgYGAgcnVieQpGb28KbmFtZXNwYWNlIGRvCiAgIyBp
bXBvcnQgbmFtZSBmcm9tIGEgcnVieSBmaWxlCiAgIyBpbXBvcnQgcHJpbWl0aXZlIGlzIGEgY29u
dmVuaWVudCB3YXkgdG8gdXNlIGlzb2xhdGVkIHJlcXVpcmluZwogIGltcG9ydCA6Rm9vLCBmcm9t
OiDigJxmb2/igJ0KZW5kCmBgYAoKVGhlbiB3ZSBjYW4gZXh0ZW5kIHRob3NlIG1ldGhvZHMgdG8g
bW9yZSBjb252ZW5pZW50bHkgYmUgdXNlZCwgZm9yIGV4YW1wbGU6IGh0dHBzOi8vYnVncy5ydWJ5
LWxhbmcub3JnL2lzc3Vlcy8xNDk4MiNUaGUtRGVzaWduCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCkZlYXR1cmUgIzE0OTgyOiBJbXByb3ZlIG5hbWVzcGFjZSBzeXN0
ZW0gaW4gcnVieSB0byBhdm9pZGluZyB0b3AtbGV2ZWwgIG5hbWVzIGNoYW9zCmh0dHBzOi8vYnVn
cy5ydWJ5LWxhbmcub3JnL2lzc3Vlcy8xNDk4MiNjaGFuZ2UtNzM1MTkKCiogQXV0aG9yOiBqanly
IChKaW55YW5nIEppYW5nKQoqIFN0YXR1czogT3BlbgoqIFByaW9yaXR5OiBOb3JtYWwKKiBBc3Np
Z25lZTogCiogVGFyZ2V0IHZlcnNpb246IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCiMjIFdoeQoKUnVieSBoYXMgZXZhbHVhdGlvbiBhbGwgY2xhc3MvbW9kdWxlIG5h
bWVzIGluIHRvcC1sZXZlbCBjb250ZXh0KGFrYSBUT1BMRVZFTF9CSU5ESU5HKS4gCkFzIGEgdXNl
ciB3ZSBiYXNpY2FsbHkgaGFyZCB0byBrbm93IGhvdyBtYW55IG5hbWVzIGluIHRoZSBjdXJyZW50
IGNvbnRleHQsIGlzIGNhdXNpbmcgY2hhb3MgaW4gc29tZSBjYXNlcy4gRm9yIGV4YW1wbGU6Cgpj
YXNlIDE6IAoKUHV0IGNvbW1vbiB1c2VkIGVycm9ycyBjbGFzcyBpbiBhIHNpbmdsZSBmaWxlLCBs
aWtlIGJlbG93CgpgYGAgcnVieQojIHV0aWxzL2Vycm9ycy5yYgoKY2xhc3MgRm9vRXJyb3IKZW5k
CgpjbGFzcyBCYXJFcnJvcgplbmQKYGBgCgpJbiBvdGhlciBmaWxlcyB1bmRlciAndXRpbHMnIHdl
IHdhbnQgdG8gdXNlIHRob3NlIGVycm9ycywgc28gdGhlIGJlc3QgcHJhY3RpY2UgaXMgdG8gdXNl
IGByZXF1aXJlX3JlbGF0aXZlICdlcnJvcnMnYCBpbiBlYWNoIGZpbGUgd2UgbmVlZC4KCmBgYCBy
dWJ5CiMgdXRpbHMvYmluYXJ5X2hlbHBlci5yYgoKIyB3ZSBmb3JnZXQgcmVxdWlyZSBlcnJvcnMK
Cm1vZHVsZSBCaW5hcnlIZWxwZXIKIyAuLi4KICByYWlzZSBCYXJFcnJvcgojIC4uLgplbmQKCmBg
YAoKQnV0IHNvbWV0aW1lIHdlIG1heSBmb3JnZXQgdG8gcmVxdWlyZSBkZXBlbmRlbmNpZXMgaW4g
YSBmaWxlLCBpdCdzIGhhcmQgdG8gbm90aWNlIGJlY2F1c2UKIGlmIFJ1YnlWTSBhbHJlYWR5IGV4
ZWN1dGUgdGhlIHJlcXVpcmVzIHdlIHN0aWxsIGNhbiBhY2Nlc3MgdGhlIG5hbWUgQmFyRXJyb3Is
CgpidXQgaWYgdXNlciBkaXJlY3RseSB0byByZXF1aXJlICd1dGlscy9iaW5hcnlfaGVscGVyJywg
aGUvc2hlIHdpbGwgZ290IGFuIE5hbWVFcnJvci4KCgpjYXNlIDI6IAoKVHdvIGdlbXMgdXNlIHNh
bWUgdG9wLWxldmVsIG1vZHVsZSBuYW1lLCBzbyB3ZSBjYW4ndCB1c2UgdGhlbSB0b2dldGhlcgoK
IyMgVGhlIFJlYXNvbiBvZiBUaGUgUHJvYmxlbQoKVGhlIHJlYXNvbiBpcyB3ZSBsZXQgbW9kdWxl
IGF1dGhvciB0byBkZWNpc2lvbiB3aGljaCBtb2R1bGUgdXNlciBjYW4gdXNlLiAoJ3JlcXVpcmUn
IGlzIGJhc2ljYWxseSBldmFsdWF0aW9uLCBoaWdobHkgZGVwZW5kZW50IG9uIHRoZSBtb2R1bGUg
YXV0aG9yJ3MgZGVzaWduKQoKQnV0IHdlIHNob3VsZCBsZXQgdXNlcnMgY29udHJvbCB3aGljaCBu
YW1lcyB0byB1c2UgYW5kIGF2YWlsYWJsZSBpbiBjb250ZXh0LiBBcyBtYW55IG90aGVyIHBvcHVs
YXIgbGFuZ3VhZ2VzIGRvc2UoUnVzdCwgUHl0aG9uLi4pCgpJIHRoaW5rIHRoZSBzb2x1dGlvbiBp
cyBiYXNpY2FsbHkgdGhlIHNhbWUgcGhpbG9zb3BoeSBjb21wYXJlcyB0byByZWZpbmVtZW50IGZl
YXR1cmUuCgoKIyMgVGhlIERlc2lnbgoKSSBwcm9wb3NlIGFuIGltcHJvdmVkIG5hbWVzcGFjZSB0
byBSdWJ5LCB0byBzb2x2ZSB0aGUgcHJvYmxlbXMgYW5kIHN0aWxsIGNvbXBhdGlibGUgd2l0aCB0
aGUgY3VycmVudCBSdWJ5IG1vZHVsZSBzeXN0ZW0uCgpgYGAgcnVieQpjbGFzcyBGb28KZW5kCgoj
IGludHJvZHVjZSBLZXJuZWwjbmFtZXNwYWNlCm5hbWVzcGFjZSA6SGVsbG8gZG8KICAjIGF2b2lk
aW5nIG5hbWVzcGFjZSBjaGFvcwogICMgRm9vIC0+IE5hbWVFcnJvciwgY2FuJ3QgYWNjZXNzIFRP
UExFVkVMX0JJTkRJTkcgZGlyZWN0bHkKICAKICAjIEtlcm5lbCNpbXBvcnQgbWV0aG9kLCBpbnRy
b2R1Y2UgRm9vIG5hbWUgZnJvbSBUT1BMRVZFTF9CSU5ESU5HCiAgaW1wb3J0IDpGb28KCiAgIyBp
biBhIG5hbWVzcGFjZSB1c2VyIGNhbiBvbmx5IGFjY2VzcyBpbXBvcnRlZCBuYW1lCiAgRm9vCgog
ICMgaW1wb3J0IGNvbnN0YW50IHRvIGFub3RoZXIgYWxpYXMgbmFtZQogICMgY2FuIGF2b2lkIHdy
aXRpbmcgbmVzdGVkIG1vZHVsZS9jbGFzcyBuYW1lcwogIGltcG9ydCA6IkE6OkI6OkM6OkQiLCBh
czogOkUKCiAgIyByZXF1aXJlIHRoZW4gaW1wb3J0LCBmb3IgY29udmVuaWVudCAKICBpbXBvcnQg
OiJBOjpCOjpDOjpEIiwgYXM6IDpFLCBmcm9tOiAnc29tZV9yYl9maWxlJwoKICAjIGltcG9ydCBz
YW1lIG5hbWUgZnJvbSB0d28gZ2VtcwogIGltcG9ydCA6IkZvbyIsIGFzOiA6Rm9vX0EsIGZyb206
ICdmb29fYScKICBpbXBvcnQgOiJGb28iLCBhczogOkZvb19CLCBmcm9tOiAnZm9vX2InCgogICMg
aW1wb3J0IG5hbWVzIGluIGJhdGNoCiAgaW1wb3J0ICVpeyJBOjpCOjpDOjpEIiwgIkFub3RoZXJD
bGFzcyJ9LCBmcm9tOiAnc29tZV9yYl9maWxlJwoKICAjIGltcG9ydCBhbmQgYWxpYXMgaW4gYmF0
Y2gKICBpbXBvcnQgezoiQTo6Qjo6Qzo6RCIgPT4gOkUsIDpGb28gPT4gRm9vMn0sIGZyb206ICdz
b21lX3JiX2ZpbGUnCgogIGNsYXNzIEJhcgogICAgZGVmIHh4eAogICAgICAjIGNhbiBhY2Nlc3Mg
YWxsIG5hbWVzIGluIG5hbWVzcGFjZSBzY29wZQogICAgICBbRm9vLCBGb29fQSwgRm9vX0JdCiAg
ICBlbmQKICBlbmQKZW5kCgpIZWxsby5jbGFzcyAjICAtPiBtb2R1bGUuIG5hbWVzcGFjZSBpcyBq
dXN0IGEgbW9kdWxlCkhlbGxvOjpCYXIgIyBzbyB3ZSBkbyBub3QgYnJva2VuIGN1cnJlbnQgcnVi
eSBtb2R1bGUgZGVzaWduCgojIG5hbWVzcGFjZSBzeXN0ZW0gaXMgaW50ZW50IHRvIGxldCB1c2Vy
IHRvIGNvbnRyb2wgbmFtZXMgaW4gY29udGV4dAojIFNvIHVzZXIgY2FuIGNob29zZSB1c2UgdGhl
IG9sZCByZXF1aXJlIHdheQoKcmVxdWlyZSAnaGVsbG8nCgpIZWxsbzo6QmFyCgoKIyBPciB1c2Vy
IGNhbiB1c2UgbmFtZXNwYWNlIHN5c3RlbSBhcyB3ZSBkbyBpbiBoZWxsby5yYgoKbmFtZXNwYWNl
IDpFeGFtcGxlIGRvCiAgaW1wb3J0IDoiSGVsbG86OkJhciIsIGFzOiA6QmFyCiAgQmFyICMgb2sK
ICBGb28gIyBuYW1lIGVycm9yLCBjYXVzZSB3ZSBkbyBub3QgaW1wb3J0IEZvbyBpbiA6RXhhbXBs
ZSBuYW1lc3BhY2UKZW5kCgpGb28gIyBvaywgY2F1c2UgRm9vIGlzIGxvYWRlZCBpbiBUT1BMRVZF
TF9CSU5ESU5HCgojIGRlZmluZSBuZXN0ZWQgbmFtZXNwYWNlCgojIG1vcmUgY2xlYXIgc3ludGF4
IHRoYW4g4oCcbW9kdWxlIEV4YW1wbGU6Ok5lc3RlZEV4YW1wbGXigJ0KbmFtZXNwYWNlIDpOZXN0
ZWRFeGFtcGxlLCB1bmRlcjogRXhhbXBsZSBkbwplbmQKCm5hbWVzcGFjZSA6RXhhbXBsZTIgZG8K
ICBuYW1lc3BhY2UgOk5lc3RlZEV4YW1wbGUgZG8KICBlbmQKZW5kCgpgYGAKClByb3M6CgoqIENv
bXBsZXRlbHkgY29tcGF0aWJsZSB3aXRoIHRoZSBjdXJyZW50IG1vZHVsZSBzeXN0ZW0sIGEgZ2Vt
IHVzZXIgY2FuIGNvbXBsZXRlbHkgaWdub3JlIHdoZXRoZXIgYSBnZW0gaXMgd3JpdGUgaW4gTmFt
ZXNwYWNlIG9yIG5vdC4KKiBVc2VyIGNhbiBjb21wbGV0ZWx5IGNvbnRyb2wgd2hpY2ggbmFtZXMg
aW4gY3VycmVudCBjb250ZXh0L3Njb3BlLgoqIE1heSBzb2x2ZSB0aGUgdG9wIG1vZHVsZSBuYW1l
IGNvbmZsaWN0IGlzc3VlKGRlcGVuZHMgb24gVk0gaW1wbGVtZW50YXRpb24pLgoqIEF2b2lkIGlu
dHJvZHVjaW5nIG5ldyBrZXl3b3JkIGFuZCBzeW50YXguCiogVHlwZSBoaW50IG9yIG5hbWUgaGlu
dCBjYW4gYmUgbW9yZSBhY2N1cmFjeSB1bmRlciBuYW1lc3BhY2Uobm90IHN1cmUpLgoKQ29uczoK
CiogTmVlZCB0byBtb2RpZnkgUnVieSBWTSB0byBzdXBwb3J0IHRoZSBmZWF0dXJlLgoKCgoKLS0g
Cmh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnLwoKVW5zdWJzY3JpYmU6IDxtYWlsdG86cnVieS1j
b3JlLXJlcXVlc3RAcnVieS1sYW5nLm9yZz9zdWJqZWN0PXVuc3Vic2NyaWJlPgo8aHR0cDovL2xp
c3RzLnJ1YnktbGFuZy5vcmcvY2dpLWJpbi9tYWlsbWFuL29wdGlvbnMvcnVieS1jb3JlPgo=

In This Thread

Prev Next