Apple anuncia que o Swift Build será open source
(swift.org)- Swift vem ganhando popularidade como uma linguagem que oferece suporte a várias plataformas, podendo ser usada em diversos dispositivos embarcados e sistemas operacionais
- A Apple disponibilizou como open source o Swift Build, um mecanismo de build poderoso e escalável
- O Swift Build é usado como mecanismo de build do Xcode e também é utilizado para "apps da App Store e builds dos próprios sistemas operacionais da Apple".
- Também oferece suporte a builds para alvos Linux e Windows
-
Recursos principais do Swift Build
- Um sistema de build tem o papel de transformar a descrição do projeto e o código-fonte em saídas como ferramentas de linha de comando, bibliotecas e aplicações
- O Swift Build é um componente de infraestrutura que planeja e executa builds solicitados por clientes de nível superior, como o Swift Package Manager e o Xcode
- Por meio de uma forte integração com o compilador Swift, coordena os builds de projetos Swift de forma confiável e eficiente
- Suporta vários tipos de produto e oferece opções avançadas de configuração de build
- Inclui otimizações no grafo de build para maximizar o paralelismo ao compilar código Swift e C
-
Roadmap do Swift Build
- Em comparação com o mecanismo de build do Xcode, o mecanismo de build do Swift Package Manager é relativamente simples
- Duas formas diferentes de fazer build de pacotes nas plataformas Apple causaram confusão entre os usuários
- A ideia é resolver esses problemas contribuindo o mecanismo de build do Xcode para os projetos Swift e desenvolvendo-o como open source junto com o compilador Swift
- O SwiftPM passa a ter a oportunidade de oferecer um mecanismo unificado de execução de builds em todas as plataformas
- Essa mudança será transparente para os usuários e manterá compatibilidade total com todos os pacotes existentes
- Isso estabelece a base para oferecer novos recursos e melhorias em todas as plataformas e ferramentas
- Foi enviado um PR para integrar o Swift Build como mecanismo de build alternativo do SwiftPM
- Querem concluir o trabalho de integração do sistema de build em colaboração com a comunidade, para que todas as plataformas e modelos de projeto possam se beneficiar de futuras melhorias nas ferramentas
-
Convite à participação
- Esperam colaborar com a comunidade para continuar evoluindo a forma como o código Swift é compilado.
- No GitHub, é possível encontrar o repositório
swift-buildna organização Swift, com README e documentação explicando como fazer o build e como contribuir. - Contribuições via pull requests e issues são bem-vindas, e também querem receber feedback e ideias de melhoria no fórum do Swift.
- Este é um novo capítulo empolgante para o sistema de build do Swift, e a expectativa é liberar todo o potencial do Swift.
4 comentários
A página 12 de https://llvm.org/devmtg/2016-11/… parece conter o ponto principal.
Modelo tradicional de compilador/sistema de build do UNIX
• O compilador roda como um processo separado
• Mecanismos primitivos para comunicar dependências
• Pipeline fixo de entrada/saída definido pela linha de comando
• Isto é uma API ...
• ... e não a mudamos há décadas
• Nós ❤ quebrar APIs
No lado do Java, parece que existe uma API que informa as dependências entre os códigos, de modo que as ferramentas de build saibam como fazer incremental build,
ex: Gradle
Parece que também devemos seguir na direção de aplicar esse método ao build nativo.
Então... resumindo, isso quer dizer que o Xcode continua sendo um lixo como sempre, certo?
buááá
zzz
Opiniões do Hacker News
A percepção de que Swift é "bom para tudo, mas melhor para plataformas Apple" pode ser prejudicial para a linguagem. Isso não ajuda a atrair mais pessoas para o ecossistema Swift
Swift é uma linguagem incrível
A situação do Swift lembra os primeiros tempos do C#
Seria bom se o Swift fosse construído sobre o LLVM padrão, e não sobre o fork de LLVM da Apple
Swift deveria buscar se separar do Xcode
A nova versão do SwiftPM oferece a chance de fornecer um motor unificado de execução de builds em todas as plataformas
Fico curioso se isso pode abrir caminho para desenvolver em Swift sem Xcode
Não está claro o quão bem o Swift Build se integra às ferramentas e ao language server do Swift
Fico feliz que o Swift esteja se tornando independente da Apple
URLSession.shared.datanão compilar no Linux e acabei migrando para outra linguagemFico curioso se o Swift leva sistemas embarcados a sério