Pular para o conteúdo principal

Lançamento do V8 v7.7

· Leitura de 4 minutos
Mathias Bynens ([@mathias](https://twitter.com/mathias)), alocador preguiçoso de notas de lançamento

A cada seis semanas, criamos um novo branch do V8 como parte do nosso processo de lançamento. Cada versão é branqueada a partir do mestre do Git do V8 imediatamente antes de uma etapa Beta do Chrome. Hoje, temos o prazer de anunciar nosso mais novo branch, a versão 7.7 do V8, que está em beta até seu lançamento em coordenação com o Chrome 77 Stable em algumas semanas. O V8 v7.7 está repleto de recursos interessantes voltados para desenvolvedores. Este post fornece uma prévia de alguns dos destaques em antecipação ao lançamento.

Emscripten e o backend WebAssembly do LLVM

· Leitura de 14 minutos
Alon Zakai

WebAssembly é normalmente compilado a partir de uma linguagem fonte, o que significa que os desenvolvedores precisam de ferramentas para utilizá-lo. Por isso, a equipe V8 trabalha em projetos de código aberto relevantes como LLVM, Emscripten, Binaryen e WABT. Este post descreve parte do trabalho que realizamos no Emscripten e no LLVM, o que em breve permitirá que o Emscripten mude para o backend WebAssembly do LLVM por padrão — por favor, teste e relate quaisquer problemas!

O custo do JavaScript em 2019

· Leitura de 15 minutos
Addy Osmani ([@addyosmani](https://twitter.com/addyosmani)), Faxineiro de JavaScript, e Mathias Bynens ([@mathias](https://twitter.com/mathias)), Libertador da Thread Principal
nota

Nota: Se você prefere assistir a uma apresentação em vez de ler artigos, aproveite o vídeo abaixo! Caso contrário, pule o vídeo e continue lendo.

“O custo do JavaScript” apresentado por Addy Osmani na Conferência #PerfMatters 2019.

Lançamento V8 v7.6

· Leitura de 6 minutos
Adam Klein

A cada seis semanas, criamos um novo branch do V8 como parte do nosso processo de lançamento. Cada versão é criada do Git master do V8 imediatamente antes de um marco Beta do Chrome. Hoje estamos felizes por anunciar nosso mais novo branch, V8 versão 7.6, que está em beta até seu lançamento em coordenação com o Chrome 76 Stable em algumas semanas. O V8 v7.6 está recheado de todos os tipos de recursos voltados para desenvolvedores. Este post fornece uma prévia de alguns dos destaques em antecipação ao lançamento.

Cacheamento de código para desenvolvedores WebAssembly

· Leitura de 11 minutos
[Bill Budge](https://twitter.com/billb), colocando o Ca-ching! no cacheamento

Existe um ditado entre os desenvolvedores de que o código mais rápido é o código que não roda. Da mesma forma, o código mais rápido para compilar é o código que não precisa ser compilado. O cacheamento de código WebAssembly é uma nova otimização no Chrome e no V8 que tenta evitar a compilação de código armazenando o código nativo produzido pelo compilador. Já escrevemos anteriormente sobre como o Chrome e o V8 armazenam em cache o código JavaScript e as melhores práticas para aproveitar essa otimização. Neste post, descrevemos o funcionamento do cache de código WebAssembly do Chrome e como os desenvolvedores podem usá-lo para acelerar o carregamento de aplicativos com grandes módulos WebAssembly.

Lançamento do V8 v7.5

· Leitura de 5 minutos
Dan Elphick, flagelo dos depreciados

A cada seis semanas, criamos um novo branch do V8 como parte do nosso processo de lançamento. Cada versão é ramificada do Git master do V8 imediatamente antes de um marco Beta do Chrome. Hoje, temos o prazer de anunciar nosso mais novo branch, V8 versão 7.5, que está em beta até sua versão final em coordenação com o Chrome 75 Stable em algumas semanas. O V8 v7.5 está cheio de novidades para os desenvolvedores. Este post oferece uma prévia de alguns dos destaques na expectativa do lançamento.

APIs de internacionalização mais rápidas e com mais recursos

· Leitura de 6 minutos
[சத்யா குணசேகரன் (Sathya Gunasekaran)](https://twitter.com/_gsathya)

A Especificação da API de Internacionalização ECMAScript (ECMA-402, ou Intl) fornece funcionalidades essenciais específicas de localidade, como formatação de datas, formatação de números, seleção de formas plural e colação. As equipes do Chrome V8 e de Internacionalização do Google têm colaborado na adição de recursos à implementação da ECMA-402 no V8, enquanto lidam com dívidas técnicas e melhoram o desempenho e a interoperabilidade com outros navegadores.

Um ano com Spectre: uma perspectiva do V8

· Leitura de 10 minutos
Ben L. Titzer e Jaroslav Sevcik

Em 3 de janeiro de 2018, o Google Project Zero e outros divulgaram as três primeiras vulnerabilidades de uma nova classe que afeta CPUs que realizam execução especulativa, chamadas Spectre e Meltdown. Usando os mecanismos de execução especulativa das CPUs, um atacante poderia temporariamente ignorar verificações de segurança implícitas e explícitas no código que impedem programas de ler dados não autorizados na memória. Embora a especulação do processador tenha sido projetada para ser um detalhe microarquitetural, invisível no nível arquitetural, programas cuidadosamente criados poderiam ler informações não autorizadas durante a especulação e divulgá-las por meio de canais laterais, como o tempo de execução de um fragmento de programa.

Parsing extremamente rápido, parte 2: análise preguiçosa

· Leitura de 16 minutos
Toon Verwaest ([@tverwaes](https://twitter.com/tverwaes)) e Marja Hölttä ([@marjakh](https://twitter.com/marjakh)), analisadores mais esparsos

Esta é a segunda parte da nossa série explicando como o V8 analisa JavaScript da forma mais rápida possível. A primeira parte explicou como tornamos o scanner do V8 rápido.

Analisar é a etapa em que o código-fonte é transformado em uma representação intermediária para ser consumida por um compilador (no V8, o compilador de bytecode Ignition). A análise e a compilação ocorrem no caminho crítico do início de uma página da web, e nem todas as funções enviadas ao navegador são necessárias imediatamente durante o início. Embora os desenvolvedores possam atrasar esse código com scripts assíncronos e adiados, isso nem sempre é viável. Além disso, muitas páginas da web enviam códigos que só são usados por certos recursos que podem não ser acessados por um usuário durante qualquer execução específica da página.

Cache de código para desenvolvedores JavaScript

· Leitura de 16 minutos
[Leszek Swirski](https://twitter.com/leszekswirski), destruidor de cache

O cache de código (também conhecido como cache de bytecode) é uma otimização importante nos navegadores. Ele reduz o tempo de inicialização de websites frequentemente visitados ao armazenar o resultado da análise e compilação. A maioria dos navegadores populares implementa alguma forma de cache de código, e o Chrome não é exceção. Na verdade, nós já escrevemos, e falamos sobre como o Chrome e o V8 armazenam em cache o código compilado no passado.