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.
We have been using `build-windows-toolchain.bat` for a while now.
However, that too is now a wrapper around `build.ps1`. This new script
is meant to be used as a *developer* tool, for daily usage. It has
enough control to enable us to use that with some setup from Jenkins as
a means for building the code as well. Remove some of the older scripts.
When using build.ps1 as a developer, we may be working in a shell that
does not have the ability to run the PowerShell script due to signing.
Add a little helper that launches the script properly to not require the
user to disable code signature on scripts.
Add a `SWIFT_STDLIB_OVERRIDABLE_RETAIN_RELEASE` CMake option. When set to true, swift_retain/release and the other functions in InstrumentsSupport.h can be overridden by setting the appropriate global function pointer, as is already the case. When set to false, those function pointers are removed and the functions always go into the default implementation.
Set `SWIFT_STDLIB_OVERRIDABLE_RETAIN_RELEASE` to false when building the minimal stdlib, and set it to true otherwise by default.
rdar://115987924
Extract the installer engine for simplifying the code signing process.
We need to currently shuffle files around more than necessary to just
extract the installer engine, this will allow us to skip that step.
swift-evolve hasn’t been used in the recent past. @beccadax and I agreed that it doesn’t provide any value anymore to keep swift-evolve around. In Becca’s words:
> The resilience implementation is pretty stable at this point, and it never seems to have had many of the bugs that swift-evolve would have been able to shake out.
This patch adds a new build products to build and test the Swift stdlib
for WebAssembly.
This adds WebAssembly specific stdlib product instead of adding the new
target in `stdlib-deployment-targets` because unlike darwin platforms
Wasm target has quite different stdlib configuration from host target
and there is no way to specify different stdlib configuration for each
target in `stdlib-deployment-targets` for now.
This patch adds 1 new dependency `wasi-libc` and 3 new build products:
1. `WASILibc` - wasi-libc is a libc implementation for WebAssembly
System Interface (WASI). This product is required to build the
compiler runtimes and Swift stdlib.
2. `WasmLLVMRuntimeLibs` - This product builds `./runtimes` directory
in llvm-project, which contains compiler-rt, libcxx and libcxxabi.
This product is required to build Swift stdlib.
3. `WasmStdlib` - This product builds standalone Swift stdlib for
WebAssembly. (Similar to `MinimalStdlib` product, but configured for
WebAssembly target)
We need this request for semantic highlighting in LSP. Previously, we were getting the semantic tokens using a 0,0 edit after a document update notification but that will no longer be possible if we open the documents in syntactic only mode.
We have some configurations in which we run a preset that only builds
the compiler, and then a few ones to tests such binary, e.g.
```
buildbot_incremental,tools=RA,stdlib=RD,build
buildbot_incremental,tools=RA,stdlib=RD,test=macOS,type=device
buildbot_incremental,tools=RA,stdlib=RD,test=iOS,type=simulator
buildbot_incremental,tools=RA,stdlib=RD,test=watchOS,type=simulator
```
Contrary to the other presets, in the first preset we did not specify
"--lit-args" since it is not necessary -- however that plays a part in
the configuration of compiler-rt, causing an unwanted rebuild when that
parameter is specified in the following preset.
Addresses rdar://116922016
With the work to enable ARM64, we need to package the redistributable
into the toolchain to allow distribution via winget. This is also
important to make the runtime work without additional packaging.