[ruby-core:110101] [Ruby master Feature#19024] Proposal: Import Modules
From:
"fxn (Xavier Noria)" <noreply@...>
Date:
2022-09-27 07:02:15 UTC
List:
ruby-core #110101
SXNzdWUgIzE5MDI0IGhhcyBiZWVuIHVwZGF0ZWQgYnkgZnhuIChYYXZpZXIgTm9yaWEpLgoKCklu dHVpdGl2ZWx5LCB0aGlzIHByb3Bvc2FsIGNoYW5nZXMgdGhlIHdheSBSdWJ5IHdvcmtzIGluIGEg d2F5IHRoYXQgSSBiZWxpZXZlIGhhcyB0b28gbWFueSByYW1pZmljYXRpb25zIGFuZCBlZGdlIGNh c2VzLiBBbHNvLCBpdCBkZWxlZ2F0ZXMgY29udHJvbCB0byB0aGUgY2FsbGVyLCByYXRoZXIgdGhh biB0byB0aGUgc3ViamVjdCAodGhlIGNvZGUgYmVpbmcgbG9hZGVkKS4KClNpbmNlIHRoZSBwcm9i bGVtIHRoZSBwcm9wb3NhbCB3YW50cyB0byBhZGRyZXNzIGlzIGFjY2VzcyBvZiBjb25zdGFudHMg Y3Jvc3MtcGFja2FnZXMsIEkgd29uZGVyIGlmIGFuIGFwcHJvYWNoIHRoYXQgd291bGQgYmUgbW9y ZSBhbGlnbmVkIHdpdGggUnVieSB3b3VsZCBiZSB0byBpbnRyb2R1Y2UgYSAicGFja2FnZSIgdmlz aWJpbGl0eSBrZXl3b3JkLgoKSWYgUDo6QyBpcyBkZWNsYXJlZCB0byBiZSB2aXNpYmxlIG9ubHkg Zm9yIHBhY2thZ2UgUCwgdGhlbiBvbmx5IGNvZGUgd2l0aGluIFAgaXMgYWJsZSB0byByZWZlciB0 byBQOjpDLiBUaGlzIGNvdWxkIGJlIGVuY29kZWQgaW4gdGhlIGNvbnN0YW50IHJlc29sdXRpb24g YWxnb3JpdGhtcyAoaWdub3JpbmcgdGhlIGV4aXN0ZW5jZSBvZiBQOjpDIGFjY29yZGluZyB0byB0 aGUgcnVsZSksIGFuZCB3b3VsZCBmbG93IHF1aXRlIHdlbGwgd2l0aCBjdXJyZW50IFJ1Ynkgc2Vt YW50aWNzIGZvciBldmVyeXRoaW5nIGVsc2UuCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KRmVhdHVyZSAjMTkwMjQ6IFByb3Bvc2FsOiBJbXBvcnQgTW9kdWxlcwpo dHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy9pc3N1ZXMvMTkwMjQjY2hhbmdlLTk5MzU5CgoqIEF1 dGhvcjogc2hpb3lhbWEgKENocmlzIFNhbHpiZXJnKQoqIFN0YXR1czogT3BlbgoqIFByaW9yaXR5 OiBOb3JtYWwKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUaGVyZSBp cyBubyBnZW5lcmFsIHdheSBpbiBSdWJ5IHRvIGxvYWQgY29kZSBvdXRzaWRlIG9mIHRoZSBnbG9i YWxseS1zaGFyZWQgbmFtZXNwYWNlLiBUaGlzIG1ha2VzIGl0IGhhcmQgdG8gaXNvbGF0ZSBjb21w b25lbnRzIG9mIGFuIGFwcGxpY2F0aW9uIGZyb20gZWFjaCBvdGhlciBhbmQgZnJvbSB0aGUgYXBw bGljYXRpb24gaXRzZWxmLCBsZWFkaW5nIHRvIGNvbXBsaWNhdGVkIHJlbGF0aW9uc2hpcHMgdGhh dCBjYW4gYmVjb21lIGludHJhY3RhYmxlIGFzIGFwcGxpY2F0aW9ucyBncm93IGluIHNpemUuCgpU aGUgZ3Jvd2luZyBwb3B1bGFyaXR5IG9mIGEgZ2VtIGxpa2UgW1BhY2t3ZXJrXShodHRwczovL2dp dGh1Yi5jb20vc2hvcGlmeS9wYWNrd2VyayksIHdoaWNoIHByb3ZpZGVzIGEgbmV3IGNvbmNlcHQg b2YgInBhY2thZ2UiIHRvIGVuZm9jZSBib3VuZGFyaWVzIHN0YXRpY2FsbHkgaW4gQ0ksIGlzIGV2 aWRlbmNlIHRoYXQgdGhpcyBpcyBhIHJlYWwgcHJvYmxlbS4gQnV0IGludHJvZHVjaW5nIGEgbmV3 IHBhY2thZ2luZyBjb25jZXB0IGFuZCBDSSBzdGVwIGlzIGF0IGJlc3Qgb25seSBhIHBhcnRpYWwg c29sdXRpb24sIHdpdGggZG93bnNpZGVzOiBpdCBhZGRzIGNvbXBsZXhpdHkgYW5kIGNvZ25pdGl2 ZSBvdmVyaGVhZCB0aGF0IHdvdWxkbid0IGJlIG5lY2Vzc2FyeSBpZiBSdWJ5IHByb3ZpZGVkIGJl dHRlciBwYWNrYWdpbmcgaXRzZWxmIChhcyBNYXR6IGhhcyBzdWdnZXN0ZWQgW2l0IHNob3VsZF0o aHR0cHM6Ly95b3V0dS5iZS9EcDEyYTNLR05Gdz90PTI5NTYpKS4KClRoZXJlIGlzIF9vbmVfIGxp bWl0ZWQgd2F5IGluIFJ1YnkgY3VycmVudGx5IHRvIGxvYWQgY29kZSB3aXRob3V0IHBvbGx1dGlu ZyB0aGUgZ2xvYmFsIG5hbWVzcGFjZTogYGxvYWRgIHdpdGggdGhlIGB3cmFwYCBwYXJhbWV0ZXIs IHdoaWNoIGFzIG9mIGh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnL2lzc3Vlcy82MjEwIGNhbiBu b3cgYmUgYSBtb2R1bGUuIEhvd2V2ZXIsIHRoaXMgb3B0aW9uIGRvZXMgbm90IGFwcGx5IHRyYW5z aXRpdmVseSB0byBgcmVxdWlyZWAgY2FsbHMgd2l0aGluIHRoZSBsb2FkZWQgZmlsZSwgc28gaXRz IHVzZWZ1bG5lc3MgaXMgbGltaXRlZC4KCk15IHByb3Bvc2FsIGhlcmUgaXMgdG8gZW5hYmxlIG1v ZHVsZSBpbXBvcnRzIGJ5IGRvaW5nIHRoZSBmb2xsb3dpbmc6CgoxLiBhcHBseSB0aGUgYHdyYXBg IG1vZHVsZSBuYW1lc3BhY2UgdHJhbnNpdGl2ZWx5IHRvIGByZXF1aXJlYHMgaW5zaWRlIHRoZSBs b2FkZWQgY29kZSwgaW5jbHVkaW5nIG5hdGl2ZSBleHRlbnNpb25zIChvciBwcm92aWRlIGEgbmV3 IGZsYWcgb3IgbWV0aG9kIHRoYXQgd291bGQgZG8gdGhpcyksCjIuIG1ha2UgdGhlIGB3cmFwYCBt b2R1bGUgdGhlIHRvcGxldmVsIGNvbnRleHQgZm9yIGNvZGUgbG9hZGVkIHVuZGVyIGl0LCBzbyBg OjpGb29gIHJlc29sdmVzIHRvIGA8dG9wX3dyYXBwZXI+OjpGb29gIGluIGxvYWRlZCBjb2RlIChv ciwgYWdhaW4sIHByb3ZpZGUgYSBuZXcgZmxhZyBvciBtZXRob2QgdGhhdCB3b3VsZCBkbyB0aGlz KS4gX0Fsc28gbWFrZSB0aGlzIGFwcGx5IHdoZW4gY29kZSB1bmRlciB0aGUgd3JhcHBlciBtb2R1 bGUgaXMgY2FsbGVkIG91dHNpZGUgb2YgdGhlIGxvYWQgcHJvY2VzcyAod2hlbiBgdG9wX3dyYXBw ZXJgIGlzIG5vIGxvbmdlciBzZXQpICZtZGFzaDsgdGhpcyBtYXkgYmUgcXVpdGUgaGFyZCB0byBk b18uCjMuIHJlc29sdmUgYG5hbWVgIG9uIGFub255bW91cyBtb2R1bGVzIHVuZGVyIHRoZSB3cmFw cGVkIG1vZHVsZSB0byB0aGVpciBuYW1lcyB3aXRob3V0IHRoZSB0b3Agd3JhcHBlciBtb2R1bGUs IHNvIGA8dG9wX3dyYXBwZXI+OjpGb28ubmFtZWAgZXZhbHVhdGVzIHRvIGAiRm9vImAuIFRoZXJl IG1heSBiZSBvdGhlciB3YXlzIHRvIGhhbmRsZSB0aGlzIHByb2JsZW0sIGJ1dCBhIGdlbSBsaWtl IFJhaWxzIHVzZXMgYG5hbWVgIHRvIHJlc29sdmUgZmlsZW5hbWVzIGFuZCBmYWlscyB3aGVuIGFu b255bW91cyBtb2R1bGVzIHJldHVybiBzb21ldGhpbmcgbGlrZSBgIzxNb2R1bGU6IC4uLj46OkFj dGl2ZVJlY29yZGAgaW5zdGVhZCBvZiBqdXN0IGBBY3RpdmVSZWNvcmRgLgoKSSBoYXZlIHJvdWdo bHkgaW1wbGVtZW50ZWQgdGhlc2UgdGhyZWUgdGhpbmdzIGluIFt0aGlzIHBhdGNoXShodHRwczov L2dpdGh1Yi5jb20vcnVieS9ydWJ5L2NvbXBhcmUvbWFzdGVyLi4uc2hpb3lhbWE6cnVieTppbXBv cnRfbW9kdWxlcykuIFRoaXMgaW1wbGVtZW50YXRpb24gaXMgaW5jb21wbGV0ZSAoaXQgZG9lcyBu b3QgY292ZXIgdGhlIGxhc3QgaGlnaGxpZ2h0ZWQgcGFydCBvZiAyKSBidXQgcHJvdmlkZXMgZW5v dWdoIG9mIGEgYmFzaXMgdG8gaW1wbGVtZW50IGFuIGBpbXBvcnRgIG1ldGhvZCwgd2hpY2ggSSBo YXZlIGRvbmUgaW4gYSBnZW0gY2FsbGVkIFtJbV0oaHR0cHM6Ly9naXRodWIuY29tL3NoaW95YW1h L2ltKS4KCkltIHByb3ZpZGVzIGFuIGBpbXBvcnRgIG1ldGhvZCB3aGljaCBjYW4gYmUgdXNlZCB0 byBpbXBvcnQgZ2VtIGNvZGUgdW5kZXIgYSBuYW1lc3BhY2U6CgpgYGBydWJ5CnJlcXVpcmUgImlt IgpleHRlbmQgSW0KCmFjdGl2ZV9tb2RlbCA9IGltcG9ydCAiYWN0aXZlX21vZGVsIgojPT4gPCNJ bTo6SW1wb3J0IHJvb3Q6IGFjdGl2ZV9tb2RlbD4KCkFjdGl2ZU1vZGVsCiM9PiBOYW1lRXJyb3IK CmFjdGl2ZV9tb2RlbDo6QWN0aXZlTW9kZWwKIz0+IEFjdGl2ZU1vZGVsCgphY3RpdmVfcmVjb3Jk ID0gaW1wb3J0ICJhY3RpdmVfcmVjb3JkIgojPT4gPCNJbTo6SW1wb3J0IHJvb3Q6IGFjdGl2ZV9y ZWNvcmQ+CgojIENvbnN0YW50cyBkZWZpbmVkIGluIHRoZSBzYW1lIGZpbGUgdW5kZXIgZGlmZmVy ZW50IGltcG9ydHMgcG9pbnQgdG8gdGhlIHNhbWUgb2JqZWN0cwphY3RpdmVfcmVjb3JkOjpBY3Rp dmVNb2RlbCA9PSBhY3RpdmVfbW9kZWw6OkFjdGl2ZU1vZGVsCiM9PiB0cnVlCmBgYAoKV2l0aCB0 aGUgY29uc3RhbnRzIGFsbCBsb2FkZWQgdW5kZXIgYW4gYW5vbnltb3VzIG5hbWVzcGFjZSwgYW55 IGNvZGUgaW1wb3J0aW5nIHRoZSBnZW0gY2FuIG5hbWUgY29uc3RhbnRzIGhvd2V2ZXIgaXQgbGlr ZXM6CgpgYGBydWJ5CmNsYXNzIFBvc3QgPCBhY3RpdmVfcmVjb3JkOjpBY3RpdmVSZWNvcmQ6OkJh c2UKZW5kCgpBUiA9IGFjdGl2ZV9yZWNvcmQ6OkFjdGl2ZVJlY29yZAoKUG9zdC5zdXBlcmNsYXNz CiM9PiBBUjo6QmFzZQpgYGAKCk5vdGUgdGhhdCB0aGlzIGVuYWJsZXMgdGhlIGltcG9ydGVyIHRv IGNvbXBsZXRlbHkgZGV0ZXJtaW5lIHRoZSBuYW1pbmcgZm9yIGV2ZXJ5IGNvbnN0YW50IGl0IGlt cG9ydHMuIFNvIGdlbXMgY2FuIG9wdCB0byBoaWRlIHRoZWlyIGRlcGVuZGVuY2llcyBieSAiYW5j aG9yaW5nIiB0aGVtIGluc2lkZSB0aGVpciBvd24gbmFtZXNwYWNlLCBsaWtlIHRoaXM6CgpgYGBy dWJ5CiMgaW4gbGliL215X2dlbS5yYgptb2R1bGUgTXlHZW0KICBkZXAgPSBpbXBvcnQgIm15X2dl bV9kZXBlbmRlbmN5IgoKICAjIG15X2dlbV9kZXBlbmRlbmN5IGlzICJhbmNob3JlZCIgdW5kZXIg dGhlIE15R2VtIG5hbWVzcGFjZSwgc28gbm90IGV4cG9zZWQgdG8gdXNlcnMKICAjIG9mIHRoZSBn ZW0gdW5sZXNzIHRoZXkgYWxzbyByZXF1aXJlIGl0LgogIE15R2VtRGVwZW5kZW5jeSA9IGRlcAoK ICAjLi4uCmVuZApgYGAKClRoZXJlIGFyZSBhIGNvdXBsZSBpbXBvcnRhbnQgaW1wbGVtZW50YXRp b24gZGVjaXNpb25zIGluIHRoZSBnZW06CgoxLiBfT25seSBsb2FkIGNvZGUgb25jZS5fIFdoZW4g dGhlIHNhbWUgZmlsZSBpcyBpbXBvcnRlZCBhZ2FpbiAoZWl0aGVyIGRpcmVjdGx5IG9yIHRyYW5z aXRpdmVseSksICJjb3B5IiBjb25zdGFudHMgZnJvbSBwcmV2aW91c2x5IGltcG9ydGVkIG5hbWVz cGFjZSB0byB0aGUgbmV3IG5hbWVzcGFjZSB1c2luZyBhIHJlZ2lzdHJ5IHdoaWNoIG1hcHMgd2hp Y2ggbmFtZXNwYWNlIChpbXBvcnQpIHdhcyB1c2VkIHRvIGxvYWQgd2hpY2ggZmlsZSAoYXMgc2hv d24gYWJvdmUgd2l0aCBhY3RpdmVyZWNvcmQvYWN0aXZlbW9kZWwpLiBUaGlzIGlzIG5lY2Vzc2Fy eSB0byBlbnN1cmUgdGhhdCBkaWZmZXJlbnQgaW1wb3J0cyBjYW4gInNlZSIgc2hhcmVkIGZpbGVz LiBBIHNpbWlsYXIgcmVnaXN0cnkgaXMgdXNlZCB0byB0cmFjayBhdXRvbG9hZHMgc28gdGhhdCB0 aGV5IHdvcmsgY29ycmVjdGx5IHdoZW4gdXNlZCBmcm9tIGltcG9ydGVkIGNvZGUuCjIuIFRvcGxl dmVsIGNvcmUgdHlwZXMgKGBOaWxDbGFzc2AsIGBUcnVlQ2xhc3NgLCBgRmFsc2VDbGFzc2AsIGBT dHJpbmdgLCBldGMpIGFyZSAiYWxpYXNlZCIgdG8gY29uc3RhbnRzIHVuZGVyIGVhY2ggaW1wb3J0 IG1vZHVsZSB0byBtYWtlIHRoZW0gYXZhaWxhYmxlLiBUaHVzIHRoZXJlIGNhbiBiZSBzaWRlLWVm ZmVjdHMgb2YgaW1wb3J0aW5nIGNvZGUsIGJ1dCB0aGlzIGFsbG93cyBhIGdlbSBsaWtlIFJhaWxz IHRvIG1vbmtleXBhdGNoIGNvcmUgY2xhc3NlcyB3aGljaCBpdCBuZWVkcyB0byBkbyBmb3IgaXQg dG8gd29yay4KMy4gYE9iamVjdC5jb25zdF9taXNzaW5nYCBpcyBwYXRjaGVkIHRvIGNoZWNrIHRo ZSBjYWxsZXIgbG9jYXRpb24gYW5kIHJlc29sdmUgdG8gdGhlIGNvbnN0YW50IGRlZmluZWQgdW5k ZXIgYW4gaW1wb3J0LCBpZiB0aGVyZSBpcyBhbiBpbXBvcnQgZGVmaW5lZCBmb3IgdGhhdCBmaWxl LgoKVG8gYmUgY2xlYXI6ICoqSSB0aGluayAxKSBzaG91bGQgYmUgaW1wbGVtZW50ZWQgaW4gUnVi eSwgYnV0IG5vdCAyKSBhbmQgMykuKiogVGhlIGxhc3Qgb25lIChgT2JqZWN0LmNvbnN0X21pc3Np bmdgKSBpcyBhIGhhY2sgdG8gc3VwcG9ydCB0aGUgY2FzZSB3aGVyZSBhIHRvcGxldmVsIGNvbnN0 YW50IGlzIHJlZmVyZW5jZWQgZnJvbSBhIG1ldGhvZCBjYWxsZWQgaW4gaW1wb3J0ZWQgY29kZSAo YXQgd2hpY2ggcG9pbnQgdGhlIGB0b3Bfd3JhcHBlcmAgaXMgbm90IGFjdGl2ZS4pCgpJIGtub3cg dGhpcyBpcyBhIGJpZyBwcm9wb3NhbCwgYW5kIHRoZXJlIGFyZSBzdHJvbmcgb3BpbmlvbnMgaGVs ZC4gSSB3b3VsZCByZWFsbHkgYXBwcmVjaWF0ZSBjb25zdHJ1Y3RpdmUgZmVlZGJhY2sgb24gdGhp cyBnZW5lcmFsIGlkZWEuCgpTZWUgYWxzbyBzaW1pbGFyIGRpc2N1c3Npb24gaW46IGh0dHBzOi8v YnVncy5ydWJ5LWxhbmcub3JnL2lzc3Vlcy8xMDMyMAoKCgotLSAKaHR0cHM6Ly9idWdzLnJ1Ynkt bGFuZy5vcmcvCgpVbnN1YnNjcmliZTogPG1haWx0bzpydWJ5LWNvcmUtcmVxdWVzdEBydWJ5LWxh bmcub3JnP3N1YmplY3Q9dW5zdWJzY3JpYmU+CjxodHRwOi8vbGlzdHMucnVieS1sYW5nLm9yZy9j Z2ktYmluL21haWxtYW4vb3B0aW9ucy9ydWJ5LWNvcmU+Cg==