-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
remove uses of importall Base
in Base
#13526
Comments
Once we do this maybe we can just deprecate |
+1 to deprecating |
Why not? JuMP, for example, exports many names, and doesn't export many others. Extensions of JuMP build on both exported and unexported, so I currently use an |
Having said that. I wouldn't mind getting rid of it to eliminate yet another way of working with modules... |
(https://github.com/search?l=julia&q=importall&type=Code&utf8=%E2%9C%93 makes for interesting reading) |
In his personal style guidelines (Dec 2013), John Myles White advises against the use of @IainNZ there are 63 pages of it. What are you specifically finding interesting ? |
The reason not to use |
@lostanlen I think the interesting part is that there are 63 pages. |
@lostanlen that the first few pages clearly show it being used inappropriately or in a non-critical way, as @simonster points out. Additionally, that its been used quite a few times, i.e. this isn't a hypothetical discussion. @simonster thats a pretty good reason to ditch it. So 👍 to the original topic of this issue, and 👍 to the deprecation. |
There are some high profile packages that are abusing this right now, e.g. bindeps as one example. Do we have an automated way of tracking which functions in a module were imported and extended fron elsewhere? |
I think |
A few submodules (SparseMatrix, LinAlg, DataFmt) use this, and it's not good practice. One concrete problem is that some of Base's exported bindings are not resolved yet (since these are submodules of Base), so you can't really import them anyway. We might want to give a warning for that case.
The text was updated successfully, but these errors were encountered: