Revision ea5b0a357aa32c7499de88db29f85e22ef489716 authored by Rafael Fourquet on 29 December 2017, 12:42:31 UTC, committed by GitHub on 29 December 2017, 12:42:31 UTC
Now that generating scalar Float64 values (i.e. 52 random bits) is even faster,
it becomes faster to just generate such values and make small integers out of
them, rather than saving entropy bits with using the integer cache.
1 parent d0ed2f2
Raw File
.travis.yml
language: cpp
sudo: required
dist: trusty
matrix:
  include:
    - os: linux
      env: ARCH="i686"
      compiler: "g++-5 -m32"
      addons:
        apt:
          sources:
            - ubuntu-toolchain-r-test
          packages:
            - ccache
            - libssl1.0.0
            - bar
            - time
            - binutils
            - gcc-5
            - g++-5
            - gcc-5-multilib
            - g++-5-multilib
            - make:i386
            - libssl-dev:i386
            - gfortran-5
            - gfortran-5-multilib
    - os: linux
      env: ARCH="x86_64"
      compiler: "g++-5 -m64"
      addons:
        apt:
          sources:
            - ubuntu-toolchain-r-test
          packages:
            - ccache
            - libssl1.0.0
            - bar
            - time
            - g++-5
            - gfortran-5
    - os: osx
      env: ARCH="x86_64"
      osx_image: xcode8
cache: ccache
branches:
  only:
    - master
    - /^release-.*/
    - /^v\d+\.\d+\.\d+$/
notifications:
    email: false
    irc:
        channels:
            - "chat.freenode.net#julia-notifications"
        on_success: change
        on_failure: always
    webhooks:
        urls:
          - http://status.julialang.org/put/travis
          - http://julia.mit.edu:8000/travis-hook
before_install:
    - make check-whitespace
    - if [ `uname` = "Linux" ]; then
        contrib/travis_fastfail.sh || exit 1;
        mkdir -p $HOME/bin;
        ln -s /usr/bin/gcc-5 $HOME/bin/gcc;
        ln -s /usr/bin/g++-5 $HOME/bin/g++;
        ln -s /usr/bin/gfortran-5 $HOME/bin/gfortran;
        ln -s /usr/bin/gcc-5 $HOME/bin/x86_64-linux-gnu-gcc;
        ln -s /usr/bin/g++-5 $HOME/bin/x86_64-linux-gnu-g++;
        gcc --version;
        BAR="bar -i 30";
        BUILDOPTS="-j5 VERBOSE=1 FORCE_ASSERTIONS=1 LLVM_ASSERTIONS=1 USECCACHE=1";
        echo "override ARCH=$ARCH" >> Make.user;
        sudo sh -c "echo 0 > /proc/sys/net/ipv6/conf/lo/disable_ipv6";
        export JULIA_CPU_CORES=4;
        export JULIA_TEST_MAXRSS_MB=1200;
        TESTSTORUN="all";
      elif [ `uname` = "Darwin" ]; then
        brew update;
        brew install -v jq pv ccache;
        export PATH="$(brew --prefix ccache)/libexec:$PATH";
        BAR="pv -i 30";
        contrib/travis_fastfail.sh || exit 1;
        brew tap staticfloat/julia;
        brew rm --force $(brew deps --HEAD julia);
        brew install -v --only-dependencies --HEAD julia;
        brew install -v staticfloat/juliadeps/libgfortran llvm39-julia;
        BUILDOPTS="-j3 USECLANG=1 USECCACHE=1 LLVM_CONFIG=$(brew --prefix llvm39-julia)/bin/llvm-config LLVM_SIZE=$(brew --prefix llvm39-julia)/bin/llvm-size";
        BUILDOPTS="$BUILDOPTS VERBOSE=1 USE_BLAS64=0 SUITESPARSE_INC=-I$(brew --prefix suite-sparse-julia)/include FORCE_ASSERTIONS=1";
        BUILDOPTS="$BUILDOPTS LIBBLAS=-lopenblas LIBBLASNAME=libopenblas LIBLAPACK=-lopenblas LIBLAPACKNAME=libopenblas";
        for lib in LLVM SUITESPARSE ARPACK BLAS LAPACK GMP MPFR PCRE LIBUNWIND; do
            BUILDOPTS="$BUILDOPTS USE_SYSTEM_$lib=1";
        done;
        export LDFLAGS="-L$(brew --prefix openblas-julia)/lib -L$(brew --prefix suite-sparse-julia)/lib";
        spawn_DYLD_FALLBACK_LIBRARY_PATH="/usr/local/lib:/lib:/usr/lib";
        spawn_DYLD_FALLBACK_LIBRARY_PATH+=":$(brew --prefix openblas-julia)/lib";
        spawn_DYLD_FALLBACK_LIBRARY_PATH+=":$(brew --prefix suite-sparse-julia)/lib";
        spawn_DYLD_FALLBACK_LIBRARY_PATH+=":$(brew --prefix arpack-julia)/lib";
        export JULIA_MACOS_SPAWN="DYLD_FALLBACK_LIBRARY_PATH=\"$spawn_DYLD_FALLBACK_LIBRARY_PATH\" \$1";
        export BUILDOPTS="$BUILDOPTS spawn=\$(JULIA_MACOS_SPAWN)";
        make $BUILDOPTS -C contrib -f repackage_system_suitesparse4.make;
        export JULIA_CPU_CORES=2;
        export JULIA_TEST_MAXRSS_MB=600;
        TESTSTORUN="all --skip linalg/triangular subarray"; fi # TODO: re enable these if possible without timing out
    - echo "override JULIA_CPU_TARGET=generic;native" >> Make.user
    - git clone -q git://git.kitenet.net/moreutils
script:
    - echo BUILDOPTS=$BUILDOPTS
    - export BUILDOPTS
    # compile / install dependencies
    - contrib/download_cmake.sh
    - make -C moreutils mispipe
    - make $BUILDOPTS -C base version_git.jl.phony
    # capture the log, but only print it if `make deps` fails
    # try to show the end of the log first, because this log might be very long (> 4MB)
    # and thus be truncated by travis
    - moreutils/mispipe "make \$BUILDOPTS NO_GIT=1 -C deps 2> deps-err.log" "$BAR" > deps.log ||
        { echo "-- deps build log stderr tail 100 --------------------------------------";
          tail -n 100 deps-err.log;
          echo "-- deps build log stdout tail 100 --------------------------------------";
          tail -n 100 deps.log;
          echo "-- deps build log stderr all -------------------------------------------";
          cat deps-err.log;
          echo "-- deps build log stdout all -------------------------------------------";
          cat deps.log;
          echo "-- end of deps build log -----------------------------------------------";
          false; }
    # compile / install Julia
    - make $BUILDOPTS NO_GIT=1 prefix=/tmp/julia install | moreutils/ts -s "%.s"
    - if [ `uname` = "Darwin" ]; then
        for name in suitesparseconfig spqr umfpack colamd cholmod amd suitesparse_wrapper; do
            install -pm755 usr/lib/lib${name}*.dylib* /tmp/julia/lib/julia/;
        done;
      fi
    - make $BUILDOPTS NO_GIT=1 build-stats
    - du -sk /tmp/julia/*
    - ls -l /tmp/julia/lib
    - ls -l /tmp/julia/lib/julia
    - cd .. && mv julia julia2
    # run tests
    - /tmp/julia/bin/julia --sysimage-native-code=no -e 'true' &&
        /tmp/julia/bin/julia-debug --sysimage-native-code=no -e 'true'
    - /tmp/julia/bin/julia -e 'versioninfo()'
    - pushd /tmp/julia/share/julia/test
    - /tmp/julia/bin/julia --check-bounds=yes runtests.jl $TESTSTORUN &&
      /tmp/julia/bin/julia --check-bounds=yes runtests.jl libgit2-online download pkg
    - popd
    # test that the embedding code works on our installation
    - mkdir /tmp/embedding-test &&
        make check -C /tmp/julia/share/doc/julia/examples/embedding \
             JULIA="/tmp/julia/bin/julia" \
             BIN=/tmp/embedding-test \
             "$(cd julia2 && make print-CC)"
    # restore initial state and prepare for travis caching
    - mv julia2 julia &&
        rm -f julia/deps/scratch/libgit2-*/CMakeFiles/CMakeOutput.log
# uncomment the following if failures are suspected to be due to the out-of-memory killer
#    - dmesg
after_success:
    - cd julia && make -C doc deploy
back to top