https://github.com/JuliaLang/julia/pull/12085
On Thursday, 9 July 2015 14:47:20 UTC-3, andrew cooke wrote: > > > anyone can edit the docs, so you could add it too. > > although i just tried and got lost in github. so perhaps there's a > certain minimum leve of intelligence required. > > if i don't see anychange i'll try again later when i have more time. > > On Wednesday, 8 July 2015 16:54:26 UTC-3, Milan Bouchet-Valat wrote: >> >> Le mardi 07 juillet 2015 à 15:07 -0700, andrew cooke a écrit : >> > >> > thanks - the accidental bug explanation makes everything clear (and >> > yes, that was the question). cheers, andrew >> > >> > On Tuesday, 7 July 2015 17:14:32 UTC-3, Leah Hanson wrote: >> > > I think his summary in #11031 is accurate, and the reason given >> > > directly in the reply is the reason for using/importall to be >> > > different. Issue #8000 is a discussion of ways to change/simplify >> > > the syntax. >> > > >> > > I'll take a stab at rephrasing the different in case that helps. >> > > There is only one difference, and on the surface (syntax-wise) it >> > > may seem very minor. The difference between "using" and "importall" >> > > is that with "using" you need to say "function Foo.bar(.." to >> > > extend module Foo's function bar with a new method, but with >> > > "importall" or "import Foo.bar", you only need to say "function >> > > bar(..." and it automatically extends module Foo's function bar. >> > > >> > > If you use "importall", then "function Foo.bar(..." and "function >> > > bar(..." become equivalent. If you use "using", then they are >> > > different. >> > > >> > > The reason this is important enough to have been given separate >> > > syntax is that you don't want to accidentally extend a function >> > > that you didn't know existed, because that could easily cause a >> > > bug. This is most likely to happen with a method that takes a >> > > common type like string or int, because both you and the other >> > > module could define a method to handle such a common type. If you >> > > use importall, then you'll replace the other module's >> > > implementation of "bar(s::String)" with your new implementation, >> > > which could easily do something complete different (and break >> > > all/many future usages of the other functions in module Foo that >> > > depend on calling bar). >> > > >> > > Does this make more sense to you? >> > > (And is it an answer to the question you were asking, or did I >> > > misunderstand?) >> How about adding this to the FAQ, since you took the time to write it >> down? >> >> >> Regards >> >> > > Best, >> > > Leah >> > > >> > > On Tue, Jul 7, 2015 at 9:05 AM, andrew cooke <[email protected]> >> > > wrote: >> > > > >> > > > i'm trying to understand the difference between "using" and >> > > > "importall". i have the same confusion described at >> > > > https://github.com/JuliaLang/julia/issues/11031 but, unlike the >> > > > OP there, reading https://github.com/JuliaLang/julia/issues/8000 >> > > > had not clarified things for me. >> > > > >> > > > thanks, >> > > > andrew >> > > > >> > > > >> > > >> >
