Pular para o conteúdo principal

Iniciando o interpretador Ignition

· Leitura de 4 minutos
Ross McIlroy, Iniciador do Ignition no V8

O V8 e outros motores modernos de JavaScript alcançam sua velocidade através da compilação just-in-time (JIT) de script para código de máquina nativo imediatamente antes da execução. O código é inicialmente compilado por um compilador básico, que pode gerar código de máquina não otimizado rapidamente. O código compilado é analisado durante a execução e, opcionalmente, recompilado dinamicamente com um compilador otimizador mais avançado para obter desempenho máximo. No V8, esse pipeline de execução de script possui uma variedade de casos especiais e condições que exigem uma complexa maquinaria para alternar entre o compilador básico e dois compiladores otimizadores, Crankshaft e TurboFan.

V8 na conferência BlinkOn 6

· Leitura de 3 minutos
a equipe do V8

BlinkOn é uma reunião semestral de colaboradores do Blink, V8 e Chromium. O BlinkOn 6 foi realizado em Munique nos dias 16 e 17 de junho. A equipe do V8 realizou várias apresentações sobre arquitetura, design, iniciativas de desempenho e implementação de linguagem.

Lançamento do V8 versão v5.3

· Leitura de 4 minutos
a equipe do V8

A cada aproximadamente 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 a ramificação do Chrome ser feita para um marco Beta do Chrome. Hoje estamos animados em anunciar nosso mais novo branch, V8 versão 5.3, que estará em beta até ser lançado em coordenação com o Chrome 53 Stable. O V8 v5.3 está cheio de novidades voltadas para desenvolvedores, então gostaríamos de dar-lhe um preview de alguns dos destaques em antecipação ao lançamento em algumas semanas.

Lançamento do V8 v5.2

· Leitura de 2 minutos
a equipe V8

Aproximadamente a cada seis semanas, criamos um novo branch do V8 como parte do nosso processo de lançamento. Cada versão é criada a partir do mestre do Git do V8 imediatamente antes de o Chrome se ramificar para um marco Beta do Chrome. Hoje temos o prazer de anunciar nosso mais novo branch, versão V8 5.2, que estará em beta até ser lançado em coordenação com o Chrome 52 Stable. O V8 5.2 está repleto de todo tipo de recursos voltados para desenvolvedores, então gostaríamos de dar uma prévia de alguns destaques, antecipando o lançamento em algumas semanas.

ES2015, ES2016 e além

· Leitura de 9 minutos
a equipe do V8, entusiastas do ECMAScript

A equipe do V8 dá grande importância à evolução do JavaScript em uma linguagem cada vez mais expressiva e bem definida que torna fácil escrever aplicações web rápidas, seguras e corretas. Em junho de 2015, a especificação ES2015 foi ratificada pelo comitê de padrões TC39, tornando-se a maior atualização única da linguagem JavaScript. Novos recursos incluem classes, funções de seta, promessas, iteradores / geradores, proxies, símbolos conhecidos e adicionais açúcares sintáticos. O TC39 também aumentou a cadência de novas especificações e lançou o rascunho candidato para ES2016 em fevereiro de 2016, que será ratificado neste verão. Embora não seja tão expansivo quanto a atualização para ES2015 devido ao ciclo de lançamento mais curto, o ES2016 notavelmente introduz o operador de exponenciação e Array.prototype.includes.

Lançamento do V8 v5.1

· Leitura de 4 minutos
a equipe do V8

O primeiro passo no processo de lançamento do V8 é a criação de um novo branch a partir do Git master, imediatamente antes de o Chromium criar um branch para uma versão beta do Chrome (aproximadamente a cada seis semanas). Nosso mais novo branch de lançamento é V8 v5.1, que permanecerá em beta até lançarmos uma versão estável em conjunto com o Chrome 51 Stable. Aqui está um resumo dos novos recursos voltados para desenvolvedores nesta versão do V8.

Jank Busters Parte Dois: Orinoco

· Leitura de 7 minutos
os jank busters: Ulan Degenbaev, Michael Lippautz e Hannes Payer

Em um post anterior do blog, apresentamos o problema da queda de desempenho causada pela coleta de lixo que interrompe uma experiência de navegação fluida. Neste post do blog, introduzimos três otimizações que estabelecem as bases para um novo coletor de lixo no V8, codinome Orinoco. Orinoco é baseado na ideia de que implementar um coletor de lixo principalmente paralelo e simultâneo, sem limites geracionais rígidos, reduzirá a queda de desempenho na coleta de lixo e o consumo de memória enquanto fornece alta produtividade. Em vez de implementar Orinoco por trás de uma opção como um coletor de lixo separado, decidimos lançar os recursos do Orinoco incrementalmente no V8 diretamente a partir da árvore principal para beneficiar os usuários imediatamente. Os três recursos discutidos neste post são compactação paralela, processamento paralelo de conjunto registrado e alocação preta.

Lançamento do V8 v5.0

· Leitura de 3 minutos
a equipe V8

O primeiro passo no processo de lançamento do V8 é o início de um novo branch a partir do Git master imediatamente antes que o Chromium faça o branch para um marco Beta do Chrome (aproximadamente a cada seis semanas). Nosso mais novo branch de lançamento é V8 v5.0, que permanecerá em beta até lançarmos uma versão estável em conjunto com o Chrome 50 Stable. Aqui estão os destaques dos novos recursos voltados para desenvolvedores nesta versão do V8.

Suporte experimental para WebAssembly no V8

· Leitura de 3 minutos
Seth Thompson, Especialista em WebAssembly

Para uma visão geral completa sobre WebAssembly e um roteiro para colaboração futura da comunidade, veja A WebAssembly Milestone no blog Mozilla Hacks.

Desde junho de 2015, colaboradores do Google, Mozilla, Microsoft, Apple e do W3C WebAssembly Community Group têm trabalhado intensamente no design, especificação e implementação (1, 2, 3, 4) do WebAssembly, um novo ambiente de execução e alvo de compilação para a web. WebAssembly é um bytecode de baixo nível e portátil, projetado para ser codificado em um formato binário compacto e executado em velocidade próxima à nativa em uma sandbox segura para memória. Como uma evolução das tecnologias existentes, o WebAssembly é integrado à plataforma web, além de ser mais rápido para baixar pela rede e instanciar do que asm.js, um subconjunto de baixo nível do JavaScript.

Afirmativas lookbehind do RegExp

· Leitura de 4 minutos
Yang Guo, Engenheiro de Expressões Regulares

Introduzidas com a terceira edição da especificação ECMA-262, expressões regulares fazem parte do JavaScript desde 1999. Em termos de funcionalidade e expressividade, a implementação de expressões regulares no JavaScript espelha, aproximadamente, a de outras linguagens de programação.