[ruby-core:110106] [Ruby master Feature#19024] Proposal: Import Modules
From:
"shioyama (Chris Salzberg)" <noreply@...>
Date:
2022-09-27 12:19:11 UTC
List:
ruby-core #110106
SXNzdWUgIzE5MDI0IGhhcyBiZWVuIHVwZGF0ZWQgYnkgc2hpb3lhbWEgKENocmlzIFNhbHpiZXJn KS4KCgo+IEkgb25seSBoYXZlIHNwYXJlIHRpbWUgZm9yIHRoaXMsIGJ1dCB3aWxsIHRyeSB0byBz dW1tYXJpemUgc29tZSBvZiB0aG9zZSBjb25jZXJucyBsYXRlciBpZiB0aGUgY29udmVyc2F0aW9u IGRvZXMgbm90IGFkZHJlc3MgdGhlbSBvciBkb2Vzbid0IGxlYW4gaW50byBwYWNrYWdlcy4KClRo YW5rIHlvdSwgdGhhdCB3b3VsZCBoZWxwIGEgbG90IQoKSSBndWVzcyBteSByZXNpc3RhbmNlIHRv IHBhY2thZ2VzIGFzIGEgbmV3IGNvbmNlcHQgaXMgdGhhdCBpdCBmZWVscyB0byBtZSBsaWtlICh3 aXRoIGEgYml0IG9mIHR3ZWFraW5nKSBleGlzdGluZyBjb25jZXB0cyBpbiBSdWJ5IG1pZ2h0IGJl IGVub3VnaCB0byBkbyB0aGUgc2FtZSB0aGluZy4gZS5nLiBhIG5hbWVzcGFjZWQgdGhhdCBpcyBu b3QgYW5jaG9yZWQgYXQgdG9wbGV2ZWwgY2Fubm90IHNlZSBvdGhlciB0b3BsZXZlbCBjb25zdGFu dHMsIGVmZmVjdGl2ZWx5IGNyZWF0aW5nIGEgYm91bmRhcnkgd2l0aG91dCByZXF1aXJpbmcgYW55 IG5ldyBtZWNoYW5pc20gdG8gZW5mb3JjZSBpdC4gKEFjdHVhbGx5LCBub3QgcXVpdGUgdHJ1ZSBz aW5jZSB5b3UgbmVlZCBhIG5ldyBtZWNoYW5pc20gdG8gaXNvbGF0ZSB0aGUgbmV3IHRvcGxldmVs Li4uKQoKQW55d2F5IEknbSBzdXJlIGltcG9ydHMgYXMgcHJlc2VudGVkIGhhdmUgZ290Y2hhcyAo YW5kIEkgc2VlIGEgY291cGxlIG9mIHRoZW0gYWxyZWFkeSkuIE15IHByZWZlcmVuY2UgaXMganVz dCB0byBmb2N1cyBvbiB0aG9zZSBmaXJzdCAoYW5kIHZhbGlkYXRlIHRoZW0pIHNvIHdlJ3JlIGNs ZWFyIHdoYXQgd2UncmUgdGFsa2luZyBhYm91dCB3aGVuIHdlIHNheSB0aGF0IHRoaW5ncyBhcmUg ZmVhc2libGUgb3Igbm90LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpGZWF0dXJlICMxOTAyNDogUHJvcG9zYWw6IEltcG9ydCBNb2R1bGVzCmh0dHBzOi8vYnVncy5y dWJ5LWxhbmcub3JnL2lzc3Vlcy8xOTAyNCNjaGFuZ2UtOTkzNjQKCiogQXV0aG9yOiBzaGlveWFt YSAoQ2hyaXMgU2FsemJlcmcpCiogU3RhdHVzOiBPcGVuCiogUHJpb3JpdHk6IE5vcm1hbAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRoZXJlIGlzIG5vIGdlbmVyYWwg d2F5IGluIFJ1YnkgdG8gbG9hZCBjb2RlIG91dHNpZGUgb2YgdGhlIGdsb2JhbGx5LXNoYXJlZCBu YW1lc3BhY2UuIFRoaXMgbWFrZXMgaXQgaGFyZCB0byBpc29sYXRlIGNvbXBvbmVudHMgb2YgYW4g YXBwbGljYXRpb24gZnJvbSBlYWNoIG90aGVyIGFuZCBmcm9tIHRoZSBhcHBsaWNhdGlvbiBpdHNl bGYsIGxlYWRpbmcgdG8gY29tcGxpY2F0ZWQgcmVsYXRpb25zaGlwcyB0aGF0IGNhbiBiZWNvbWUg aW50cmFjdGFibGUgYXMgYXBwbGljYXRpb25zIGdyb3cgaW4gc2l6ZS4KClRoZSBncm93aW5nIHBv cHVsYXJpdHkgb2YgYSBnZW0gbGlrZSBbUGFja3dlcmtdKGh0dHBzOi8vZ2l0aHViLmNvbS9zaG9w aWZ5L3BhY2t3ZXJrKSwgd2hpY2ggcHJvdmlkZXMgYSBuZXcgY29uY2VwdCBvZiAicGFja2FnZSIg dG8gZW5mb2NlIGJvdW5kYXJpZXMgc3RhdGljYWxseSBpbiBDSSwgaXMgZXZpZGVuY2UgdGhhdCB0 aGlzIGlzIGEgcmVhbCBwcm9ibGVtLiBCdXQgaW50cm9kdWNpbmcgYSBuZXcgcGFja2FnaW5nIGNv bmNlcHQgYW5kIENJIHN0ZXAgaXMgYXQgYmVzdCBvbmx5IGEgcGFydGlhbCBzb2x1dGlvbiwgd2l0 aCBkb3duc2lkZXM6IGl0IGFkZHMgY29tcGxleGl0eSBhbmQgY29nbml0aXZlIG92ZXJoZWFkIHRo YXQgd291bGRuJ3QgYmUgbmVjZXNzYXJ5IGlmIFJ1YnkgcHJvdmlkZWQgYmV0dGVyIHBhY2thZ2lu ZyBpdHNlbGYgKGFzIE1hdHogaGFzIHN1Z2dlc3RlZCBbaXQgc2hvdWxkXShodHRwczovL3lvdXR1 LmJlL0RwMTJhM0tHTkZ3P3Q9Mjk1NikpLgoKVGhlcmUgaXMgX29uZV8gbGltaXRlZCB3YXkgaW4g UnVieSBjdXJyZW50bHkgdG8gbG9hZCBjb2RlIHdpdGhvdXQgcG9sbHV0aW5nIHRoZSBnbG9iYWwg bmFtZXNwYWNlOiBgbG9hZGAgd2l0aCB0aGUgYHdyYXBgIHBhcmFtZXRlciwgd2hpY2ggYXMgb2Yg aHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvaXNzdWVzLzYyMTAgY2FuIG5vdyBiZSBhIG1vZHVs ZS4gSG93ZXZlciwgdGhpcyBvcHRpb24gZG9lcyBub3QgYXBwbHkgdHJhbnNpdGl2ZWx5IHRvIGBy ZXF1aXJlYCBjYWxscyB3aXRoaW4gdGhlIGxvYWRlZCBmaWxlLCBzbyBpdHMgdXNlZnVsbmVzcyBp cyBsaW1pdGVkLgoKTXkgcHJvcG9zYWwgaGVyZSBpcyB0byBlbmFibGUgbW9kdWxlIGltcG9ydHMg YnkgZG9pbmcgdGhlIGZvbGxvd2luZzoKCjEuIGFwcGx5IHRoZSBgd3JhcGAgbW9kdWxlIG5hbWVz cGFjZSB0cmFuc2l0aXZlbHkgdG8gYHJlcXVpcmVgcyBpbnNpZGUgdGhlIGxvYWRlZCBjb2RlLCBp bmNsdWRpbmcgbmF0aXZlIGV4dGVuc2lvbnMgKG9yIHByb3ZpZGUgYSBuZXcgZmxhZyBvciBtZXRo b2QgdGhhdCB3b3VsZCBkbyB0aGlzKSwKMi4gbWFrZSB0aGUgYHdyYXBgIG1vZHVsZSB0aGUgdG9w bGV2ZWwgY29udGV4dCBmb3IgY29kZSBsb2FkZWQgdW5kZXIgaXQsIHNvIGA6OkZvb2AgcmVzb2x2 ZXMgdG8gYDx0b3Bfd3JhcHBlcj46OkZvb2AgaW4gbG9hZGVkIGNvZGUgKG9yLCBhZ2FpbiwgcHJv dmlkZSBhIG5ldyBmbGFnIG9yIG1ldGhvZCB0aGF0IHdvdWxkIGRvIHRoaXMpLiBfQWxzbyBtYWtl IHRoaXMgYXBwbHkgd2hlbiBjb2RlIHVuZGVyIHRoZSB3cmFwcGVyIG1vZHVsZSBpcyBjYWxsZWQg b3V0c2lkZSBvZiB0aGUgbG9hZCBwcm9jZXNzICh3aGVuIGB0b3Bfd3JhcHBlcmAgaXMgbm8gbG9u Z2VyIHNldCkgJm1kYXNoOyB0aGlzIG1heSBiZSBxdWl0ZSBoYXJkIHRvIGRvXy4KMy4gcmVzb2x2 ZSBgbmFtZWAgb24gYW5vbnltb3VzIG1vZHVsZXMgdW5kZXIgdGhlIHdyYXBwZWQgbW9kdWxlIHRv IHRoZWlyIG5hbWVzIHdpdGhvdXQgdGhlIHRvcCB3cmFwcGVyIG1vZHVsZSwgc28gYDx0b3Bfd3Jh cHBlcj46OkZvby5uYW1lYCBldmFsdWF0ZXMgdG8gYCJGb28iYC4gVGhlcmUgbWF5IGJlIG90aGVy IHdheXMgdG8gaGFuZGxlIHRoaXMgcHJvYmxlbSwgYnV0IGEgZ2VtIGxpa2UgUmFpbHMgdXNlcyBg bmFtZWAgdG8gcmVzb2x2ZSBmaWxlbmFtZXMgYW5kIGZhaWxzIHdoZW4gYW5vbnltb3VzIG1vZHVs ZXMgcmV0dXJuIHNvbWV0aGluZyBsaWtlIGAjPE1vZHVsZTogLi4uPjo6QWN0aXZlUmVjb3JkYCBp bnN0ZWFkIG9mIGp1c3QgYEFjdGl2ZVJlY29yZGAuCgpJIGhhdmUgcm91Z2hseSBpbXBsZW1lbnRl ZCB0aGVzZSB0aHJlZSB0aGluZ3MgaW4gW3RoaXMgcGF0Y2hdKGh0dHBzOi8vZ2l0aHViLmNvbS9y dWJ5L3J1YnkvY29tcGFyZS9tYXN0ZXIuLi5zaGlveWFtYTpydWJ5OmltcG9ydF9tb2R1bGVzKS4g VGhpcyBpbXBsZW1lbnRhdGlvbiBpcyBpbmNvbXBsZXRlIChpdCBkb2VzIG5vdCBjb3ZlciB0aGUg bGFzdCBoaWdobGlnaHRlZCBwYXJ0IG9mIDIpIGJ1dCBwcm92aWRlcyBlbm91Z2ggb2YgYSBiYXNp cyB0byBpbXBsZW1lbnQgYW4gYGltcG9ydGAgbWV0aG9kLCB3aGljaCBJIGhhdmUgZG9uZSBpbiBh IGdlbSBjYWxsZWQgW0ltXShodHRwczovL2dpdGh1Yi5jb20vc2hpb3lhbWEvaW0pLgoKSW0gcHJv dmlkZXMgYW4gYGltcG9ydGAgbWV0aG9kIHdoaWNoIGNhbiBiZSB1c2VkIHRvIGltcG9ydCBnZW0g Y29kZSB1bmRlciBhIG5hbWVzcGFjZToKCmBgYHJ1YnkKcmVxdWlyZSAiaW0iCmV4dGVuZCBJbQoK YWN0aXZlX21vZGVsID0gaW1wb3J0ICJhY3RpdmVfbW9kZWwiCiM9PiA8I0ltOjpJbXBvcnQgcm9v dDogYWN0aXZlX21vZGVsPgoKQWN0aXZlTW9kZWwKIz0+IE5hbWVFcnJvcgoKYWN0aXZlX21vZGVs OjpBY3RpdmVNb2RlbAojPT4gQWN0aXZlTW9kZWwKCmFjdGl2ZV9yZWNvcmQgPSBpbXBvcnQgImFj dGl2ZV9yZWNvcmQiCiM9PiA8I0ltOjpJbXBvcnQgcm9vdDogYWN0aXZlX3JlY29yZD4KCiMgQ29u c3RhbnRzIGRlZmluZWQgaW4gdGhlIHNhbWUgZmlsZSB1bmRlciBkaWZmZXJlbnQgaW1wb3J0cyBw b2ludCB0byB0aGUgc2FtZSBvYmplY3RzCmFjdGl2ZV9yZWNvcmQ6OkFjdGl2ZU1vZGVsID09IGFj dGl2ZV9tb2RlbDo6QWN0aXZlTW9kZWwKIz0+IHRydWUKYGBgCgpXaXRoIHRoZSBjb25zdGFudHMg YWxsIGxvYWRlZCB1bmRlciBhbiBhbm9ueW1vdXMgbmFtZXNwYWNlLCBhbnkgY29kZSBpbXBvcnRp bmcgdGhlIGdlbSBjYW4gbmFtZSBjb25zdGFudHMgaG93ZXZlciBpdCBsaWtlczoKCmBgYHJ1YnkK Y2xhc3MgUG9zdCA8IGFjdGl2ZV9yZWNvcmQ6OkFjdGl2ZVJlY29yZDo6QmFzZQplbmQKCkFSID0g YWN0aXZlX3JlY29yZDo6QWN0aXZlUmVjb3JkCgpQb3N0LnN1cGVyY2xhc3MKIz0+IEFSOjpCYXNl CmBgYAoKTm90ZSB0aGF0IHRoaXMgZW5hYmxlcyB0aGUgaW1wb3J0ZXIgdG8gY29tcGxldGVseSBk ZXRlcm1pbmUgdGhlIG5hbWluZyBmb3IgZXZlcnkgY29uc3RhbnQgaXQgaW1wb3J0cy4gU28gZ2Vt cyBjYW4gb3B0IHRvIGhpZGUgdGhlaXIgZGVwZW5kZW5jaWVzIGJ5ICJhbmNob3JpbmciIHRoZW0g aW5zaWRlIHRoZWlyIG93biBuYW1lc3BhY2UsIGxpa2UgdGhpczoKCmBgYHJ1YnkKIyBpbiBsaWIv bXlfZ2VtLnJiCm1vZHVsZSBNeUdlbQogIGRlcCA9IGltcG9ydCAibXlfZ2VtX2RlcGVuZGVuY3ki CgogICMgbXlfZ2VtX2RlcGVuZGVuY3kgaXMgImFuY2hvcmVkIiB1bmRlciB0aGUgTXlHZW0gbmFt ZXNwYWNlLCBzbyBub3QgZXhwb3NlZCB0byB1c2VycwogICMgb2YgdGhlIGdlbSB1bmxlc3MgdGhl eSBhbHNvIHJlcXVpcmUgaXQuCiAgTXlHZW1EZXBlbmRlbmN5ID0gZGVwCgogICMuLi4KZW5kCmBg YAoKVGhlcmUgYXJlIGEgY291cGxlIGltcG9ydGFudCBpbXBsZW1lbnRhdGlvbiBkZWNpc2lvbnMg aW4gdGhlIGdlbToKCjEuIF9Pbmx5IGxvYWQgY29kZSBvbmNlLl8gV2hlbiB0aGUgc2FtZSBmaWxl IGlzIGltcG9ydGVkIGFnYWluIChlaXRoZXIgZGlyZWN0bHkgb3IgdHJhbnNpdGl2ZWx5KSwgImNv cHkiIGNvbnN0YW50cyBmcm9tIHByZXZpb3VzbHkgaW1wb3J0ZWQgbmFtZXNwYWNlIHRvIHRoZSBu ZXcgbmFtZXNwYWNlIHVzaW5nIGEgcmVnaXN0cnkgd2hpY2ggbWFwcyB3aGljaCBuYW1lc3BhY2Ug KGltcG9ydCkgd2FzIHVzZWQgdG8gbG9hZCB3aGljaCBmaWxlIChhcyBzaG93biBhYm92ZSB3aXRo IGFjdGl2ZXJlY29yZC9hY3RpdmVtb2RlbCkuIFRoaXMgaXMgbmVjZXNzYXJ5IHRvIGVuc3VyZSB0 aGF0IGRpZmZlcmVudCBpbXBvcnRzIGNhbiAic2VlIiBzaGFyZWQgZmlsZXMuIEEgc2ltaWxhciBy ZWdpc3RyeSBpcyB1c2VkIHRvIHRyYWNrIGF1dG9sb2FkcyBzbyB0aGF0IHRoZXkgd29yayBjb3Jy ZWN0bHkgd2hlbiB1c2VkIGZyb20gaW1wb3J0ZWQgY29kZS4KMi4gVG9wbGV2ZWwgY29yZSB0eXBl cyAoYE5pbENsYXNzYCwgYFRydWVDbGFzc2AsIGBGYWxzZUNsYXNzYCwgYFN0cmluZ2AsIGV0Yykg YXJlICJhbGlhc2VkIiB0byBjb25zdGFudHMgdW5kZXIgZWFjaCBpbXBvcnQgbW9kdWxlIHRvIG1h a2UgdGhlbSBhdmFpbGFibGUuIFRodXMgdGhlcmUgY2FuIGJlIHNpZGUtZWZmZWN0cyBvZiBpbXBv cnRpbmcgY29kZSwgYnV0IHRoaXMgYWxsb3dzIGEgZ2VtIGxpa2UgUmFpbHMgdG8gbW9ua2V5cGF0 Y2ggY29yZSBjbGFzc2VzIHdoaWNoIGl0IG5lZWRzIHRvIGRvIGZvciBpdCB0byB3b3JrLgozLiBg T2JqZWN0LmNvbnN0X21pc3NpbmdgIGlzIHBhdGNoZWQgdG8gY2hlY2sgdGhlIGNhbGxlciBsb2Nh dGlvbiBhbmQgcmVzb2x2ZSB0byB0aGUgY29uc3RhbnQgZGVmaW5lZCB1bmRlciBhbiBpbXBvcnQs IGlmIHRoZXJlIGlzIGFuIGltcG9ydCBkZWZpbmVkIGZvciB0aGF0IGZpbGUuCgpUbyBiZSBjbGVh cjogKipJIHRoaW5rIDEpIHNob3VsZCBiZSBpbXBsZW1lbnRlZCBpbiBSdWJ5LCBidXQgbm90IDIp IGFuZCAzKS4qKiBUaGUgbGFzdCBvbmUgKGBPYmplY3QuY29uc3RfbWlzc2luZ2ApIGlzIGEgaGFj ayB0byBzdXBwb3J0IHRoZSBjYXNlIHdoZXJlIGEgdG9wbGV2ZWwgY29uc3RhbnQgaXMgcmVmZXJl bmNlZCBmcm9tIGEgbWV0aG9kIGNhbGxlZCBpbiBpbXBvcnRlZCBjb2RlIChhdCB3aGljaCBwb2lu dCB0aGUgYHRvcF93cmFwcGVyYCBpcyBub3QgYWN0aXZlLikKCkkga25vdyB0aGlzIGlzIGEgYmln IHByb3Bvc2FsLCBhbmQgdGhlcmUgYXJlIHN0cm9uZyBvcGluaW9ucyBoZWxkLiBJIHdvdWxkIHJl YWxseSBhcHByZWNpYXRlIGNvbnN0cnVjdGl2ZSBmZWVkYmFjayBvbiB0aGlzIGdlbmVyYWwgaWRl YS4KClNlZSBhbHNvIHNpbWlsYXIgZGlzY3Vzc2lvbiBpbjogaHR0cHM6Ly9idWdzLnJ1YnktbGFu Zy5vcmcvaXNzdWVzLzEwMzIwCgoKCi0tIApodHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy8KClVu c3Vic2NyaWJlOiA8bWFpbHRvOnJ1YnktY29yZS1yZXF1ZXN0QHJ1YnktbGFuZy5vcmc/c3ViamVj dD11bnN1YnNjcmliZT4KPGh0dHA6Ly9saXN0cy5ydWJ5LWxhbmcub3JnL2NnaS1iaW4vbWFpbG1h bi9vcHRpb25zL3J1YnktY29yZT4K