travis 0.3 vs 0.4

207 views
Skip to first unread message

David van Leeuwen

unread,
Sep 15, 2015, 8:33:59 AM9/15/15
to julia-dev
Hello, 

Now with julia 0.4 stabilizing, I've updated GaussianMixtures.jl.  In my own environment, it passes the test for both 0.3 and 0.4, but in Travis, the 0.4 test never ends (well, not within 50min), and fails.  The tests are computationally a bit demanding, for 0.3 the test takes just over 5 minutes on Travis, but I can't really see why 0.4 would be so much slower. 

Does anybody know if the available resources for 0.3 and 0.4 tests on Travis are different?

Cheers, 

---david

Yichao Yu

unread,
Sep 15, 2015, 9:15:37 AM9/15/15
to Julia Dev
Deprecated methods are really slow (even slower than throwing an
error). You seems to have some deprecated functions. If you are
calling any of those in a loop, it can easily slow things down by
orders of magnitude.

>
> Cheers,
>
> ---david

Simon Kornblith

unread,
Sep 15, 2015, 9:23:24 AM9/15/15
to julia-dev
Also if you run Pkg.test with coverage=true, inlining is disabled on 0.4, which makes code coverage work better but can substantially slow down arithmetic in tight loops.

Simon

David van Leeuwen

unread,
Sep 15, 2015, 10:15:09 AM9/15/15
to julia-dev
Hi, 
I've tried to remove them all from my code---but there is still one in a dependency (Clustering.jl), but this is definitely not in the inner loop.  Ah---there is another in `strftime()` which I missed.  Not in inner loop, though. 

Thanks, 

---david
 
>
> Cheers,
>
> ---david

David van Leeuwen

unread,
Sep 15, 2015, 10:17:36 AM9/15/15
to julia-dev
Hello, 


On Tuesday, September 15, 2015 at 3:23:24 PM UTC+2, Simon Kornblith wrote:
Also if you run Pkg.test with coverage=true, inlining is disabled on 0.4, which makes code coverage work better but can substantially slow down arithmetic in tight loops.

Coverage=true, as per defaults I presume.  So this non-inlining is a specific 0.4 behaviour?  Can I turn coverage off in the .travis.yml?

Thanks, 

---david

Tony Kelman

unread,
Sep 15, 2015, 10:41:56 AM9/15/15
to julia-dev
You can overwrite the default script section to do coverage=false

David van Leeuwen

unread,
Sep 16, 2015, 2:44:08 AM9/16/15
to julia-dev
Hello Tony, 


On Tuesday, September 15, 2015 at 4:41:56 PM UTC+2, Tony Kelman wrote:
You can overwrite the default script section to do coverage=false

How exactly? Following the docs on travis

script:
 
- julia -e 'Pkg.clone(pwd())'
 
- julia -e 'Pkg.build("$name")'
 
- if [ -f test/runtests.jl ]; then julia --check-bounds=yes -e 'Pkg.test("$name", coverage=false)'; fi

fails miserably, for various reasons. 

Tony Kelman

unread,
Sep 16, 2015, 2:48:35 AM9/16/15
to julia-dev
Could you elaborate on "various reasons" and/or point me to a log? The "$name" bit is pseudo-code, you'd need to fill in your package name there. There is actually an environment variable on Travis where it guesses your package name, but I don't think we have that documented.

David van Leeuwen

unread,
Sep 16, 2015, 3:45:33 AM9/16/15
to julia-dev
Hi Tony, 


On Wednesday, September 16, 2015 at 8:48:35 AM UTC+2, Tony Kelman wrote:
Could you elaborate on "various reasons" and/or point me to a log? The "$name" bit is pseudo-code, you'd need to fill in your package name there. There is actually an environment variable on Travis where it guesses your package name, but I don't think we have that documented.

The documentation on Travis says "The package name $name is determined based on the repository name, removing the trailing .jl if present. A repository is treated as a Julia package when it contains a file at src/$name.jl. If your repository does not follow this structure, then the default script will be empty.".   I thought this was the case, but apparently not so. 

The various reasons were:
 - the repo being shallow (i recall I bumped into this before)
 - the $name could not be resolved. 

I think I found a working script (in part reversing the julia language support)

sudo: false
before_install
:
 
- if [[ -a .git/shallow ]]; then git fetch --unshallow; fi
script
:
 
- julia --check-bounds=yes -e 'versioninfo(); Pkg.init(); Pkg.clone(pwd()); Pkg.build("GaussianMixtures"); Pkg.test("GaussianMixtures", coverage=VERSION < v"0.4.0-dev")'


So thanks for all the help, it now works!

Cheers, 

---david
Reply all
Reply to author
Forward
0 new messages