[ruby-core:110102] [Ruby master Feature#19024] Proposal: Import Modules
From:
"byroot (Jean Boussier)" <noreply@...>
Date:
2022-09-27 08:06:45 UTC
List:
ruby-core #110102
SXNzdWUgIzE5MDI0IGhhcyBiZWVuIHVwZGF0ZWQgYnkgYnlyb290IChKZWFuIEJvdXNzaWVyKS4K CgpJJ20gYWxzbyB2ZXJ5IG11Y2ggaW4gZmF2b3Igb2YgaW50cm9kdWNpbmcgYSBmaXJzdCBjbGFz cyAicGFja2FnZSIgY29uc3RydWN0LCBzaW5jZSB0aGVyZSBhcmUgd2F5IHRvbyBtYW55IGVkZ2Ug Y2FzZXMgZm9yIGxvYWRpbmcgZXhpc3RpbmcgY29kZSBpbiBhbiBpc29sYXRlZCB3YXkgbGlrZSB0 aGlzLiBJIG1pZ2h0IHdvcmsgZm9yIHNvbWUsIG1heWJlIGV2ZW4gbW9zdCBwYWNrYWdlcywgYnV0 IHVsdGltYXRlbHkgaXQgd2lsbCBjZXJ0YWlubHkgcmVxdWlyZSBjb29wZXJhdGlvbiBmcm9tIHRo ZSBwYWNrYWdlcywgc28gbWlnaHQgYXMgd2VsbCBvZmZlciBhIHByb3BlciBjb25zdHJ1Y3QgZm9y IGl0LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpGZWF0dXJlICMx OTAyNDogUHJvcG9zYWw6IEltcG9ydCBNb2R1bGVzCmh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3Jn L2lzc3Vlcy8xOTAyNCNjaGFuZ2UtOTkzNjAKCiogQXV0aG9yOiBzaGlveWFtYSAoQ2hyaXMgU2Fs emJlcmcpCiogU3RhdHVzOiBPcGVuCiogUHJpb3JpdHk6IE5vcm1hbAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRoZXJlIGlzIG5vIGdlbmVyYWwgd2F5IGluIFJ1Ynkg dG8gbG9hZCBjb2RlIG91dHNpZGUgb2YgdGhlIGdsb2JhbGx5LXNoYXJlZCBuYW1lc3BhY2UuIFRo aXMgbWFrZXMgaXQgaGFyZCB0byBpc29sYXRlIGNvbXBvbmVudHMgb2YgYW4gYXBwbGljYXRpb24g ZnJvbSBlYWNoIG90aGVyIGFuZCBmcm9tIHRoZSBhcHBsaWNhdGlvbiBpdHNlbGYsIGxlYWRpbmcg dG8gY29tcGxpY2F0ZWQgcmVsYXRpb25zaGlwcyB0aGF0IGNhbiBiZWNvbWUgaW50cmFjdGFibGUg YXMgYXBwbGljYXRpb25zIGdyb3cgaW4gc2l6ZS4KClRoZSBncm93aW5nIHBvcHVsYXJpdHkgb2Yg YSBnZW0gbGlrZSBbUGFja3dlcmtdKGh0dHBzOi8vZ2l0aHViLmNvbS9zaG9waWZ5L3BhY2t3ZXJr KSwgd2hpY2ggcHJvdmlkZXMgYSBuZXcgY29uY2VwdCBvZiAicGFja2FnZSIgdG8gZW5mb2NlIGJv dW5kYXJpZXMgc3RhdGljYWxseSBpbiBDSSwgaXMgZXZpZGVuY2UgdGhhdCB0aGlzIGlzIGEgcmVh bCBwcm9ibGVtLiBCdXQgaW50cm9kdWNpbmcgYSBuZXcgcGFja2FnaW5nIGNvbmNlcHQgYW5kIENJ IHN0ZXAgaXMgYXQgYmVzdCBvbmx5IGEgcGFydGlhbCBzb2x1dGlvbiwgd2l0aCBkb3duc2lkZXM6 IGl0IGFkZHMgY29tcGxleGl0eSBhbmQgY29nbml0aXZlIG92ZXJoZWFkIHRoYXQgd291bGRuJ3Qg YmUgbmVjZXNzYXJ5IGlmIFJ1YnkgcHJvdmlkZWQgYmV0dGVyIHBhY2thZ2luZyBpdHNlbGYgKGFz IE1hdHogaGFzIHN1Z2dlc3RlZCBbaXQgc2hvdWxkXShodHRwczovL3lvdXR1LmJlL0RwMTJhM0tH TkZ3P3Q9Mjk1NikpLgoKVGhlcmUgaXMgX29uZV8gbGltaXRlZCB3YXkgaW4gUnVieSBjdXJyZW50 bHkgdG8gbG9hZCBjb2RlIHdpdGhvdXQgcG9sbHV0aW5nIHRoZSBnbG9iYWwgbmFtZXNwYWNlOiBg bG9hZGAgd2l0aCB0aGUgYHdyYXBgIHBhcmFtZXRlciwgd2hpY2ggYXMgb2YgaHR0cHM6Ly9idWdz LnJ1YnktbGFuZy5vcmcvaXNzdWVzLzYyMTAgY2FuIG5vdyBiZSBhIG1vZHVsZS4gSG93ZXZlciwg dGhpcyBvcHRpb24gZG9lcyBub3QgYXBwbHkgdHJhbnNpdGl2ZWx5IHRvIGByZXF1aXJlYCBjYWxs cyB3aXRoaW4gdGhlIGxvYWRlZCBmaWxlLCBzbyBpdHMgdXNlZnVsbmVzcyBpcyBsaW1pdGVkLgoK TXkgcHJvcG9zYWwgaGVyZSBpcyB0byBlbmFibGUgbW9kdWxlIGltcG9ydHMgYnkgZG9pbmcgdGhl IGZvbGxvd2luZzoKCjEuIGFwcGx5IHRoZSBgd3JhcGAgbW9kdWxlIG5hbWVzcGFjZSB0cmFuc2l0 aXZlbHkgdG8gYHJlcXVpcmVgcyBpbnNpZGUgdGhlIGxvYWRlZCBjb2RlLCBpbmNsdWRpbmcgbmF0 aXZlIGV4dGVuc2lvbnMgKG9yIHByb3ZpZGUgYSBuZXcgZmxhZyBvciBtZXRob2QgdGhhdCB3b3Vs ZCBkbyB0aGlzKSwKMi4gbWFrZSB0aGUgYHdyYXBgIG1vZHVsZSB0aGUgdG9wbGV2ZWwgY29udGV4 dCBmb3IgY29kZSBsb2FkZWQgdW5kZXIgaXQsIHNvIGA6OkZvb2AgcmVzb2x2ZXMgdG8gYDx0b3Bf d3JhcHBlcj46OkZvb2AgaW4gbG9hZGVkIGNvZGUgKG9yLCBhZ2FpbiwgcHJvdmlkZSBhIG5ldyBm bGFnIG9yIG1ldGhvZCB0aGF0IHdvdWxkIGRvIHRoaXMpLiBfQWxzbyBtYWtlIHRoaXMgYXBwbHkg d2hlbiBjb2RlIHVuZGVyIHRoZSB3cmFwcGVyIG1vZHVsZSBpcyBjYWxsZWQgb3V0c2lkZSBvZiB0 aGUgbG9hZCBwcm9jZXNzICh3aGVuIGB0b3Bfd3JhcHBlcmAgaXMgbm8gbG9uZ2VyIHNldCkgJm1k YXNoOyB0aGlzIG1heSBiZSBxdWl0ZSBoYXJkIHRvIGRvXy4KMy4gcmVzb2x2ZSBgbmFtZWAgb24g YW5vbnltb3VzIG1vZHVsZXMgdW5kZXIgdGhlIHdyYXBwZWQgbW9kdWxlIHRvIHRoZWlyIG5hbWVz IHdpdGhvdXQgdGhlIHRvcCB3cmFwcGVyIG1vZHVsZSwgc28gYDx0b3Bfd3JhcHBlcj46OkZvby5u YW1lYCBldmFsdWF0ZXMgdG8gYCJGb28iYC4gVGhlcmUgbWF5IGJlIG90aGVyIHdheXMgdG8gaGFu ZGxlIHRoaXMgcHJvYmxlbSwgYnV0IGEgZ2VtIGxpa2UgUmFpbHMgdXNlcyBgbmFtZWAgdG8gcmVz b2x2ZSBmaWxlbmFtZXMgYW5kIGZhaWxzIHdoZW4gYW5vbnltb3VzIG1vZHVsZXMgcmV0dXJuIHNv bWV0aGluZyBsaWtlIGAjPE1vZHVsZTogLi4uPjo6QWN0aXZlUmVjb3JkYCBpbnN0ZWFkIG9mIGp1 c3QgYEFjdGl2ZVJlY29yZGAuCgpJIGhhdmUgcm91Z2hseSBpbXBsZW1lbnRlZCB0aGVzZSB0aHJl ZSB0aGluZ3MgaW4gW3RoaXMgcGF0Y2hdKGh0dHBzOi8vZ2l0aHViLmNvbS9ydWJ5L3J1YnkvY29t cGFyZS9tYXN0ZXIuLi5zaGlveWFtYTpydWJ5OmltcG9ydF9tb2R1bGVzKS4gVGhpcyBpbXBsZW1l bnRhdGlvbiBpcyBpbmNvbXBsZXRlIChpdCBkb2VzIG5vdCBjb3ZlciB0aGUgbGFzdCBoaWdobGln aHRlZCBwYXJ0IG9mIDIpIGJ1dCBwcm92aWRlcyBlbm91Z2ggb2YgYSBiYXNpcyB0byBpbXBsZW1l bnQgYW4gYGltcG9ydGAgbWV0aG9kLCB3aGljaCBJIGhhdmUgZG9uZSBpbiBhIGdlbSBjYWxsZWQg W0ltXShodHRwczovL2dpdGh1Yi5jb20vc2hpb3lhbWEvaW0pLgoKSW0gcHJvdmlkZXMgYW4gYGlt cG9ydGAgbWV0aG9kIHdoaWNoIGNhbiBiZSB1c2VkIHRvIGltcG9ydCBnZW0gY29kZSB1bmRlciBh IG5hbWVzcGFjZToKCmBgYHJ1YnkKcmVxdWlyZSAiaW0iCmV4dGVuZCBJbQoKYWN0aXZlX21vZGVs ID0gaW1wb3J0ICJhY3RpdmVfbW9kZWwiCiM9PiA8I0ltOjpJbXBvcnQgcm9vdDogYWN0aXZlX21v ZGVsPgoKQWN0aXZlTW9kZWwKIz0+IE5hbWVFcnJvcgoKYWN0aXZlX21vZGVsOjpBY3RpdmVNb2Rl bAojPT4gQWN0aXZlTW9kZWwKCmFjdGl2ZV9yZWNvcmQgPSBpbXBvcnQgImFjdGl2ZV9yZWNvcmQi CiM9PiA8I0ltOjpJbXBvcnQgcm9vdDogYWN0aXZlX3JlY29yZD4KCiMgQ29uc3RhbnRzIGRlZmlu ZWQgaW4gdGhlIHNhbWUgZmlsZSB1bmRlciBkaWZmZXJlbnQgaW1wb3J0cyBwb2ludCB0byB0aGUg c2FtZSBvYmplY3RzCmFjdGl2ZV9yZWNvcmQ6OkFjdGl2ZU1vZGVsID09IGFjdGl2ZV9tb2RlbDo6 QWN0aXZlTW9kZWwKIz0+IHRydWUKYGBgCgpXaXRoIHRoZSBjb25zdGFudHMgYWxsIGxvYWRlZCB1 bmRlciBhbiBhbm9ueW1vdXMgbmFtZXNwYWNlLCBhbnkgY29kZSBpbXBvcnRpbmcgdGhlIGdlbSBj YW4gbmFtZSBjb25zdGFudHMgaG93ZXZlciBpdCBsaWtlczoKCmBgYHJ1YnkKY2xhc3MgUG9zdCA8 IGFjdGl2ZV9yZWNvcmQ6OkFjdGl2ZVJlY29yZDo6QmFzZQplbmQKCkFSID0gYWN0aXZlX3JlY29y ZDo6QWN0aXZlUmVjb3JkCgpQb3N0LnN1cGVyY2xhc3MKIz0+IEFSOjpCYXNlCmBgYAoKTm90ZSB0 aGF0IHRoaXMgZW5hYmxlcyB0aGUgaW1wb3J0ZXIgdG8gY29tcGxldGVseSBkZXRlcm1pbmUgdGhl IG5hbWluZyBmb3IgZXZlcnkgY29uc3RhbnQgaXQgaW1wb3J0cy4gU28gZ2VtcyBjYW4gb3B0IHRv IGhpZGUgdGhlaXIgZGVwZW5kZW5jaWVzIGJ5ICJhbmNob3JpbmciIHRoZW0gaW5zaWRlIHRoZWly IG93biBuYW1lc3BhY2UsIGxpa2UgdGhpczoKCmBgYHJ1YnkKIyBpbiBsaWIvbXlfZ2VtLnJiCm1v ZHVsZSBNeUdlbQogIGRlcCA9IGltcG9ydCAibXlfZ2VtX2RlcGVuZGVuY3kiCgogICMgbXlfZ2Vt X2RlcGVuZGVuY3kgaXMgImFuY2hvcmVkIiB1bmRlciB0aGUgTXlHZW0gbmFtZXNwYWNlLCBzbyBu b3QgZXhwb3NlZCB0byB1c2VycwogICMgb2YgdGhlIGdlbSB1bmxlc3MgdGhleSBhbHNvIHJlcXVp cmUgaXQuCiAgTXlHZW1EZXBlbmRlbmN5ID0gZGVwCgogICMuLi4KZW5kCmBgYAoKVGhlcmUgYXJl IGEgY291cGxlIGltcG9ydGFudCBpbXBsZW1lbnRhdGlvbiBkZWNpc2lvbnMgaW4gdGhlIGdlbToK CjEuIF9Pbmx5IGxvYWQgY29kZSBvbmNlLl8gV2hlbiB0aGUgc2FtZSBmaWxlIGlzIGltcG9ydGVk IGFnYWluIChlaXRoZXIgZGlyZWN0bHkgb3IgdHJhbnNpdGl2ZWx5KSwgImNvcHkiIGNvbnN0YW50 cyBmcm9tIHByZXZpb3VzbHkgaW1wb3J0ZWQgbmFtZXNwYWNlIHRvIHRoZSBuZXcgbmFtZXNwYWNl IHVzaW5nIGEgcmVnaXN0cnkgd2hpY2ggbWFwcyB3aGljaCBuYW1lc3BhY2UgKGltcG9ydCkgd2Fz IHVzZWQgdG8gbG9hZCB3aGljaCBmaWxlIChhcyBzaG93biBhYm92ZSB3aXRoIGFjdGl2ZXJlY29y ZC9hY3RpdmVtb2RlbCkuIFRoaXMgaXMgbmVjZXNzYXJ5IHRvIGVuc3VyZSB0aGF0IGRpZmZlcmVu dCBpbXBvcnRzIGNhbiAic2VlIiBzaGFyZWQgZmlsZXMuIEEgc2ltaWxhciByZWdpc3RyeSBpcyB1 c2VkIHRvIHRyYWNrIGF1dG9sb2FkcyBzbyB0aGF0IHRoZXkgd29yayBjb3JyZWN0bHkgd2hlbiB1 c2VkIGZyb20gaW1wb3J0ZWQgY29kZS4KMi4gVG9wbGV2ZWwgY29yZSB0eXBlcyAoYE5pbENsYXNz YCwgYFRydWVDbGFzc2AsIGBGYWxzZUNsYXNzYCwgYFN0cmluZ2AsIGV0YykgYXJlICJhbGlhc2Vk IiB0byBjb25zdGFudHMgdW5kZXIgZWFjaCBpbXBvcnQgbW9kdWxlIHRvIG1ha2UgdGhlbSBhdmFp bGFibGUuIFRodXMgdGhlcmUgY2FuIGJlIHNpZGUtZWZmZWN0cyBvZiBpbXBvcnRpbmcgY29kZSwg YnV0IHRoaXMgYWxsb3dzIGEgZ2VtIGxpa2UgUmFpbHMgdG8gbW9ua2V5cGF0Y2ggY29yZSBjbGFz c2VzIHdoaWNoIGl0IG5lZWRzIHRvIGRvIGZvciBpdCB0byB3b3JrLgozLiBgT2JqZWN0LmNvbnN0 X21pc3NpbmdgIGlzIHBhdGNoZWQgdG8gY2hlY2sgdGhlIGNhbGxlciBsb2NhdGlvbiBhbmQgcmVz b2x2ZSB0byB0aGUgY29uc3RhbnQgZGVmaW5lZCB1bmRlciBhbiBpbXBvcnQsIGlmIHRoZXJlIGlz IGFuIGltcG9ydCBkZWZpbmVkIGZvciB0aGF0IGZpbGUuCgpUbyBiZSBjbGVhcjogKipJIHRoaW5r IDEpIHNob3VsZCBiZSBpbXBsZW1lbnRlZCBpbiBSdWJ5LCBidXQgbm90IDIpIGFuZCAzKS4qKiBU aGUgbGFzdCBvbmUgKGBPYmplY3QuY29uc3RfbWlzc2luZ2ApIGlzIGEgaGFjayB0byBzdXBwb3J0 IHRoZSBjYXNlIHdoZXJlIGEgdG9wbGV2ZWwgY29uc3RhbnQgaXMgcmVmZXJlbmNlZCBmcm9tIGEg bWV0aG9kIGNhbGxlZCBpbiBpbXBvcnRlZCBjb2RlIChhdCB3aGljaCBwb2ludCB0aGUgYHRvcF93 cmFwcGVyYCBpcyBub3QgYWN0aXZlLikKCkkga25vdyB0aGlzIGlzIGEgYmlnIHByb3Bvc2FsLCBh bmQgdGhlcmUgYXJlIHN0cm9uZyBvcGluaW9ucyBoZWxkLiBJIHdvdWxkIHJlYWxseSBhcHByZWNp YXRlIGNvbnN0cnVjdGl2ZSBmZWVkYmFjayBvbiB0aGlzIGdlbmVyYWwgaWRlYS4KClNlZSBhbHNv IHNpbWlsYXIgZGlzY3Vzc2lvbiBpbjogaHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvaXNzdWVz LzEwMzIwCgoKCi0tIApodHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy8KClVuc3Vic2NyaWJlOiA8 bWFpbHRvOnJ1YnktY29yZS1yZXF1ZXN0QHJ1YnktbGFuZy5vcmc/c3ViamVjdD11bnN1YnNjcmli ZT4KPGh0dHA6Ly9saXN0cy5ydWJ5LWxhbmcub3JnL2NnaS1iaW4vbWFpbG1hbi9vcHRpb25zL3J1 YnktY29yZT4K