Swift 6.4 traz subprocess 1.0, código wasm até 40 vezes mais rápido e interoperabilidade com c++20 e Java

5 min
Swift 6.4 traz subprocess 1.0, código wasm até 40 vezes mais rápido e interoperabilidade com c++20 e Java

Swift 6.4 chega com Subprocess 1.0 estável, código Wasm até 40 vezes mais rápido via JavaScriptKit, interoperabilidade ampliada com C++20 e Java, e novos tipos não copiáveis como UniqueArray e UniqueBox para reduzir alocações.

O Swift 6.4 foi lançado com Subprocess 1.0 estável, código WebAssembly até 40 vezes mais rápido, interoperabilidade ampliada com C++20 e Java e novos tipos não copiáveis que reduzem cópias e alocações em operações com arrays. A atualização também torna o Swift Build a toolchain padrão em todas as plataformas suportadas.

  • O pacote Subprocess chega à versão 1.0 com API multiplataforma para lançar e interagir com processos externos
  • A ponte Wasm via JavaScriptKit ficou até 40 vezes mais rápida que a ponte dinâmica anterior
  • Novos tipos UniqueArray, UniqueBox, Ref/MutableRef e o protocolo Iterable reduzem cópias e alocações
  • O Proposta SE-: defer com async (github.com) agora aceita await diretamente e o withTaskCancellationShield protege tarefas do cancelamento
  • Swift 6.4 faz ponte transparente entre std::span do C++20 e o Span do Swift e amplia a interoperabilidade com Java

O que muda no Swift 6.4

O Swift 6.4 é a nova versão da linguagem mantida pelo projeto Swift, com melhorias de sintaxe, desempenho e ferramentas. Segundo o anúncio oficial, a release amplia o suporte a valores não copiáveis, acelera em até 40 vezes o código gerado para WebAssembly e melhora a interoperabilidade com C++20 e Java.

Na sintaxe, agora é possível escrever AType? em vez de (some AType)? ou (any AType)?. A versão também traz o atributo @diagnose para controlar diagnósticos e avisos do compilador, e permite desambiguar símbolos com nomes idênticos importados de módulos diferentes usando a notação AModuleName::.

Em código concorrente, a instrução defer passou a suportar o await diretamente, eliminando a necessidade de encapsular chamadas assíncronas em uma Task separada. O novo withTaskCancellationShield protege temporariamente uma tarefa do cancelamento, permitindo que código crítico de limpeza termine mesmo após o cancelamento.

O especialista em Swift Concurrency Antoine van der Lee resume o valor prático da atualização:

# publicidade

Menos cópias e alocações com novos tipos

Swift 6.4 reduz cópias desnecessárias em operações comuns com arrays por meio de novos tipos e protocolos de empréstimo. Mas o que cada um faz na prática?

O UniqueBox

O protocolo Iterable permite iterar sobre elementos com semântica de empréstimo, sem cópias. Outras mudanças incluem os tipos Ref e MutableRef, contêineres armazenáveis para emprestar ou mutar valores individuais; os acessadores borrow e mutate, que leem ou modificam um Span ou InlineArray via propriedade; e suporte para tipos não copiáveis conformarem a Equatable, Comparable e Hashable.

Ferramentas, subprocess 1.0 e interoperabilidade

No front de IDE, o Swift 6.4 traz suporte de depuração mais robusto ao trabalhar com módulos e unifica a toolchain de build entre todas as plataformas suportadas, com o Swift Build como padrão. O pacote Subprocess atingiu a versão 1.0 estável, com API multiplataforma para lançar e interagir com subprocessos externos.

A depuração é um ponto sensível para a comunidade. O usuário boxed, em discussão no Hacker News, expressou um sentimento compartilhado por muitos desenvolvedores: a esperança de que as melhorias do depurador sejam perceptíveis, dada a frequência com que variáveis ficam invisíveis durante a inspeção.

A interoperabilidade também avançou. Os novos atributos @c e @implementation permitem implementar em Swift o conteúdo de um header C, sem declaração separada. O Swift 6.4 faz ponte transparente entre std::span do C++20 e o Span do Swift, estende a interoperabilidade com Java e acelera a ponte Wasm via JavaScriptKit em até 40 vezes em relação à ponte dinâmica.

Por que isso importa para o desenvolvedor brasileiro? Times que mantêm apps iOS e backends em linguagens mistas tendem a colher ganhos imediatos: menos código cola entre C, C++ e Java, builds unificados e chamadas de processo externas sem gambiarras de plataforma.

Principais novidades do Swift 6.4, segundo o anúncio oficial
RecursoO que mudou no Swift 6.4
Subprocess 1.0API multiplataforma estável para lançar e interagir com processos externos
WebAssemblyPonte via JavaScriptKit até 40 vezes mais rápida que a dinâmica
Interoperabilidadestd::span do C++20 com Span do Swift; ampliação do suporte a Java; atributos @c e @implementation
Concorrênciaawait direto no defer e withTaskCancellationShield
Tipos não copiáveisUniqueArray, UniqueBox, Ref/MutableRef, Iterable e acessadores borrow/mutate
ToolchainSwift Build como build padrão em todas as plataformas suportadas

Arraste para o lado para ver toda a tabela.

Na avaliação do Mercado de TI, o Swift 6.4 é menos uma mudança de paradigma e mais uma remoção sistemática de atritos, exatamente o que a adoção da concorrência estrita do Swift 6 exigia. O próximo passo para quem trabalha com a linguagem é testar a migração dos módulos com o Swift Build e medir o impacto do depurador aprimorado em projetos reais.

D

· Editor-chefe

Especialista em tecnologia, criador de conteúdo e fundador do portal Mercado de TI e Casa do Dev. Analiso tendências de mercado, Inteligência Artificial e carreira, entregando informações precisas, tr...

LinkedIn Site

COMPARTILHAR