DXR is a code search and navigation tool aimed at making sense of large projects. It supports full-text and regex searches as well as structural queries.

Git (757b7ac2ab)

VCS Links

Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220
environment:
  SCCACHE_BUCKET: rust-lang-ci-sccache
  AWS_ACCESS_KEY_ID: AKIAIMX7VLAS3PZAVLUQ
  AWS_SECRET_ACCESS_KEY:
    secure: 1UkmbiDd15tWtYbMm5O2Uqm0b0Ur8v1MoSlydxl4ojcroPeerRMlUges0l57py8c
  SCCACHE_DIGEST: f808afabb4a4eb1d7112bcb3fa6be03b61e93412890c88e177c667eb37f46353d7ec294e559b16f9f4b5e894f2185fe7670a0df15fd064889ecbd80f0c34166c

  # By default schannel checks revocation of certificates unlike some other SSL
  # backends, but we've historically had problems on CI where a revocation
  # server goes down presumably. See #43333 for more info
  CARGO_HTTP_CHECK_REVOKE: false

  matrix:
  # 32/64 bit MSVC tests
  - MSYS_BITS: 64
    RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-msvc --enable-profiler
    SCRIPT: python x.py test
  - MSYS_BITS: 32
    RUST_CONFIGURE_ARGS: --build=i686-pc-windows-msvc --target=i686-pc-windows-msvc
    SCRIPT: python x.py test --host i686-pc-windows-msvc --target i686-pc-windows-msvc

  # MSVC aux tests
  - MSYS_BITS: 64
    RUST_CHECK_TARGET: check-aux
    RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-msvc

  # 32/64-bit MinGW builds.
  #
  # We are using MinGW with posix threads since LLVM does not compile with
  # the win32 threads version due to missing support for C++'s std::thread.
  #
  # Instead of relying on the MinGW version installed on appveryor we download
  # and install one ourselves so we won't be surprised by changes to appveyor's
  # build image.
  #
  # Finally, note that the downloads below are all in the `rust-lang-ci` S3
  # bucket, but they cleraly didn't originate there! The downloads originally
  # came from the mingw-w64 SourceForge download site. Unfortunately
  # SourceForge is notoriously flaky, so we mirror it on our own infrastructure.
  - MSYS_BITS: 32
    RUST_CONFIGURE_ARGS: --build=i686-pc-windows-gnu
    SCRIPT: python x.py test
    MINGW_URL: https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror
    MINGW_ARCHIVE: i686-6.3.0-release-posix-dwarf-rt_v5-rev2.7z
    MINGW_DIR: mingw32
  - MSYS_BITS: 64
    SCRIPT: python x.py test
    RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-gnu
    MINGW_URL: https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror
    MINGW_ARCHIVE: x86_64-6.3.0-release-posix-seh-rt_v5-rev2.7z
    MINGW_DIR: mingw64

  # 32/64 bit MSVC and GNU deployment
  - RUST_CONFIGURE_ARGS: >
      --build=x86_64-pc-windows-msvc
      --enable-extended
      --enable-profiler
    SCRIPT: python x.py dist
    DEPLOY: 1
  - RUST_CONFIGURE_ARGS: >
      --build=i686-pc-windows-msvc
      --target=i586-pc-windows-msvc
      --enable-extended
      --enable-profiler
    SCRIPT: python x.py dist
    DEPLOY: 1
  - MSYS_BITS: 32
    RUST_CONFIGURE_ARGS: --build=i686-pc-windows-gnu --enable-extended
    SCRIPT: python x.py dist
    MINGW_URL: https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror
    MINGW_ARCHIVE: i686-6.3.0-release-posix-dwarf-rt_v5-rev2.7z
    MINGW_DIR: mingw32
    DEPLOY: 1
  - MSYS_BITS: 64
    SCRIPT: python x.py dist
    RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-gnu --enable-extended
    MINGW_URL: https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror
    MINGW_ARCHIVE: x86_64-6.3.0-release-posix-seh-rt_v5-rev2.7z
    MINGW_DIR: mingw64
    DEPLOY: 1

  # "alternate" deployment, see .travis.yml for more info
  - MSYS_BITS: 64
    RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-msvc --enable-extended --enable-profiler
    SCRIPT: python x.py dist
    DEPLOY_ALT: 1

matrix:
  fast_finish: true

clone_depth: 1
build: false

install:
  # If we need to download a custom MinGW, do so here and set the path
  # appropriately.
  #
  # Note that this *also* means that we're not using what is typically
  # /mingw32/bin/python2.7.exe, which is a "correct" python interpreter where
  # /usr/bin/python2.7.exe is not. To ensure we use the right interpreter we
  # move `C:\Python27` ahead in PATH and then also make sure the `python2.7.exe`
  # file exists in there (which it doesn't by default).
  - if defined MINGW_URL appveyor-retry appveyor DownloadFile %MINGW_URL%/%MINGW_ARCHIVE%
  - if defined MINGW_URL 7z x -y %MINGW_ARCHIVE% > nul
  - if defined MINGW_URL set PATH=%CD%\%MINGW_DIR%\bin;C:\msys64\usr\bin;%PATH%

  # Here we do a pretty heinous thing which is to mangle the MinGW installation
  # we just had above. Currently, as of this writing, we're using MinGW-w64
  # builds of gcc, and that's currently at 6.3.0. We use 6.3.0 as it appears to
  # be the first version which contains a fix for #40546, builds randomly
  # failing during LLVM due to ar.exe/ranlib.exe failures.
  #
  # Unfortunately, though, 6.3.0 *also* is the first version of MinGW-w64 builds
  # to contain a regression in gdb (#40184). As a result if we were to use the
  # gdb provided (7.11.1) then we would fail all debuginfo tests.
  #
  # In order to fix spurious failures (pretty high priority) we use 6.3.0. To
  # avoid disabling gdb tests we download an *old* version of gdb, specifically
  # that found inside the 6.2.0 distribution. We then overwrite the 6.3.0 gdb
  # with the 6.2.0 gdb to get tests passing.
  #
  # Note that we don't literally overwrite the gdb.exe binary because it appears
  # to just use gdborig.exe, so that's the binary we deal with instead.
  - if defined MINGW_URL appveyor-retry appveyor DownloadFile %MINGW_URL%/2017-04-20-%MSYS_BITS%bit-gdborig.exe
  - if defined MINGW_URL mv 2017-04-20-%MSYS_BITS%bit-gdborig.exe %MINGW_DIR%\bin\gdborig.exe

  # Otherwise pull in the MinGW installed on appveyor
  - if NOT defined MINGW_URL set PATH=C:\msys64\mingw%MSYS_BITS%\bin;C:\msys64\usr\bin;%PATH%

  # Prefer the "native" Python as LLVM has trouble building with MSYS sometimes
  - copy C:\Python27\python.exe C:\Python27\python2.7.exe
  - set PATH=C:\Python27;%PATH%

  # Download and install sccache
  - appveyor-retry appveyor DownloadFile https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror/2017-05-12-sccache-x86_64-pc-windows-msvc
  - mv 2017-05-12-sccache-x86_64-pc-windows-msvc sccache.exe
  - set PATH=%PATH%;%CD%

  # Download and install ninja
  #
  # Note that this is originally from the github releases patch of Ninja
  - appveyor-retry appveyor DownloadFile https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror/2017-03-15-ninja-win.zip
  - 7z x 2017-03-15-ninja-win.zip
  - set RUST_CONFIGURE_ARGS=%RUST_CONFIGURE_ARGS% --enable-ninja
  # - set PATH=%PATH%;%CD% -- this already happens above for sccache

  # Install InnoSetup to get `iscc` used to produce installers
  - appveyor-retry choco install -y InnoSetup
  - set PATH="C:\Program Files (x86)\Inno Setup 5";%PATH%

  # Help debug some handle issues on AppVeyor
  - appveyor-retry appveyor DownloadFile https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror/2017-05-15-Handle.zip
  - mkdir handle
  - 7z x -ohandle 2017-05-15-Handle.zip
  - set PATH=%PATH%;%CD%\handle
  - handle.exe -accepteula -help

  # Attempt to debug sccache failures
  - set SCCACHE_ERROR_LOG=%CD%/sccache.log

test_script:
  - if not exist C:\cache\rustsrc\NUL mkdir C:\cache\rustsrc
  - sh src/ci/init_repo.sh . /c/cache/rustsrc
  - set SRC=.
  - set NO_CCACHE=1
  - sh src/ci/run.sh

on_failure:
  - cat %CD%\sccache.log || exit 0

branches:
  only:
    - auto

before_deploy:
  - ps: |
        New-Item -Path deploy -ItemType directory
        Remove-Item -Recurse -Force build\dist\doc
        Get-ChildItem -Path build\dist | Move-Item -Destination deploy
        Get-ChildItem -Path deploy | Foreach-Object {
          Push-AppveyorArtifact $_.FullName -FileName ${env:APPVEYOR_REPO_COMMIT}/$_
        }

deploy:
  - provider: S3
    skip_cleanup: true
    access_key_id: AKIAIPQVNYF2T3DTYIWQ
    secret_access_key:
      secure: +11jsUNFTQ9dq5Ad1i2+PeUJaXluFJ0zIJAXESE1dFT3Kdjku4/eDdgyjgsB6GnV
    bucket: rust-lang-ci
    set_public: true
    region: us-east-1
    artifact: /.*/
    folder: rustc-builds
    on:
      branch: auto
      DEPLOY: 1
    max_error_retry: 5

  # This provider is the same as the one above except that it has a slightly
  # different upload directory and a slightly different trigger
  - provider: S3
    skip_cleanup: true
    access_key_id: AKIAIPQVNYF2T3DTYIWQ
    secret_access_key:
      secure: +11jsUNFTQ9dq5Ad1i2+PeUJaXluFJ0zIJAXESE1dFT3Kdjku4/eDdgyjgsB6GnV
    bucket: rust-lang-ci
    set_public: true
    region: us-east-1
    artifact: /.*/
    folder: rustc-builds-alt
    on:
      branch: auto
      DEPLOY_ALT: 1
    max_error_retry: 5

# init:
#   - ps: iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))
# on_finish:
#   - ps: $blockRdp = $true; iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))