When working with features that touch our template meta-programming framework, 
sometimes some of our builds fail. Why? Because Travis has a 4GB memory+swap 
limit, and when compiling with aggressive vector copy elision, the underlying 
VM runs of of memory (happens more often with gcc than clang).

I was looking around to see if other projects have hit this problem. I found 
the following link: https://github.com/travis-ci/travis-ci/issues/2904 
<https://github.com/travis-ci/travis-ci/issues/2904>. At the bottom of the page 
there are two posts that are interesting. One can shut off pre-started 
database, or more interestingly we can switch to using the Ubuntu Trusty beta 
<https://blog.travis-ci.com/2015-10-14-opening-up-ubuntu-trusty-beta/> by 
adding the following lines to our .travis.yml 
<https://github.com/apache/incubator-quickstep/blob/master/.travis.yml> file: 
sudo: required
dist: trusty
This gives us a 2 vCPU box with 7.5GB of memory! Thereby giving us a lot more 
room to push the template framework if needed. Space during compilation is a 
silly thing to worry about especially if it changes what would have been a good 
design for a feature. So, its is good to know that we have options if we hit 
the 4GB limit in Travis.

Cheers,
Jignesh 

Reply via email to