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

From: jjyruby@...
Date: 2018-08-13 07:05:36 UTC
List: ruby-core #88462
SXNzdWUgIzE0OTgyIGhhcyBiZWVuIHVwZGF0ZWQgYnkgamp5ciAoSmlueWFuZyBKaWFuZykuCgoK
SSBjYW4gaW1hZ2luZSBob3cgaGFyZCB0byBpbXBsZW1lbnQgdGhlICJyZXF1aXJpbmcgaW50byBp
c29sYXRlZCBiaW5kaW5nIiBjb3JyZWN0IGluIFZNLgoKSWYgd2Ugd2FudCB0byBtYWludGFpbiB0
aGUgY29tcGF0aWJsZSB3ZSBuZWVkIHRvIG1haW50YWluIHRoZSByZWZlcmVuY2Ugb2YgdGhlIG5h
bWUgY3Jvc3MgZGlmZmVyZW50IHJlcXVpcmUvaW1wb3J0LgoKVGhpbmsgb2YgYSBzaXR1YXRpb246
CgpgYGBydWJ5CiMgZm9vLnJiCmNsYXNzIEZvbwogIEBjb3VudCA9IDAKICBkZWYgc2VsZi5jb3Vu
dAogICAgQGNvdW50ICs9IDEKICBlbmQKZW5kCgojIGFub3RoZXJfZmlsZS5yYgpuYW1lc3BhY2Ug
ZG8KICBpbXBvcnQgOkZvbywgZnJvbTogJ2ZvbycKICBGb28uY291bnQgIyBzaG91bGQgcmV0dXJu
IDEKZW5kCgpyZXF1aXJlICdmb28nLCBpbnRvOiA6Rm9vU3BhY2UKRm9vU3BhY2U6OkZvby5jb3Vu
dCAjIHNob3VsZCByZXR1cm4gMgoKIyByZXF1aXJlICdmb28nCgpGb28uY291bnQgIyBzaG91bGQg
cmV0dXJuIDMKYGBgCgpUaGUgbmFtZSBGb28gZnJvbSBwYXRoICdmb28nIHNob3VsZCBhbHdheXMg
YmUgdGhlIHNhbWUgcmVmZXJlbmNlIHdoZXRoZXIgaG93IHRoZSBuYW1lIGltcG9ydGVkLgpBbmQg
aW1hZ2luZyBpbiBjYXNlIHdlIGhhdmUgcGF0aCAnZm9vL2JhcicgYW5kICdmb28nIHJlcXVpcmUg
J2Zvby9iYXInLCB0aGUgbmFtZSBmcm9tICdmb28vYmFyJyBzaG91bGQgYWxzbyBiZSB0aGUgc2Ft
ZSByZWZlcmVuY2UgYWNyb3NzIGZpbGVzLgoKLS0tLS0tLS0tLQoKSXQncyBtZWFuIGVhY2ggdGlt
ZSB3ZSByZXF1aXJlIG9yIHJlcXVpcmUgaW50byBhIGZpbGUsIHdlIHB1dCBpdCBpbiBhIEJpbmRp
bmcgYXNzb2NpYXRlZCB3aXRoIHRoZSBmaWxlIHBhdGguIChzbyB3ZSBjYW4gdGhpbmsgdGhlIHJl
cXVpcmluZyBpbiBydWJ5IFZNIGlzIGxpa2UgdG8gZmluZCBhIGZpbGUgYW5kIEJpbmRpbmcgYnkg
YWJzb2x1dGUgcGF0aCkKCkluIFZNIGxldmVsLCB3ZSBtYXkgYWxzbyBuZWVkIHRvIGltcGxlbWVu
dCBhIG5lc3RlZCBCaW5kaW5nIHN0cnVjdHVyZSB0byBzdXBwb3J0IHRoaXMgZmVhdHVyZTogZmlu
ZCBhIG5hbWUgZnJvbSBlYWNoIHJlcXVpcmVkIGJpbmRpbmdzLiAobGlrZSBleGFtcGxlcyBhYm92
ZSwgUnVieVZtIGhvd3RvIGxvb2t1cCB0aGUgbmFtZSBGb28/KQoKU28gaXQgaXMgaGFyZCB0byBz
dXBwb3J0IHRoaXMgZmVhdHVyZSwgYW5kIG1heWJlIGNhdXNlIFZNIHBlcmZvcm1hbmNlIGlzc3Vl
IG9uIG5hbWUgbG9va3VwLgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KRmVhdHVyZSAjMTQ5ODI6IEltcHJvdmUgbmFtZXNwYWNlIHN5c3RlbSBpbiBydWJ5IHRvIGF2
b2lkaW5nIHRvcC1sZXZlbCAgbmFtZXMgY2hhb3MKaHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcv
aXNzdWVzLzE0OTgyI2NoYW5nZS03MzUyOAoKKiBBdXRob3I6IGpqeXIgKEppbnlhbmcgSmlhbmcp
CiogU3RhdHVzOiBPcGVuCiogUHJpb3JpdHk6IE5vcm1hbAoqIEFzc2lnbmVlOiAKKiBUYXJnZXQg
dmVyc2lvbjogCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVXBkYXRl
ZDogaHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvaXNzdWVzLzE0OTgyI25vdGUtNQoKCgojIyBX
aHkKClJ1YnkgaGFzIGV2YWx1YXRpb24gYWxsIGNsYXNzL21vZHVsZSBuYW1lcyBpbiB0b3AtbGV2
ZWwgY29udGV4dChha2EgVE9QTEVWRUxfQklORElORykuIApBcyBhIHVzZXIgd2UgYmFzaWNhbGx5
IGhhcmQgdG8ga25vdyBob3cgbWFueSBuYW1lcyBpbiB0aGUgY3VycmVudCBjb250ZXh0LCBpcyBj
YXVzaW5nIGNoYW9zIGluIHNvbWUgY2FzZXMuIEZvciBleGFtcGxlOgoKY2FzZSAxOiAKClB1dCBj
b21tb24gdXNlZCBlcnJvcnMgY2xhc3MgaW4gYSBzaW5nbGUgZmlsZSwgbGlrZSBiZWxvdwoKYGBg
IHJ1YnkKIyB1dGlscy9lcnJvcnMucmIKCmNsYXNzIEZvb0Vycm9yCmVuZAoKY2xhc3MgQmFyRXJy
b3IKZW5kCmBgYAoKSW4gb3RoZXIgZmlsZXMgdW5kZXIgJ3V0aWxzJyB3ZSB3YW50IHRvIHVzZSB0
aG9zZSBlcnJvcnMsIHNvIHRoZSBiZXN0IHByYWN0aWNlIGlzIHRvIHVzZSBgcmVxdWlyZV9yZWxh
dGl2ZSAnZXJyb3JzJ2AgaW4gZWFjaCBmaWxlIHdlIG5lZWQuCgpgYGAgcnVieQojIHV0aWxzL2Jp
bmFyeV9oZWxwZXIucmIKCiMgd2UgZm9yZ2V0IHJlcXVpcmUgZXJyb3JzCgptb2R1bGUgQmluYXJ5
SGVscGVyCiMgLi4uCiAgcmFpc2UgQmFyRXJyb3IKIyAuLi4KZW5kCgpgYGAKCkJ1dCBzb21ldGlt
ZSB3ZSBtYXkgZm9yZ2V0IHRvIHJlcXVpcmUgZGVwZW5kZW5jaWVzIGluIGEgZmlsZSwgaXQncyBo
YXJkIHRvIG5vdGljZSBiZWNhdXNlCiBpZiBSdWJ5Vk0gYWxyZWFkeSBleGVjdXRlIHRoZSByZXF1
aXJlcyB3ZSBzdGlsbCBjYW4gYWNjZXNzIHRoZSBuYW1lIEJhckVycm9yLAoKYnV0IGlmIHVzZXIg
ZGlyZWN0bHkgdG8gcmVxdWlyZSAndXRpbHMvYmluYXJ5X2hlbHBlcicsIGhlL3NoZSB3aWxsIGdv
dCBhbiBOYW1lRXJyb3IuCgoKY2FzZSAyOiAKClR3byBnZW1zIHVzZSBzYW1lIHRvcC1sZXZlbCBt
b2R1bGUgbmFtZSwgc28gd2UgY2FuJ3QgdXNlIHRoZW0gdG9nZXRoZXIKCiMjIFRoZSBSZWFzb24g
b2YgVGhlIFByb2JsZW0KClRoZSByZWFzb24gaXMgd2UgbGV0IG1vZHVsZSBhdXRob3IgdG8gZGVj
aXNpb24gd2hpY2ggbW9kdWxlIHVzZXIgY2FuIHVzZS4gKCdyZXF1aXJlJyBpcyBiYXNpY2FsbHkg
ZXZhbHVhdGlvbiwgaGlnaGx5IGRlcGVuZGVudCBvbiB0aGUgbW9kdWxlIGF1dGhvcidzIGRlc2ln
bikKCkJ1dCB3ZSBzaG91bGQgbGV0IHVzZXJzIGNvbnRyb2wgd2hpY2ggbmFtZXMgdG8gdXNlIGFu
ZCBhdmFpbGFibGUgaW4gY29udGV4dC4gQXMgbWFueSBvdGhlciBwb3B1bGFyIGxhbmd1YWdlcyBk
b3NlKFJ1c3QsIFB5dGhvbi4uKQoKSSB0aGluayB0aGUgc29sdXRpb24gaXMgYmFzaWNhbGx5IHRo
ZSBzYW1lIHBoaWxvc29waHkgY29tcGFyZXMgdG8gcmVmaW5lbWVudCBmZWF0dXJlLgoKCiMjIFRo
ZSBEZXNpZ24KCkkgcHJvcG9zZSBhbiBpbXByb3ZlZCBuYW1lc3BhY2UgdG8gUnVieSwgdG8gc29s
dmUgdGhlIHByb2JsZW1zIGFuZCBzdGlsbCBjb21wYXRpYmxlIHdpdGggdGhlIGN1cnJlbnQgUnVi
eSBtb2R1bGUgc3lzdGVtLgoKYGBgIHJ1YnkKY2xhc3MgRm9vCmVuZAoKIyBpbnRyb2R1Y2UgS2Vy
bmVsI25hbWVzcGFjZQpuYW1lc3BhY2UgOkhlbGxvIGRvCiAgIyBhdm9pZGluZyBuYW1lc3BhY2Ug
Y2hhb3MKICAjIEZvbyAtPiBOYW1lRXJyb3IsIGNhbid0IGFjY2VzcyBUT1BMRVZFTF9CSU5ESU5H
IGRpcmVjdGx5CiAgCiAgIyBLZXJuZWwjaW1wb3J0IG1ldGhvZCwgaW50cm9kdWNlIEZvbyBuYW1l
IGZyb20gVE9QTEVWRUxfQklORElORwogIGltcG9ydCA6Rm9vCgogICMgaW4gYSBuYW1lc3BhY2Ug
dXNlciBjYW4gb25seSBhY2Nlc3MgaW1wb3J0ZWQgbmFtZQogIEZvbwoKICAjIGltcG9ydCBjb25z
dGFudCB0byBhbm90aGVyIGFsaWFzIG5hbWUKICAjIGNhbiBhdm9pZCB3cml0aW5nIG5lc3RlZCBt
b2R1bGUvY2xhc3MgbmFtZXMKICBpbXBvcnQgOiJBOjpCOjpDOjpEIiwgYXM6IDpFCgogICMgcmVx
dWlyZSB0aGVuIGltcG9ydCwgZm9yIGNvbnZlbmllbnQgCiAgaW1wb3J0IDoiQTo6Qjo6Qzo6RCIs
IGFzOiA6RSwgZnJvbTogJ3NvbWVfcmJfZmlsZScKCiAgIyBpbXBvcnQgc2FtZSBuYW1lIGZyb20g
dHdvIGdlbXMKICBpbXBvcnQgOiJGb28iLCBhczogOkZvb19BLCBmcm9tOiAnZm9vX2EnCiAgaW1w
b3J0IDoiRm9vIiwgYXM6IDpGb29fQiwgZnJvbTogJ2Zvb19iJwoKICAjIGltcG9ydCBuYW1lcyBp
biBiYXRjaAogIGltcG9ydCAlaXsiQTo6Qjo6Qzo6RCIsICJBbm90aGVyQ2xhc3MifSwgZnJvbTog
J3NvbWVfcmJfZmlsZScKCiAgIyBpbXBvcnQgYW5kIGFsaWFzIGluIGJhdGNoCiAgaW1wb3J0IHs6
IkE6OkI6OkM6OkQiID0+IDpFLCA6Rm9vID0+IEZvbzJ9LCBmcm9tOiAnc29tZV9yYl9maWxlJwoK
ICBjbGFzcyBCYXIKICAgIGRlZiB4eHgKICAgICAgIyBjYW4gYWNjZXNzIGFsbCBuYW1lcyBpbiBu
YW1lc3BhY2Ugc2NvcGUKICAgICAgW0ZvbywgRm9vX0EsIEZvb19CXQogICAgZW5kCiAgZW5kCmVu
ZAoKSGVsbG8uY2xhc3MgIyAgLT4gbW9kdWxlLiBuYW1lc3BhY2UgaXMganVzdCBhIG1vZHVsZQpI
ZWxsbzo6QmFyICMgc28gd2UgZG8gbm90IGJyb2tlbiBjdXJyZW50IHJ1YnkgbW9kdWxlIGRlc2ln
bgoKIyBuYW1lc3BhY2Ugc3lzdGVtIGlzIGludGVudCB0byBsZXQgdXNlciB0byBjb250cm9sIG5h
bWVzIGluIGNvbnRleHQKIyBTbyB1c2VyIGNhbiBjaG9vc2UgdXNlIHRoZSBvbGQgcmVxdWlyZSB3
YXkKCnJlcXVpcmUgJ2hlbGxvJwoKSGVsbG86OkJhcgoKCiMgT3IgdXNlciBjYW4gdXNlIG5hbWVz
cGFjZSBzeXN0ZW0gYXMgd2UgZG8gaW4gaGVsbG8ucmIKCm5hbWVzcGFjZSA6RXhhbXBsZSBkbwog
IGltcG9ydCA6IkhlbGxvOjpCYXIiLCBhczogOkJhcgogIEJhciAjIG9rCiAgRm9vICMgbmFtZSBl
cnJvciwgY2F1c2Ugd2UgZG8gbm90IGltcG9ydCBGb28gaW4gOkV4YW1wbGUgbmFtZXNwYWNlCmVu
ZAoKRm9vICMgb2ssIGNhdXNlIEZvbyBpcyBsb2FkZWQgaW4gVE9QTEVWRUxfQklORElORwoKIyBk
ZWZpbmUgbmVzdGVkIG5hbWVzcGFjZQoKIyBtb3JlIGNsZWFyIHN5bnRheCB0aGFuIOKAnG1vZHVs
ZSBFeGFtcGxlOjpOZXN0ZWRFeGFtcGxl4oCdCm5hbWVzcGFjZSA6TmVzdGVkRXhhbXBsZSwgdW5k
ZXI6IEV4YW1wbGUgZG8KZW5kCgpuYW1lc3BhY2UgOkV4YW1wbGUyIGRvCiAgbmFtZXNwYWNlIDpO
ZXN0ZWRFeGFtcGxlIGRvCiAgZW5kCmVuZAoKYGBgCgpQcm9zOgoKKiBDb21wbGV0ZWx5IGNvbXBh
dGlibGUgd2l0aCB0aGUgY3VycmVudCBtb2R1bGUgc3lzdGVtLCBhIGdlbSB1c2VyIGNhbiBjb21w
bGV0ZWx5IGlnbm9yZSB3aGV0aGVyIGEgZ2VtIGlzIHdyaXRlIGluIE5hbWVzcGFjZSBvciBub3Qu
CiogVXNlciBjYW4gY29tcGxldGVseSBjb250cm9sIHdoaWNoIG5hbWVzIGluIGN1cnJlbnQgY29u
dGV4dC9zY29wZS4KKiBNYXkgc29sdmUgdGhlIHRvcCBtb2R1bGUgbmFtZSBjb25mbGljdCBpc3N1
ZShkZXBlbmRzIG9uIFZNIGltcGxlbWVudGF0aW9uKS4KKiBBdm9pZCBpbnRyb2R1Y2luZyBuZXcg
a2V5d29yZCBhbmQgc3ludGF4LgoqIFR5cGUgaGludCBvciBuYW1lIGhpbnQgY2FuIGJlIG1vcmUg
YWNjdXJhY3kgdW5kZXIgbmFtZXNwYWNlKG5vdCBzdXJlKS4KCkNvbnM6CgoqIE5lZWQgdG8gbW9k
aWZ5IFJ1YnkgVk0gdG8gc3VwcG9ydCB0aGUgZmVhdHVyZS4KCgoKCi0tIApodHRwczovL2J1Z3Mu
cnVieS1sYW5nLm9yZy8KClVuc3Vic2NyaWJlOiA8bWFpbHRvOnJ1YnktY29yZS1yZXF1ZXN0QHJ1
YnktbGFuZy5vcmc/c3ViamVjdD11bnN1YnNjcmliZT4KPGh0dHA6Ly9saXN0cy5ydWJ5LWxhbmcu
b3JnL2NnaS1iaW4vbWFpbG1hbi9vcHRpb25zL3J1YnktY29yZT4K

In This Thread

Prev Next