-
Notifications
You must be signed in to change notification settings - Fork 13
Description
Title
Swift on Windows
Author
Saleem Abdulrasool [email protected]
Distribution
A LLVM based toolchain meant to target Windows (X86, X64, ARM, ARM64), Android (X86, X64, ARM, ARM64) for C, C++, [Objective-C, Objective-C++,], Swift.
Abstract (optional)
TODO
What's unique about the environment you package LLVM for? (optional)
The distribution tries to be nearly hermetic (LLVM is not yet sufficient for this for Windows), with coverage for C/C++/Swift in a single toolchain that is meant to target multiple platforms from Windows. The distribution includes all the tools for cross-compiling C/C++/Swift on Windows to Windows and non-Windows targets, as well as components to serve an IDE experience (e.g. language server, indexing, package manager, etc).
What makes your distribution of LLVM unique? (optional)
The distribution contains significant divergence from upstream including support for an entire language ecosystem. Additionally, the distribution contains support libraries for the ecosystem. The toolchain actually must integrate with MSVC distributed components and bridge content from Microsoft vended toolchains into the custom toolchain.
What might others learn from your experience? (optional)
What could be improved in upstream LLVM to make working with it easier as a downstream packager? (optional)
Reducing build time, complexity, binary size. A current installed toolchain is ~2.5 GiB without debug info. With debug info, a distribution is ~10 GiB. This excludes the language runtime.
Reminder that this is meant to be a 15 minute lightning talk; enough to pique
interests but follow up should be done after. Slides can always include links
to more info; we will ask that you send a PR to this repo with your slides when
they are ready.