Integrate support for sccache into the build system. This allows us to
get a reasonable performance increase for clean builds for the C/C++
side of the build. This is currently limited to the MSVC compiler as
the extended compiler flags cause issues for sccache.
Update the variables for the pinned-toolchain usage to correctly specify the compilers. Additionally use the new helpers to work with the new toolchain layout as well.
Adjust the flags for the updated CURL version. It seems that we accidentally disabled HTTPS support in the CURL builds with the last update. This is required for `URLSession` and `URLRequest` to support HTTPS.
The `release/5.10` specification of update-checkout on the `main` branch was out-of-date and didn’t clone e.g. `zlib`. This caused CI testing for the `release/5.10` branch of swift-syntax to fail.
Function body macros allow one to introduce a function body for a
particular function, either providing a body for a function that
doesn't have one, or wholesale replacing the body of a function that
was written with a new one.
./utils/cmpcodesize/cmpcodesize/main.py:20:71: E231 missing whitespace after ','
./utils/round-trip-syntax-test:20:20: E721 do not compare types, for exact checks use `is` / `is not`, for instance checks use `isinstance()`
./utils/round-trip-syntax-test:21:16: E721 do not compare types, for exact checks use `is` / `is not`, for instance checks use `isinstance()`
I can't find any uses of round-trip-syntax-test, so I don't know if
this fix is correct.
Add `--reset-to-remote` to the `update-checkout` invocation to ensure
that the state of the tree is reset. This should help avoid some of the
failures that we occassionally see with the builders being left in a
modified state.
If the `SWIFTCI_USE_LOCAL_DEPS` environment variable is set, we're building in the Swift.org CI system alongside other projects in the Swift toolchain and we can depend on local versions of our dependencies instead of fetching them remotely.
This removes >70 tests from the list of tests that are being rerun. The REPL
doesn't really benefit from DWARFImporter, since there is no deb ug info in the
victim process, so it makes no sense to test this configuration.
As the helper script could (and probably always would) be launched from
a directory outside of the source tree, it is convenient to use an absolute path
in Get-Help invocation, just like we do in the `build.ps1` invocation below.
Also, quoting might be necessary for paths with spaces.
Ensure that the downloaded image matches the expected image. This
ensures that we catch download errors as well as provides some level of
security by requiring that the download checksum matches.
Use the internal copy of swift-syntax that the compiler uses for macros
to build the LSP. By sharing the swift-syntax build, we shave ~6MiB off
the LSP binary. Additionally, we avoid building swift-syntax twice as a
single copy is now used.
Adjust the installer to allow it to be built for foreign architectures.
Additionally, adjust the artifact staging to include additional content
that was missed previously in order to enable code signing.
Update the build.ps1 to match the current state which introduces
`-BuildTo` and updates most of the dependencies. Take the opportunity to
migrate to update-checkout for the majority of the dependencies. The
SQLite amalgamation and installer image are still fetched later, and ICU
is still cloned in the CI wrapper.