O Dart 2.15 chega com grupos isolados, melhorias no tempo de execução e muito mais

O Google revelou recentemente o lançamento do nova versão da linguagem de programação Dart 2.15, que continua o desenvolvimento de um ramo radicalmente redesenhado do Dart 2 e que difere da versão original da linguagem Dart pelo uso de tipagem estática forte (os tipos podem ser inferidos automaticamente, portanto, não é necessário especificar tipos, mas a tipagem dinâmica não é mais usada e é inicialmente calculada, o tipo é atribuído à variável e, em seguida, uma verificação de tipo estrita é aplicada).

Nesta nova versão foram implementadas várias melhorias e sobretudo a introdução de algumas novas funcionalidades como grupos isolados e também soluções para algumas vulnerabilidades detectadas.

Principais novos recursos do Dart 2.15

Nesta nova versão do Dart 2.15 ferramentas são fornecidas para rápida execução paralela de tarefas com isolamento do controlador.

Além disso em sistemas multi-core, o tempo de execução Dart, por padrão, executa o código do aplicativo em um núcleo da CPU e usa outros núcleos para realizar tarefas do sistema como E / S assíncrona, gravação em arquivos ou realização de chamadas de rede.

Outra novidade que o Dart 2.15 apresenta é um novo conceito, grupos isolados, (grupos isolados) permitindo acesso compartilhado a diferentes estruturas de dados internas em isolados pertencentes ao mesmo grupo, o que pode reduzir significativamente a sobrecarga ao se comunicar com agentes em um grupo. Por exemplo, iniciar um isolamento adicional em um pool existente é 100 vezes mais rápido e requer de 10 a 100 vezes menos memória do que iniciar um isolamento separado, eliminando a necessidade de inicializar as estruturas de dados do programa.

Apesar do fato de que em blocos isolados em um grupo, o acesso compartilhado a objetos mutáveis ​​ainda é proibido, os grupos usam memória dinâmica compartilhada, acelerando significativamente a transferência de objetos de um bloco para outro sem a necessidade de operações de cópia que consomem muitos recursos.

Na nova versão, também é permitido passar o resultado do trabalho do controlador quando Isolate.exit () é chamado para passar dados para o bloco de isolamento principal sem realizar operações de cópia. Além disso, foi realizada a otimização do mecanismo de transmissão de mensagens: as mensagens pequenas e médias são processadas cerca de 8 vezes mais rápido. Os objetos que podem ser passados ​​entre isolados usando a chamada SendPort.send () incluem vários tipos de funções, fechamentos e rastreamentos de pilha.

Nas ferramentas de criação de ponteiros para funções individuais em outros objetos, as restrições sobre a criação de tais ponteiros foram removidas no código do construtor, que pode ser útil ao criar interfaces baseadas em biblioteca Flutuar.

A biblioteca dart: core melhorou o suporte a enum, por exemplo, agora você pode gerar um valor de string de cada valor de enumeração usando o método ".name", obter valores por nome ou combinar pares de valores.

Destaca-se também que uma técnica de compressão de ponteiro foi implementadao que permite usar uma representação mais compacta de ponteiros em ambientes de 64 bits se o espaço de endereço de 32 bits for suficiente para o endereçamento (não mais do que 4 GB de memória são usados). Os testes mostraram que essa otimização reduz o tamanho do heap em aproximadamente 10%. No Flutter SDK, o novo modo já está habilitado para Android por padrão e está planejado para ser habilitado para iOS em uma versão futura.

Além disso, observa-se que o repositório pub.dev agora tem a capacidade de revogar uma versão já publicada de um pacote, por exemplo, no caso de bugs perigosos ou vulnerabilidades.

Do outras mudanças que se destacam:

  • Proteção adicional contra vulnerabilidade (CVE-2021-22567) causada pelo uso de caracteres Unicode que alteram a ordem de exibição no código.
  • Corrigida uma vulnerabilidade (CVE-2021-22568) que poderia representar outro usuário pub.dev ao publicar pacotes em um servidor de terceiros que aceita tokens de acesso oauth2 de pub.dev.
  • O Dart SDK inclui ferramentas para depuração e análise de desempenho (DevTools), que eram fornecidas anteriormente em um pacote separado.
  • Ferramentas foram adicionadas ao comando "dart pub" e aos repositórios de pacotes pub.dev para rastrear a liberação acidental de informações confidenciais, por exemplo, deixando credenciais para sistemas de integração contínua e ambientes de nuvem dentro do pacote.
  • Se tais vazamentos forem encontrados, o comando "dart pub publish" irá parar com uma mensagem de erro. No caso de um alarme falso, é possível ignorar a verificação através da lista branca.

fonte: https://medium.com/


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: AB Internet Networks 2008 SL
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.