bfc 1.7.0

An industrial-grade brainfuck compiler
sudo: required
dist: trusty

language: rust
rust:
  - stable
  - beta
  - nightly

# Install travis-cargo.
before_script:
  - |
      pip install 'travis-cargo<0.2' --user &&
      export PATH=$HOME/.local/bin:$PATH

install:
 # Install LLVM 3.8.
 - wget http://llvm.org/pre-releases/3.8.0/rc2/clang+llvm-3.8.0-rc2-x86_64-linux-gnu-ubuntu-14.04.tar.xz
 - tar xf clang+llvm-3.8.0-rc2-x86_64-linux-gnu-ubuntu-14.04.tar.xz
 - export PATH="$PWD/clang+llvm-3.8.0-rc2-x86_64-linux-gnu-ubuntu-14.04/bin:$PATH"
 - cc --version

 # llvm-config gives compiler arguments for the compiler it was
 # compiled with. On ubuntu cc is gcc, so override that to avoid:
 # 'unrecognized command line option ‘-Wcovered-switch-default’'
 - which cc
 - sudo rm `which cc`
 - sudo ln -s $PWD/clang+llvm-3.8.0-rc2-x86_64-linux-gnu-ubuntu-14.04/bin/clang /usr/bin/cc
 - cc --version
 - llvm-config --version

 # travis-coveralls dependencies
 - sudo apt-get install -y --force-yes libcurl4-openssl-dev libdw-dev libdw1 libelf-dev

# Build and test.
script:
  - |
      travis-cargo build &&
      travis-cargo test &&
      travis-cargo bench &&
      travis-cargo doc
  - cargo build --release
  - ./integration_tests.sh

after_success:
  - travis-cargo coveralls

notifications:
  email: false

matrix:
  allow_failures:
    # These have segfault (signal 11) in the past. I could't reproduce locally, but
    # only passing on stable is sufficient.
    - rust: beta
    - rust: nightly

env:
  global:
    # Required for travis-cargo to work on nightly.
    - TRAVIS_CARGO_NIGHTLY_FEATURE=nightly