-
Notifications
You must be signed in to change notification settings - Fork 10.5k
[docs] GettingStarted.md: Recommend building the --release
variant of --xcode
#62156
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
…of `--xcode` The `--release` variant takes up 4 times less space than the default `--debug` variant (0.45GB vs 1.8GB).
@swift-ci please smoke test |
@@ -350,7 +350,7 @@ while retaining the option of building with Ninja on the command line. | |||
|
|||
Assuming that you have already [built the toolchain via Ninja](#the-actual-build), | |||
several more steps are necessary to set up this environment: | |||
* Generate Xcode projects with `utils/build-script --xcode --swift-darwin-supported-archs "$(uname -m)"`. | |||
* Generate Xcode projects with `utils/build-script --release --swift-darwin-supported-archs "$(uname -m)" --xcode`. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Wouldn’t release be harder to debug though due to inlining etc.?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
--xcode
doesn’t build anything anymore, aside from a subset of LLVM that for some reason is required to configure the Xcode projects. The resulting build artifacts are not used for anything else in this workflow, so there’s nothing to run and potentially debug. That is all done via the Ninja build through manually configured targets and schemes. Or am I perhaps misinterpreting your point?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In that case - great!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does that somehow affect indexing of sources? May it has nothing to do with it, but I did had that impression when I tried. Or maybe was just an impression... Did you experienced something like this?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Frankly, I have not tried the release variant yet, this just came to my mind spontaneously. Mine’s a RelWithDebInfoAssert (I used to just borrow the build-script
arguments that I pass for Ninja), and the only indexing issue I’ve faced so far is the one described in the tutorial — when you round-trip Xcode through a distant branch with non-trivial differences in the project structure. I am convinced this is an Xcode caching issue though, since you can fix it by deleting the cache. Indexing is based on type-checked ASTs, so the state of the optimization switch shouldn’t matter.
@swift-ci please test macOS platform |
@swift-ci please smoke test macOS |
@swift-ci please test macOS platform |
The
--release
variant takes up 4 times less space than the default--debug
variant (0.45GB vs. 1.8GB) and is also faster.