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

From: shyouhei@...
Date: 2018-08-13 01:12:16 UTC
List: ruby-core #88458
SXNzdWUgIzE0OTgyIGhhcyBiZWVuIHVwZGF0ZWQgYnkgc2h5b3VoZWkgKFNoeW91aGVpIFVyYWJl
KS4KCgpJIGxpa2UgdGhpcyBpZGVhIGluIGdlbmVyYWwuIEkgdG9vIHdhbnQgdG8gaGF2ZSAicmVx
dWlyaW5nIGludG8gaXNvbGF0ZWQgQmluZGluZyIuCgpPbmUgdGhpbmcgSSB3b3VsZCBsaWtlIHRv
IGFkZCwgIm5hbWVzcGFjZSIgc2hhbGwgYmUgYSBrZXl3b3JkIHJhdGhlciB0aGFuIGEgbm9ybWFs
IG1ldGhvZCB0YWtpbmcgYSBibG9jay4gIEJsb2NrcyBjYW4gYmUgcGFzc2VkIGFyb3VuZDoKCmBg
YHJ1YnkKbmFtZXNwYWNlIDpGb28gZG8KICBpbXBvcnQgOkZvbyBmcm9tOiAnZm9vJwogIGRlZiBz
ZWxmLmJhcgogICAgcmV0dXJuIGxhbW5kYSBkbwogICAgICBGb28KICAgIGVuZAogIGVuZAplYmQK
Cm5hbWVzcGFjZSg6QmFyLCAmRm9vLmJhcikgIyA9PiBFcnJvciwgb3IgLi4uPwpgYGAKCldlIHNo
b3VsZCBmb3JiaWQgdGhpcyBraW5kIG9mIGhlYWRhY2hlLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQpGZWF0dXJlICMxNDk4MjogSW1wcm92ZSBuYW1lc3BhY2Ugc3lz
dGVtIGluIHJ1YnkgdG8gYXZvaWRpbmcgdG9wLWxldmVsICBuYW1lcyBjaGFvcwpodHRwczovL2J1
Z3MucnVieS1sYW5nLm9yZy9pc3N1ZXMvMTQ5ODIjY2hhbmdlLTczNTI1CgoqIEF1dGhvcjogamp5
ciAoSmlueWFuZyBKaWFuZykKKiBTdGF0dXM6IE9wZW4KKiBQcmlvcml0eTogTm9ybWFsCiogQXNz
aWduZWU6IAoqIFRhcmdldCB2ZXJzaW9uOiAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQpVcGRhdGVkOiBodHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy9pc3N1ZXMvMTQ5
ODIjbm90ZS01CgoKCiMjIFdoeQoKUnVieSBoYXMgZXZhbHVhdGlvbiBhbGwgY2xhc3MvbW9kdWxl
IG5hbWVzIGluIHRvcC1sZXZlbCBjb250ZXh0KGFrYSBUT1BMRVZFTF9CSU5ESU5HKS4gCkFzIGEg
dXNlciB3ZSBiYXNpY2FsbHkgaGFyZCB0byBrbm93IGhvdyBtYW55IG5hbWVzIGluIHRoZSBjdXJy
ZW50IGNvbnRleHQsIGlzIGNhdXNpbmcgY2hhb3MgaW4gc29tZSBjYXNlcy4gRm9yIGV4YW1wbGU6
CgpjYXNlIDE6IAoKUHV0IGNvbW1vbiB1c2VkIGVycm9ycyBjbGFzcyBpbiBhIHNpbmdsZSBmaWxl
LCBsaWtlIGJlbG93CgpgYGAgcnVieQojIHV0aWxzL2Vycm9ycy5yYgoKY2xhc3MgRm9vRXJyb3IK
ZW5kCgpjbGFzcyBCYXJFcnJvcgplbmQKYGBgCgpJbiBvdGhlciBmaWxlcyB1bmRlciAndXRpbHMn
IHdlIHdhbnQgdG8gdXNlIHRob3NlIGVycm9ycywgc28gdGhlIGJlc3QgcHJhY3RpY2UgaXMgdG8g
dXNlIGByZXF1aXJlX3JlbGF0aXZlICdlcnJvcnMnYCBpbiBlYWNoIGZpbGUgd2UgbmVlZC4KCmBg
YCBydWJ5CiMgdXRpbHMvYmluYXJ5X2hlbHBlci5yYgoKIyB3ZSBmb3JnZXQgcmVxdWlyZSBlcnJv
cnMKCm1vZHVsZSBCaW5hcnlIZWxwZXIKIyAuLi4KICByYWlzZSBCYXJFcnJvcgojIC4uLgplbmQK
CmBgYAoKQnV0IHNvbWV0aW1lIHdlIG1heSBmb3JnZXQgdG8gcmVxdWlyZSBkZXBlbmRlbmNpZXMg
aW4gYSBmaWxlLCBpdCdzIGhhcmQgdG8gbm90aWNlIGJlY2F1c2UKIGlmIFJ1YnlWTSBhbHJlYWR5
IGV4ZWN1dGUgdGhlIHJlcXVpcmVzIHdlIHN0aWxsIGNhbiBhY2Nlc3MgdGhlIG5hbWUgQmFyRXJy
b3IsCgpidXQgaWYgdXNlciBkaXJlY3RseSB0byByZXF1aXJlICd1dGlscy9iaW5hcnlfaGVscGVy
JywgaGUvc2hlIHdpbGwgZ290IGFuIE5hbWVFcnJvci4KCgpjYXNlIDI6IAoKVHdvIGdlbXMgdXNl
IHNhbWUgdG9wLWxldmVsIG1vZHVsZSBuYW1lLCBzbyB3ZSBjYW4ndCB1c2UgdGhlbSB0b2dldGhl
cgoKIyMgVGhlIFJlYXNvbiBvZiBUaGUgUHJvYmxlbQoKVGhlIHJlYXNvbiBpcyB3ZSBsZXQgbW9k
dWxlIGF1dGhvciB0byBkZWNpc2lvbiB3aGljaCBtb2R1bGUgdXNlciBjYW4gdXNlLiAoJ3JlcXVp
cmUnIGlzIGJhc2ljYWxseSBldmFsdWF0aW9uLCBoaWdobHkgZGVwZW5kZW50IG9uIHRoZSBtb2R1
bGUgYXV0aG9yJ3MgZGVzaWduKQoKQnV0IHdlIHNob3VsZCBsZXQgdXNlcnMgY29udHJvbCB3aGlj
aCBuYW1lcyB0byB1c2UgYW5kIGF2YWlsYWJsZSBpbiBjb250ZXh0LiBBcyBtYW55IG90aGVyIHBv
cHVsYXIgbGFuZ3VhZ2VzIGRvc2UoUnVzdCwgUHl0aG9uLi4pCgpJIHRoaW5rIHRoZSBzb2x1dGlv
biBpcyBiYXNpY2FsbHkgdGhlIHNhbWUgcGhpbG9zb3BoeSBjb21wYXJlcyB0byByZWZpbmVtZW50
IGZlYXR1cmUuCgoKIyMgVGhlIERlc2lnbgoKSSBwcm9wb3NlIGFuIGltcHJvdmVkIG5hbWVzcGFj
ZSB0byBSdWJ5LCB0byBzb2x2ZSB0aGUgcHJvYmxlbXMgYW5kIHN0aWxsIGNvbXBhdGlibGUgd2l0
aCB0aGUgY3VycmVudCBSdWJ5IG1vZHVsZSBzeXN0ZW0uCgpgYGAgcnVieQpjbGFzcyBGb28KZW5k
CgojIGludHJvZHVjZSBLZXJuZWwjbmFtZXNwYWNlCm5hbWVzcGFjZSA6SGVsbG8gZG8KICAjIGF2
b2lkaW5nIG5hbWVzcGFjZSBjaGFvcwogICMgRm9vIC0+IE5hbWVFcnJvciwgY2FuJ3QgYWNjZXNz
IFRPUExFVkVMX0JJTkRJTkcgZGlyZWN0bHkKICAKICAjIEtlcm5lbCNpbXBvcnQgbWV0aG9kLCBp
bnRyb2R1Y2UgRm9vIG5hbWUgZnJvbSBUT1BMRVZFTF9CSU5ESU5HCiAgaW1wb3J0IDpGb28KCiAg
IyBpbiBhIG5hbWVzcGFjZSB1c2VyIGNhbiBvbmx5IGFjY2VzcyBpbXBvcnRlZCBuYW1lCiAgRm9v
CgogICMgaW1wb3J0IGNvbnN0YW50IHRvIGFub3RoZXIgYWxpYXMgbmFtZQogICMgY2FuIGF2b2lk
IHdyaXRpbmcgbmVzdGVkIG1vZHVsZS9jbGFzcyBuYW1lcwogIGltcG9ydCA6IkE6OkI6OkM6OkQi
LCBhczogOkUKCiAgIyByZXF1aXJlIHRoZW4gaW1wb3J0LCBmb3IgY29udmVuaWVudCAKICBpbXBv
cnQgOiJBOjpCOjpDOjpEIiwgYXM6IDpFLCBmcm9tOiAnc29tZV9yYl9maWxlJwoKICAjIGltcG9y
dCBzYW1lIG5hbWUgZnJvbSB0d28gZ2VtcwogIGltcG9ydCA6IkZvbyIsIGFzOiA6Rm9vX0EsIGZy
b206ICdmb29fYScKICBpbXBvcnQgOiJGb28iLCBhczogOkZvb19CLCBmcm9tOiAnZm9vX2InCgog
ICMgaW1wb3J0IG5hbWVzIGluIGJhdGNoCiAgaW1wb3J0ICVpeyJBOjpCOjpDOjpEIiwgIkFub3Ro
ZXJDbGFzcyJ9LCBmcm9tOiAnc29tZV9yYl9maWxlJwoKICAjIGltcG9ydCBhbmQgYWxpYXMgaW4g
YmF0Y2gKICBpbXBvcnQgezoiQTo6Qjo6Qzo6RCIgPT4gOkUsIDpGb28gPT4gRm9vMn0sIGZyb206
ICdzb21lX3JiX2ZpbGUnCgogIGNsYXNzIEJhcgogICAgZGVmIHh4eAogICAgICAjIGNhbiBhY2Nl
c3MgYWxsIG5hbWVzIGluIG5hbWVzcGFjZSBzY29wZQogICAgICBbRm9vLCBGb29fQSwgRm9vX0Jd
CiAgICBlbmQKICBlbmQKZW5kCgpIZWxsby5jbGFzcyAjICAtPiBtb2R1bGUuIG5hbWVzcGFjZSBp
cyBqdXN0IGEgbW9kdWxlCkhlbGxvOjpCYXIgIyBzbyB3ZSBkbyBub3QgYnJva2VuIGN1cnJlbnQg
cnVieSBtb2R1bGUgZGVzaWduCgojIG5hbWVzcGFjZSBzeXN0ZW0gaXMgaW50ZW50IHRvIGxldCB1
c2VyIHRvIGNvbnRyb2wgbmFtZXMgaW4gY29udGV4dAojIFNvIHVzZXIgY2FuIGNob29zZSB1c2Ug
dGhlIG9sZCByZXF1aXJlIHdheQoKcmVxdWlyZSAnaGVsbG8nCgpIZWxsbzo6QmFyCgoKIyBPciB1
c2VyIGNhbiB1c2UgbmFtZXNwYWNlIHN5c3RlbSBhcyB3ZSBkbyBpbiBoZWxsby5yYgoKbmFtZXNw
YWNlIDpFeGFtcGxlIGRvCiAgaW1wb3J0IDoiSGVsbG86OkJhciIsIGFzOiA6QmFyCiAgQmFyICMg
b2sKICBGb28gIyBuYW1lIGVycm9yLCBjYXVzZSB3ZSBkbyBub3QgaW1wb3J0IEZvbyBpbiA6RXhh
bXBsZSBuYW1lc3BhY2UKZW5kCgpGb28gIyBvaywgY2F1c2UgRm9vIGlzIGxvYWRlZCBpbiBUT1BM
RVZFTF9CSU5ESU5HCgojIGRlZmluZSBuZXN0ZWQgbmFtZXNwYWNlCgojIG1vcmUgY2xlYXIgc3lu
dGF4IHRoYW4g4oCcbW9kdWxlIEV4YW1wbGU6Ok5lc3RlZEV4YW1wbGXigJ0KbmFtZXNwYWNlIDpO
ZXN0ZWRFeGFtcGxlLCB1bmRlcjogRXhhbXBsZSBkbwplbmQKCm5hbWVzcGFjZSA6RXhhbXBsZTIg
ZG8KICBuYW1lc3BhY2UgOk5lc3RlZEV4YW1wbGUgZG8KICBlbmQKZW5kCgpgYGAKClByb3M6Cgoq
IENvbXBsZXRlbHkgY29tcGF0aWJsZSB3aXRoIHRoZSBjdXJyZW50IG1vZHVsZSBzeXN0ZW0sIGEg
Z2VtIHVzZXIgY2FuIGNvbXBsZXRlbHkgaWdub3JlIHdoZXRoZXIgYSBnZW0gaXMgd3JpdGUgaW4g
TmFtZXNwYWNlIG9yIG5vdC4KKiBVc2VyIGNhbiBjb21wbGV0ZWx5IGNvbnRyb2wgd2hpY2ggbmFt
ZXMgaW4gY3VycmVudCBjb250ZXh0L3Njb3BlLgoqIE1heSBzb2x2ZSB0aGUgdG9wIG1vZHVsZSBu
YW1lIGNvbmZsaWN0IGlzc3VlKGRlcGVuZHMgb24gVk0gaW1wbGVtZW50YXRpb24pLgoqIEF2b2lk
IGludHJvZHVjaW5nIG5ldyBrZXl3b3JkIGFuZCBzeW50YXguCiogVHlwZSBoaW50IG9yIG5hbWUg
aGludCBjYW4gYmUgbW9yZSBhY2N1cmFjeSB1bmRlciBuYW1lc3BhY2Uobm90IHN1cmUpLgoKQ29u
czoKCiogTmVlZCB0byBtb2RpZnkgUnVieSBWTSB0byBzdXBwb3J0IHRoZSBmZWF0dXJlLgoKCgoK
LS0gCmh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnLwoKVW5zdWJzY3JpYmU6IDxtYWlsdG86cnVi
eS1jb3JlLXJlcXVlc3RAcnVieS1sYW5nLm9yZz9zdWJqZWN0PXVuc3Vic2NyaWJlPgo8aHR0cDov
L2xpc3RzLnJ1YnktbGFuZy5vcmcvY2dpLWJpbi9tYWlsbWFuL29wdGlvbnMvcnVieS1jb3JlPgo=

In This Thread

Prev Next