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