[swift-dev] Beginner's questions about building Swift from source etc.

Jens Persson jens at bitcycle.com
Thu Dec 10 09:41:54 CST 2015

I tried the above to compile with the buildbot_osx_package preset. It kind
of worked, but it failed while performing the tests.
(TEST 'Swift :: Driver/Dependencies/bindings-build-record.swift' FAILED)
So, I got a working swiftc etc but no package or toolchain or anything (at
least as far as I could see).

However, trying out the resulting swiftc shows that it is slow, ie the
buildbot_osx_package preset did not imply --no-assertions

Since I am interesting in observing the latest improvements in the
optimizer, I wonder if any of the existing presets will build the std lib
without assertions, and produce an installable package (which will give me

As previously stated, my goal is simply(?) to be able to use / try out
these in parallell:
1. Xcode.app
2. Xcode-beta.app
3. built-from-sources


On Thu, Dec 10, 2015 at 3:31 AM, Dmitri Gribenko <gribozavr at gmail.com>

> On Wed, Dec 9, 2015 at 5:54 PM, Jordan Rose via swift-dev <
> swift-dev at swift.org> wrote:
>> Looks like Mish Awadah has an answer on a later thread:
>>    ./swift/utils/build-script --preset="buildbot_osx_package"
>> install_destdir="${SWIFT_INSTALL_DIR}"
>> installable_package="${SWIFT_INSTALLABLE_PACKAGE}"
>> install_toolchain_dir="${SWIFT_TOOLCHAIN_DIR}"
>> install_symroot="${SWIFT_INSTALL_SYMROOT}"
>> symbols_package="${SYMBOLS_PACKAGE}"
>> darwin_toolchain_bundle_identifier="${BUNDLE_IDENTIFIER}"
>> darwin_toolchain_display_name="${DISPLAY_NAME}"
>> darwin_toolchain_xctoolchain_name="${TOOLCHAIN_NAME}"
>> darwin_toolchain_version="${TOOLCHAIN_VERSION}"
>> }
>> Thanks, Jordan!
> Just wanted to emphasize that the package presets is the only way you
> should be building Swift for any production use (either on Linux or OS X).
> If you are trying to port Swift to some platform where existing presets
> don't work, feel free to ask us on swift.org mailing lists.  If you want
> to make a preset for production use from scratch, I strongly recommend
> reading existing packaging presets and understanding what each flag does
> (not just the description).
> What happened in your build is that the standard library was built with
> assertions.  This is the right thing for development, but wrong for
> production.  Since production build process will be complex no matter what,
> we decided to optimize build-script interface for local development.
> Dmitri
> --
> main(i,j){for(i=2;;i++){for(j=2;j<i;j++){if(!(i%j)){j=0;break;}}if
> (j){printf("%d\n",i);}}} /*Dmitri Gribenko <gribozavr at gmail.com>*/

bitCycle AB | Smedjegatan 12 | 742 32 Östhammar | Sweden
Phone: +46-73-753 24 62
E-mail: jens at bitcycle.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-dev/attachments/20151210/6e221979/attachment.html>

More information about the swift-dev mailing list