I just *immediately* found a bug thanks to the redefinition warning:

julia> using Plots; plotlyjs()
> INFO: Recompiling stale cache file /home/tom/.julia/lib/v0.5/Plots.ji for
> module Plots.
> WARNING: Method definition apply_recipe(Base.Dict{Symbol, Any},
> Type{Base.Dates.Date}, Base.Dates.Date) in module Plots at
> /home/tom/.julia/v0.5/RecipesBase/src/RecipesBase.jl:232 overwritten at
> /home/tom/.julia/v0.5/RecipesBase/src/RecipesBase.jl:232.


So... thanks. :)


On Thu, Sep 29, 2016 at 8:07 AM, Daniel Carrera <dcarr...@gmail.com> wrote:

> Hi everyone,
>
> I created a new issue asking the Julia developers to please restore the
> earlier behaviour. I would be immensely grateful if you could write on this
> issue and let the Julia developers know that I am not the only person who
> would be happier without the sea of warnings.
>
> https://github.com/JuliaLang/julia/issues/18725
>
> Cheers,
> Daniel.
>
>
>
> On 28 September 2016 at 15:15, J Luis <jmfl...@gmail.com> wrote:
>
>>
>> This a very heavy install.  It's fetching tons of things that I have not
>>> used.  Not sure what they are, but seems like trashing my system.
>>>
>>
>> Yes, unfortunately Conda is an unbearably big dependency (over 1.xxx Gb)
>> that sneaks in via un-suspicious packages. A dependency this big should
>> never install without a strict user consent. Docs explain how to avoid it
>> but don't find the explanation clear. I had to declare this
>>
>> ENV["JUPYTER"]="C:/programs/WinPython-3.5.2.2_64/python-3.5.
>> 2.amd64/Scripts/jupyter"
>>
>> to really prevent a Conda installation
>>
>>
>>>
>>> On Wednesday, September 28, 2016 at 4:30:32 AM UTC+8, Cedric St-Jean
>>> wrote:
>>>>
>>>> Yeah, it's because of IJulia, sorry about that. I need it to support
>>>> autoreloading. I could split the package in two, but it's small enough
>>>> already that it doesn't feel like the right call.
>>>>
>>>> One day we'll get conditional imports...
>>>>
>>>> On Tue, Sep 27, 2016 at 4:14 PM, Daniel Carrera <dcar...@gmail.com>
>>>> wrote:
>>>>
>>>>> Thanks! You are a savior!
>>>>>
>>>>> Here is something odd: when I installed it with Pkg.clone(...) my
>>>>> Julia decided that it also had to update Conda and install Jupyter. Is 
>>>>> this
>>>>> some weird quirk of my setup. I notice that you import IJulia, so I guess
>>>>> that has something to do with it. It's not a big deal; I just thought it
>>>>> was weird to see the package manager installing stuff like Qt, fontconfig,
>>>>> SSL, and libxml just to clobber include().
>>>>>
>>>>> But other than that, it works fabulously. Thank you so much!
>>>>>
>>>>> Cheers,
>>>>> Daniel.
>>>>>
>>>>>
>>>>>
>>>>> On 27 September 2016 at 21:45, Cedric St-Jean <cedric...@gmail.com>
>>>>> wrote:
>>>>>
>>>>>> I wrote a work-around earlier today:
>>>>>>
>>>>>> Pkg.clone("git://github.com/cstjean/ClobberingReload.jl.git")
>>>>>>
>>>>>> using ClobberingReload: sinclude     # silent include
>>>>>> sinclude("foo.jl")   # no redefinition warnings
>>>>>>
>>>>>>
>>>>>> It's fresh off the press, so please file an issue if you encounter a
>>>>>> problem. It calls `include` under the hood; there's no magic involved. I
>>>>>> just intercept STDERR and remove the redefinition warnings.
>>>>>>
>>>>>> On Tuesday, September 27, 2016 at 3:13:00 PM UTC-4, Andrew wrote:
>>>>>>>
>>>>>>> It seems like a lot of people are complaining about this. Is there
>>>>>>> some way to suppress method overwritten warnings for an include()
>>>>>>> statement? Perhaps a keyword like include("foo.jl", quietly = true)?
>>>>>>>
>>>>>>> On Tuesday, September 27, 2016 at 1:56:27 PM UTC-4, Daniel Carrera
>>>>>>> wrote:
>>>>>>>>
>>>>>>>> Hello,
>>>>>>>>
>>>>>>>> I'm not sure when I upgraded, but I am using Julia 0.5 and now it
>>>>>>>> complains every time I redefine a method, which is basically all the 
>>>>>>>> time.
>>>>>>>> When I'm developing ideas I usually have a file with a script that I 
>>>>>>>> modify
>>>>>>>> and reload all the time:
>>>>>>>>
>>>>>>>> julia> include("foo.jl");
>>>>>>>>
>>>>>>>> ... see the results, edit file ...
>>>>>>>>
>>>>>>>> julia> include("foo.jl");
>>>>>>>>
>>>>>>>> ... see the results, edit file ...
>>>>>>>> julia> include("foo.jl");
>>>>>>>>
>>>>>>>> ... see the results, edit file ...
>>>>>>>>
>>>>>>>>
>>>>>>>> And so on. This is what I do most of the time. But now every time I
>>>>>>>> `include("foo.jl")` I get warnings for every method that has been 
>>>>>>>> redefined
>>>>>>>> (which is all of them):
>>>>>>>>
>>>>>>>> julia> include("foo.jl");
>>>>>>>>
>>>>>>>> WARNING: Method definition (::Type{Main.Line})(Float64, Float64) in
>>>>>>>> module Main at /home/daniel/Data/Science/Thesis/SI.jl:4
>>>>>>>> overwritten at /home/daniel/Data/Science/Thesis/SI.jl:4.
>>>>>>>> WARNING: Method definition (::Type{Main.Line})(Any, Any) in module
>>>>>>>> Main at /home/daniel/Data/Science/Thesis/SI.jl:4 overwritten at
>>>>>>>> /home/daniel/Data/Science/Thesis/SI.jl:4.
>>>>>>>> WARNING: Method definition new_line(Any, Any, Any) in module Main
>>>>>>>> at /home/daniel/Data/Science/Thesis/SI.jl:8 overwritten at
>>>>>>>> /home/daniel/Data/Science/Thesis/SI.jl:8.
>>>>>>>>
>>>>>>>>
>>>>>>>> Is there a way that this can be fixed? How can I recover Julia's
>>>>>>>> earlier behaviour? This is very irritating, and I don't think it makes
>>>>>>>> sense for a functional language like Julia. If I wrote a method as a
>>>>>>>> variable assignment (e.g. "foo = x -> 2*x") Julia wouldn't complain.
>>>>>>>>
>>>>>>>>
>>>>>>>> Thanks for the help,
>>>>>>>> Daniel.
>>>>>>>>
>>>>>>>
>>>>>
>>>>
>

Reply via email to