5 pontos por GN⁺ 2025-02-02 | 4 comentários | Compartilhar no WhatsApp
  • 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-build na 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

 
ganadist 2025-02-03

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.

 
nemorize 2025-02-02

Então... resumindo, isso quer dizer que o Xcode continua sendo um lixo como sempre, certo?
buááá

 
roxie 2025-02-02

zzz

 
GN⁺ 2025-02-02
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

    • Os concorrentes são mais open source, têm mais contribuidores e escopo mais estreito
    • Se ferramentas como o Xcode não forem open source, a diferença em relação a outras linguagens vai aumentar
  • Swift é uma linguagem incrível

    • Quando ocorre o erro "index out of range", a mensagem de erro não informa onde ele aconteceu
    • Golang informa o arquivo e o número da linha onde o erro ocorreu
  • A situação do Swift lembra os primeiros tempos do C#

    • O C# também foi promovido como open source e multiplataforma, mas não correspondeu às expectativas
  • 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

    • O Xcode tem um ar de supervalorizado com nota 3.1
  • A nova versão do SwiftPM oferece a chance de fornecer um motor unificado de execução de builds em todas as plataformas

    • Isso pode ser a chave para construir o ecossistema multiplataforma do Swift
  • 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

    • O language server já é open source
  • Fico feliz que o Swift esteja se tornando independente da Apple

    • Em um projeto multiplataforma, tive a experiência de URLSession.shared.data não compilar no Linux e acabei migrando para outra linguagem
  • Fico curioso se o Swift leva sistemas embarcados a sério