Isn't it odd, though, that there is no warning "Could not import 
Gadfly.draw into Main" (or Gtk.draw, depending on order)?

// T

On Tuesday, July 22, 2014 12:30:55 PM UTC+2, Ivar Nesje wrote:
>
> The problem is that both Gtk and Gadfly exports a draw function. 
> Internally those are scoped by module so that their name is Gadfly.draw() 
> and Gtk.draw(), and you can call them as such in your code. We can't merge 
> the function's method, because there is no way to know which one to call if 
> both define a draw(a::Any) method.
>
> When you use `using` you import the exported identifiers into the local 
> scope, and if there is a conflict you run into trouble because you don't 
> know which one you'll get.
>
> There is an issue to change the behaviour to give a warning when using an 
> ambiguous identifier in #4345 
> <https://github.com/JuliaLang/julia/issues/4345>. 
>
> Ivar
>
> kl. 11:59:39 UTC+2 tirsdag 22. juli 2014 skrev Andreas Lobinger følgende:
>>
>> Hello colleagues,
>>
>> i was for some time under the impression, that the exact sequence of 
>> imports do not matter (let's say, i hoped) as the definitions of types and 
>> functions are cumulative, modules should be self contained and use require 
>> where needed.
>>
>> Today:
>>
>> lobi@maroon:~/juliarepo$ ../julia/julia 
>>                _
>>    _       _ _(_)_     |  A fresh approach to technical computing
>>   (_)     | (_) (_)    |  Documentation: http://docs.julialang.org
>>    _ _   _| |_  __ _   |  Type "help()" to list help topics
>>   | | | | | | |/ _` |  |
>>   | | |_| | | | (_| |  |  Version 0.3.0-rc1+116 (2014-07-21 15:59 UTC)
>>  _/ |\__'_|_|_|\__'_|  |  Commit e75595f* (0 days old master)
>> |__/                   |  i686-linux-gnu
>>
>> julia> using Gadfly
>> Warning: could not import Base.has into Gadfly
>> Warning: could not import StatsBase.bandwidth into Stat
>> Warning: could not import StatsBase.kde into Stat
>>
>> julia> using Gtk
>>
>> julia> methods(draw)
>> # 3 methods for generic function "draw":
>> draw(redraw::Function,widget::GtkCanvas) at 
>> /home/lobi/.julia/v0.3/Gtk/src/cairo.jl:56
>> draw(widget::GtkCanvas) at /home/lobi/.julia/v0.3/Gtk/src/cairo.jl:61
>> draw(widget::GtkCanvas,immediate::Bool) at 
>> /home/lobi/.julia/v0.3/Gtk/src/cairo.jl:61
>>
>> julia> 
>>
>> In contrast to:
>>
>> lobi@maroon:~/juliarepo$ ../julia/julia 
>>                _
>>    _       _ _(_)_     |  A fresh approach to technical computing
>>   (_)     | (_) (_)    |  Documentation: http://docs.julialang.org
>>    _ _   _| |_  __ _   |  Type "help()" to list help topics
>>   | | | | | | |/ _` |  |
>>   | | |_| | | | (_| |  |  Version 0.3.0-rc1+116 (2014-07-21 15:59 UTC)
>>  _/ |\__'_|_|_|\__'_|  |  Commit e75595f* (0 days old master)
>> |__/                   |  i686-linux-gnu
>>
>> julia> using Gtk
>>
>> julia> using Gadfly
>> Warning: could not import Base.has into Gadfly
>> Warning: could not import StatsBase.bandwidth into Stat
>> Warning: could not import StatsBase.kde into Stat
>>
>> julia> methods(draw)
>> # 30 methods for generic function "draw":
>> draw{P}(backend::Backend,t::Transform,units::UnitBox{S,T,U,V},box::AbsoluteBoundingBox,form::Form{P})
>>  
>> at /home/lobi/.julia/v0.3/Compose/src/form.jl:23
>> draw(backend::Backend,root_canvas::Context) at 
>> /home/lobi/.julia/v0.3/Compose/src/container.jl:271
>> draw(img::Image{B<:ImageBackend},form::Form{P<:FormPrimitive}) at 
>> /home/lobi/.julia/v0.3/Compose/src/cairo_backends.jl:680
>>
>>
>> ?
>>
>> Wishing a happy day,
>>         Andreas
>>
>>
>>

Reply via email to