Bem-vindo a “O que há de novo no Swift”, um resumo curado de lançamentos, vídeos e discussões do projeto Swift e da comunidade.
O Swift é construído por contribuidores trabalhando em muito mais do que apenas o idioma e o compilador. Alexander Sandberg reflete sobre esse tipo de contribuição e porque há um lugar para você também:
Olá, eu sou Alex. Há quatro anos, juntei-me ao Grupo de Trabalho do Site Swift para ajudar a cuidar deste site que você está lendo agora. Eu ainda era relativamente novo na comunidade Swift na época, mas queria me envolver de alguma forma e fazer a diferença.
Contribuir com o Swift parece sugerir trabalhar no compilador ou escrever e revisar propostas de evolução do idioma, mas há muito mais acontecendo ao redor do próprio idioma também. O que eu realmente gastei meu tempo fazendo foi ajudar a melhorar o conteúdo e a navegação do site, participar da grande reforma, escrever posts de blog sobre lançamentos, revisar solicitações de pull e responder a problemas e postagens de fóruns. Tudo isso é trabalho que qualquer pessoa pode aprender a fazer, e tudo acaba diante de todos que vêm ao Swift.org - o que fez até as menores correções parecerem valer a pena.
O Grupo de Trabalho do Site aconteceu de ser minha maneira de entrar, mas há grupos como esse em toda parte do projeto - servidor, teste, Windows, Android e mais - cada um com uma meia dúzia de pessoas cuidando da sua parte do ecossistema. O que você for bom ou curioso sobre, provavelmente existe um canto do Swift que pode precisar da sua ajuda. A página da comunidade é um bom lugar para começar a procurar, e as pessoas com quem você vai se encontrar são algumas das mais amigáveis que encontrei no software livre.
Há quatro anos, deixei para me concentrar em outras coisas na vida. Muito obrigado a todos com os quais trabalhei nestes anos! Estou deixando o grupo de trabalho, mas não a comunidade, e ainda estarei por perto ajudando a impulsionar o Swift adiante onde eu puder.
Para mais informações sobre grupos de trabalho, a página Como trabalhamos lista todos os grupos de trabalho. E nos fóruns Swift, você verá frequentemente grupos de trabalho compartilhando reuniões abertas se estiver procurando para se envolver!
Agora, vamos às outras notícias sobre o Swift:
- Contribuições do Google Summer of Code estão em andamento: Ege Kaya está construindo um Task Registry para o runtime da Concorrência do Swift (PR #90547), Filip Sakellariou está contribuindo com swift-syntax (PR #3378, PR #3390), e Padmashree S S está trabalhando em sourcekit-lsp (PR #2698, PR #2729).
- A Task Stealers, uma nova primitiva no runtime da Concorrência do Swift, foi recentemente incorporada após gerar a discussão mais animada de qualquer PR em julho. Elas mudam como o trabalho é distribuído na pool de threads cooperativas, uma mudança interna importante para observar se você escreve código com foco em concorrência.
- O SwiftPM implementou uma implementação de referência do serviço de registro de pacotes, juntamente com suporte básico à autenticação (PR #10258), um ponto de partida sólido se você estiver explorando a hospedagem própria de um registro.
- Pequenas mas bem-vindas correções foram implementadas em toda a ferramentaria: o VS Code extension agora falha alto quando uma instalação do Swift está quebrada (PR #2080), e ganhou um comando de limpeza da pasta de build (PR #2280), enquanto o fluxo de eventos do Swift Testing ganhou uma API ABI.Context que produz saída legível para humanos para ferramentas e painéis CI.
- Precisa tokenizar texto rapidamente? swift-gigatoken é um tokenizer zero-copy que atinge até 670 MB/s, inspirado no gigatoken de Marcel Roed, com suporte a NEON/CRC32 e compatibilidade em WebAssembly e Swift Embedded.
- any-error-swift aborda o gerenciamento de erros de uma maneira diferente, oferecendo um tipo concreto, semântico de valor e
Hashable, que esconde qualquer erro Swift, sem a necessidade do Foundation, e funciona em todas as plataformas onde o Swift roda.
O projeto Swift adiciona novos recursos através do processo de Swift Evolution. Estes são algumas das propostas recentemente aceitas para uma futura versão do Swift.
Recentemente aceito:
- ST-0025 Filtragem de Execução de Testes Baseada em Tags - O Swift Testing permite anotar testes com tags nomeadas, e separadamente permite incluir ou excluir testes por regex usando as opções
--filtere--skip, mas não há como combinar os dois e filtrar por tag. Esta proposta adiciona um prefixotag:a essas opções, então você pode executar comandos comoswift test --skip tag:uiTestpara selecionarivamente rodar ou pular testes baseados em suas tags ao invés de depender de um esquema de nomenclatura consistente. - SE-0513 API para obter o caminho do executável atual - Atualmente não há uma maneira portátil e confiável de obter o caminho do executável em execução no Swift. Esta proposta adiciona
CommandLine.executablePath, uma nova propriedade na biblioteca padrão que fornece uma maneira consistente de obter esse valor em todas as plataformas suportadas pelo Swift.
- SE-0526
withDeadline- Operações assíncronas em Swift podem rodar indefinidamente, e implementar limites de tempo manualmente usando grupos de tarefas e operações de sleep do clock é verboso e propenso a erros. Esta proposta adicionawithDeadline, uma função que executa uma operação assíncrona com um limite de tempo absoluto composto especificado como uma instância de relógio, cancelando a operação se ela não tiver sido concluída no prazo. Também permite que várias operações aninhadas compartilhem o mesmo deadline, evitando o deslocamento que se acumula quando durações relativas são passadas através de camadas de chamada.

