[ruby-core:110105] [Ruby master Feature#19024] Proposal: Import Modules
From:
"fxn (Xavier Noria)" <noreply@...>
Date:
2022-09-27 08:50:01 UTC
List:
ruby-core #110105
SXNzdWUgIzE5MDI0IGhhcyBiZWVuIHVwZGF0ZWQgYnkgZnhuIChYYXZpZXIgTm9yaWEpLgoKCkZh aXIsIEkgc2VlIHJhbWlmaWNhdGlvbnMgaW4gdHJhbnNpdGl2aXR5IGZvciBjb2RlIHVucmVsYXRl ZCB0byB0aGUgcGFja2FnZXMgKDNyZCBwYXJ0eSBnZW1zKSwgY29uc3RhbnQgcmVzb2x1dGlvbiBn aW1taWNrcywgYW5kIGEgZmV3IG90aGVyIHRoaW5ncy4gSSBvbmx5IGhhdmUgc3BhcmUgdGltZSBm b3IgdGhpcywgYnV0IHdpbGwgdHJ5IHRvIHN1bW1hcml6ZSBzb21lIG9mIHRob3NlIGNvbmNlcm5z IGxhdGVyIGlmIHRoZSBjb252ZXJzYXRpb24gZG9lcyBub3QgYWRkcmVzcyB0aGVtIG9yIGRvZXNu J3QgbGVhbiBpbnRvIHBhY2thZ2VzLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpGZWF0dXJlICMxOTAyNDogUHJvcG9zYWw6IEltcG9ydCBNb2R1bGVzCmh0dHBzOi8v YnVncy5ydWJ5LWxhbmcub3JnL2lzc3Vlcy8xOTAyNCNjaGFuZ2UtOTkzNjMKCiogQXV0aG9yOiBz aGlveWFtYSAoQ2hyaXMgU2FsemJlcmcpCiogU3RhdHVzOiBPcGVuCiogUHJpb3JpdHk6IE5vcm1h bAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRoZXJlIGlzIG5vIGdl bmVyYWwgd2F5IGluIFJ1YnkgdG8gbG9hZCBjb2RlIG91dHNpZGUgb2YgdGhlIGdsb2JhbGx5LXNo YXJlZCBuYW1lc3BhY2UuIFRoaXMgbWFrZXMgaXQgaGFyZCB0byBpc29sYXRlIGNvbXBvbmVudHMg b2YgYW4gYXBwbGljYXRpb24gZnJvbSBlYWNoIG90aGVyIGFuZCBmcm9tIHRoZSBhcHBsaWNhdGlv biBpdHNlbGYsIGxlYWRpbmcgdG8gY29tcGxpY2F0ZWQgcmVsYXRpb25zaGlwcyB0aGF0IGNhbiBi ZWNvbWUgaW50cmFjdGFibGUgYXMgYXBwbGljYXRpb25zIGdyb3cgaW4gc2l6ZS4KClRoZSBncm93 aW5nIHBvcHVsYXJpdHkgb2YgYSBnZW0gbGlrZSBbUGFja3dlcmtdKGh0dHBzOi8vZ2l0aHViLmNv bS9zaG9waWZ5L3BhY2t3ZXJrKSwgd2hpY2ggcHJvdmlkZXMgYSBuZXcgY29uY2VwdCBvZiAicGFj a2FnZSIgdG8gZW5mb2NlIGJvdW5kYXJpZXMgc3RhdGljYWxseSBpbiBDSSwgaXMgZXZpZGVuY2Ug dGhhdCB0aGlzIGlzIGEgcmVhbCBwcm9ibGVtLiBCdXQgaW50cm9kdWNpbmcgYSBuZXcgcGFja2Fn aW5nIGNvbmNlcHQgYW5kIENJIHN0ZXAgaXMgYXQgYmVzdCBvbmx5IGEgcGFydGlhbCBzb2x1dGlv biwgd2l0aCBkb3duc2lkZXM6IGl0IGFkZHMgY29tcGxleGl0eSBhbmQgY29nbml0aXZlIG92ZXJo ZWFkIHRoYXQgd291bGRuJ3QgYmUgbmVjZXNzYXJ5IGlmIFJ1YnkgcHJvdmlkZWQgYmV0dGVyIHBh Y2thZ2luZyBpdHNlbGYgKGFzIE1hdHogaGFzIHN1Z2dlc3RlZCBbaXQgc2hvdWxkXShodHRwczov L3lvdXR1LmJlL0RwMTJhM0tHTkZ3P3Q9Mjk1NikpLgoKVGhlcmUgaXMgX29uZV8gbGltaXRlZCB3 YXkgaW4gUnVieSBjdXJyZW50bHkgdG8gbG9hZCBjb2RlIHdpdGhvdXQgcG9sbHV0aW5nIHRoZSBn bG9iYWwgbmFtZXNwYWNlOiBgbG9hZGAgd2l0aCB0aGUgYHdyYXBgIHBhcmFtZXRlciwgd2hpY2gg YXMgb2YgaHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvaXNzdWVzLzYyMTAgY2FuIG5vdyBiZSBh IG1vZHVsZS4gSG93ZXZlciwgdGhpcyBvcHRpb24gZG9lcyBub3QgYXBwbHkgdHJhbnNpdGl2ZWx5 IHRvIGByZXF1aXJlYCBjYWxscyB3aXRoaW4gdGhlIGxvYWRlZCBmaWxlLCBzbyBpdHMgdXNlZnVs bmVzcyBpcyBsaW1pdGVkLgoKTXkgcHJvcG9zYWwgaGVyZSBpcyB0byBlbmFibGUgbW9kdWxlIGlt cG9ydHMgYnkgZG9pbmcgdGhlIGZvbGxvd2luZzoKCjEuIGFwcGx5IHRoZSBgd3JhcGAgbW9kdWxl IG5hbWVzcGFjZSB0cmFuc2l0aXZlbHkgdG8gYHJlcXVpcmVgcyBpbnNpZGUgdGhlIGxvYWRlZCBj b2RlLCBpbmNsdWRpbmcgbmF0aXZlIGV4dGVuc2lvbnMgKG9yIHByb3ZpZGUgYSBuZXcgZmxhZyBv ciBtZXRob2QgdGhhdCB3b3VsZCBkbyB0aGlzKSwKMi4gbWFrZSB0aGUgYHdyYXBgIG1vZHVsZSB0 aGUgdG9wbGV2ZWwgY29udGV4dCBmb3IgY29kZSBsb2FkZWQgdW5kZXIgaXQsIHNvIGA6OkZvb2Ag cmVzb2x2ZXMgdG8gYDx0b3Bfd3JhcHBlcj46OkZvb2AgaW4gbG9hZGVkIGNvZGUgKG9yLCBhZ2Fp biwgcHJvdmlkZSBhIG5ldyBmbGFnIG9yIG1ldGhvZCB0aGF0IHdvdWxkIGRvIHRoaXMpLiBfQWxz byBtYWtlIHRoaXMgYXBwbHkgd2hlbiBjb2RlIHVuZGVyIHRoZSB3cmFwcGVyIG1vZHVsZSBpcyBj YWxsZWQgb3V0c2lkZSBvZiB0aGUgbG9hZCBwcm9jZXNzICh3aGVuIGB0b3Bfd3JhcHBlcmAgaXMg bm8gbG9uZ2VyIHNldCkgJm1kYXNoOyB0aGlzIG1heSBiZSBxdWl0ZSBoYXJkIHRvIGRvXy4KMy4g cmVzb2x2ZSBgbmFtZWAgb24gYW5vbnltb3VzIG1vZHVsZXMgdW5kZXIgdGhlIHdyYXBwZWQgbW9k dWxlIHRvIHRoZWlyIG5hbWVzIHdpdGhvdXQgdGhlIHRvcCB3cmFwcGVyIG1vZHVsZSwgc28gYDx0 b3Bfd3JhcHBlcj46OkZvby5uYW1lYCBldmFsdWF0ZXMgdG8gYCJGb28iYC4gVGhlcmUgbWF5IGJl IG90aGVyIHdheXMgdG8gaGFuZGxlIHRoaXMgcHJvYmxlbSwgYnV0IGEgZ2VtIGxpa2UgUmFpbHMg dXNlcyBgbmFtZWAgdG8gcmVzb2x2ZSBmaWxlbmFtZXMgYW5kIGZhaWxzIHdoZW4gYW5vbnltb3Vz IG1vZHVsZXMgcmV0dXJuIHNvbWV0aGluZyBsaWtlIGAjPE1vZHVsZTogLi4uPjo6QWN0aXZlUmVj b3JkYCBpbnN0ZWFkIG9mIGp1c3QgYEFjdGl2ZVJlY29yZGAuCgpJIGhhdmUgcm91Z2hseSBpbXBs ZW1lbnRlZCB0aGVzZSB0aHJlZSB0aGluZ3MgaW4gW3RoaXMgcGF0Y2hdKGh0dHBzOi8vZ2l0aHVi LmNvbS9ydWJ5L3J1YnkvY29tcGFyZS9tYXN0ZXIuLi5zaGlveWFtYTpydWJ5OmltcG9ydF9tb2R1 bGVzKS4gVGhpcyBpbXBsZW1lbnRhdGlvbiBpcyBpbmNvbXBsZXRlIChpdCBkb2VzIG5vdCBjb3Zl ciB0aGUgbGFzdCBoaWdobGlnaHRlZCBwYXJ0IG9mIDIpIGJ1dCBwcm92aWRlcyBlbm91Z2ggb2Yg YSBiYXNpcyB0byBpbXBsZW1lbnQgYW4gYGltcG9ydGAgbWV0aG9kLCB3aGljaCBJIGhhdmUgZG9u ZSBpbiBhIGdlbSBjYWxsZWQgW0ltXShodHRwczovL2dpdGh1Yi5jb20vc2hpb3lhbWEvaW0pLgoK SW0gcHJvdmlkZXMgYW4gYGltcG9ydGAgbWV0aG9kIHdoaWNoIGNhbiBiZSB1c2VkIHRvIGltcG9y dCBnZW0gY29kZSB1bmRlciBhIG5hbWVzcGFjZToKCmBgYHJ1YnkKcmVxdWlyZSAiaW0iCmV4dGVu ZCBJbQoKYWN0aXZlX21vZGVsID0gaW1wb3J0ICJhY3RpdmVfbW9kZWwiCiM9PiA8I0ltOjpJbXBv cnQgcm9vdDogYWN0aXZlX21vZGVsPgoKQWN0aXZlTW9kZWwKIz0+IE5hbWVFcnJvcgoKYWN0aXZl X21vZGVsOjpBY3RpdmVNb2RlbAojPT4gQWN0aXZlTW9kZWwKCmFjdGl2ZV9yZWNvcmQgPSBpbXBv cnQgImFjdGl2ZV9yZWNvcmQiCiM9PiA8I0ltOjpJbXBvcnQgcm9vdDogYWN0aXZlX3JlY29yZD4K CiMgQ29uc3RhbnRzIGRlZmluZWQgaW4gdGhlIHNhbWUgZmlsZSB1bmRlciBkaWZmZXJlbnQgaW1w b3J0cyBwb2ludCB0byB0aGUgc2FtZSBvYmplY3RzCmFjdGl2ZV9yZWNvcmQ6OkFjdGl2ZU1vZGVs ID09IGFjdGl2ZV9tb2RlbDo6QWN0aXZlTW9kZWwKIz0+IHRydWUKYGBgCgpXaXRoIHRoZSBjb25z dGFudHMgYWxsIGxvYWRlZCB1bmRlciBhbiBhbm9ueW1vdXMgbmFtZXNwYWNlLCBhbnkgY29kZSBp bXBvcnRpbmcgdGhlIGdlbSBjYW4gbmFtZSBjb25zdGFudHMgaG93ZXZlciBpdCBsaWtlczoKCmBg YHJ1YnkKY2xhc3MgUG9zdCA8IGFjdGl2ZV9yZWNvcmQ6OkFjdGl2ZVJlY29yZDo6QmFzZQplbmQK CkFSID0gYWN0aXZlX3JlY29yZDo6QWN0aXZlUmVjb3JkCgpQb3N0LnN1cGVyY2xhc3MKIz0+IEFS OjpCYXNlCmBgYAoKTm90ZSB0aGF0IHRoaXMgZW5hYmxlcyB0aGUgaW1wb3J0ZXIgdG8gY29tcGxl dGVseSBkZXRlcm1pbmUgdGhlIG5hbWluZyBmb3IgZXZlcnkgY29uc3RhbnQgaXQgaW1wb3J0cy4g U28gZ2VtcyBjYW4gb3B0IHRvIGhpZGUgdGhlaXIgZGVwZW5kZW5jaWVzIGJ5ICJhbmNob3Jpbmci IHRoZW0gaW5zaWRlIHRoZWlyIG93biBuYW1lc3BhY2UsIGxpa2UgdGhpczoKCmBgYHJ1YnkKIyBp biBsaWIvbXlfZ2VtLnJiCm1vZHVsZSBNeUdlbQogIGRlcCA9IGltcG9ydCAibXlfZ2VtX2RlcGVu ZGVuY3kiCgogICMgbXlfZ2VtX2RlcGVuZGVuY3kgaXMgImFuY2hvcmVkIiB1bmRlciB0aGUgTXlH ZW0gbmFtZXNwYWNlLCBzbyBub3QgZXhwb3NlZCB0byB1c2VycwogICMgb2YgdGhlIGdlbSB1bmxl c3MgdGhleSBhbHNvIHJlcXVpcmUgaXQuCiAgTXlHZW1EZXBlbmRlbmN5ID0gZGVwCgogICMuLi4K ZW5kCmBgYAoKVGhlcmUgYXJlIGEgY291cGxlIGltcG9ydGFudCBpbXBsZW1lbnRhdGlvbiBkZWNp c2lvbnMgaW4gdGhlIGdlbToKCjEuIF9Pbmx5IGxvYWQgY29kZSBvbmNlLl8gV2hlbiB0aGUgc2Ft ZSBmaWxlIGlzIGltcG9ydGVkIGFnYWluIChlaXRoZXIgZGlyZWN0bHkgb3IgdHJhbnNpdGl2ZWx5 KSwgImNvcHkiIGNvbnN0YW50cyBmcm9tIHByZXZpb3VzbHkgaW1wb3J0ZWQgbmFtZXNwYWNlIHRv IHRoZSBuZXcgbmFtZXNwYWNlIHVzaW5nIGEgcmVnaXN0cnkgd2hpY2ggbWFwcyB3aGljaCBuYW1l c3BhY2UgKGltcG9ydCkgd2FzIHVzZWQgdG8gbG9hZCB3aGljaCBmaWxlIChhcyBzaG93biBhYm92 ZSB3aXRoIGFjdGl2ZXJlY29yZC9hY3RpdmVtb2RlbCkuIFRoaXMgaXMgbmVjZXNzYXJ5IHRvIGVu c3VyZSB0aGF0IGRpZmZlcmVudCBpbXBvcnRzIGNhbiAic2VlIiBzaGFyZWQgZmlsZXMuIEEgc2lt aWxhciByZWdpc3RyeSBpcyB1c2VkIHRvIHRyYWNrIGF1dG9sb2FkcyBzbyB0aGF0IHRoZXkgd29y ayBjb3JyZWN0bHkgd2hlbiB1c2VkIGZyb20gaW1wb3J0ZWQgY29kZS4KMi4gVG9wbGV2ZWwgY29y ZSB0eXBlcyAoYE5pbENsYXNzYCwgYFRydWVDbGFzc2AsIGBGYWxzZUNsYXNzYCwgYFN0cmluZ2As IGV0YykgYXJlICJhbGlhc2VkIiB0byBjb25zdGFudHMgdW5kZXIgZWFjaCBpbXBvcnQgbW9kdWxl IHRvIG1ha2UgdGhlbSBhdmFpbGFibGUuIFRodXMgdGhlcmUgY2FuIGJlIHNpZGUtZWZmZWN0cyBv ZiBpbXBvcnRpbmcgY29kZSwgYnV0IHRoaXMgYWxsb3dzIGEgZ2VtIGxpa2UgUmFpbHMgdG8gbW9u a2V5cGF0Y2ggY29yZSBjbGFzc2VzIHdoaWNoIGl0IG5lZWRzIHRvIGRvIGZvciBpdCB0byB3b3Jr LgozLiBgT2JqZWN0LmNvbnN0X21pc3NpbmdgIGlzIHBhdGNoZWQgdG8gY2hlY2sgdGhlIGNhbGxl ciBsb2NhdGlvbiBhbmQgcmVzb2x2ZSB0byB0aGUgY29uc3RhbnQgZGVmaW5lZCB1bmRlciBhbiBp bXBvcnQsIGlmIHRoZXJlIGlzIGFuIGltcG9ydCBkZWZpbmVkIGZvciB0aGF0IGZpbGUuCgpUbyBi ZSBjbGVhcjogKipJIHRoaW5rIDEpIHNob3VsZCBiZSBpbXBsZW1lbnRlZCBpbiBSdWJ5LCBidXQg bm90IDIpIGFuZCAzKS4qKiBUaGUgbGFzdCBvbmUgKGBPYmplY3QuY29uc3RfbWlzc2luZ2ApIGlz IGEgaGFjayB0byBzdXBwb3J0IHRoZSBjYXNlIHdoZXJlIGEgdG9wbGV2ZWwgY29uc3RhbnQgaXMg cmVmZXJlbmNlZCBmcm9tIGEgbWV0aG9kIGNhbGxlZCBpbiBpbXBvcnRlZCBjb2RlIChhdCB3aGlj aCBwb2ludCB0aGUgYHRvcF93cmFwcGVyYCBpcyBub3QgYWN0aXZlLikKCkkga25vdyB0aGlzIGlz IGEgYmlnIHByb3Bvc2FsLCBhbmQgdGhlcmUgYXJlIHN0cm9uZyBvcGluaW9ucyBoZWxkLiBJIHdv dWxkIHJlYWxseSBhcHByZWNpYXRlIGNvbnN0cnVjdGl2ZSBmZWVkYmFjayBvbiB0aGlzIGdlbmVy YWwgaWRlYS4KClNlZSBhbHNvIHNpbWlsYXIgZGlzY3Vzc2lvbiBpbjogaHR0cHM6Ly9idWdzLnJ1 YnktbGFuZy5vcmcvaXNzdWVzLzEwMzIwCgoKCi0tIApodHRwczovL2J1Z3MucnVieS1sYW5nLm9y Zy8KClVuc3Vic2NyaWJlOiA8bWFpbHRvOnJ1YnktY29yZS1yZXF1ZXN0QHJ1YnktbGFuZy5vcmc/ c3ViamVjdD11bnN1YnNjcmliZT4KPGh0dHA6Ly9saXN0cy5ydWJ5LWxhbmcub3JnL2NnaS1iaW4v bWFpbG1hbi9vcHRpb25zL3J1YnktY29yZT4K