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 
>> > > > 
>> > > > 
>> > > 
>>
>

Reply via email to