Aller au contenu principal

Publication de la version V8 v7.7

· 4 minutes de lecture
Mathias Bynens ([@mathias](https://twitter.com/mathias)), rédacteur paresseux des notes de version

Tous les six semaines, nous créons une nouvelle branche de V8 dans le cadre de notre processus de publication. Chaque version est issue directement de la branche principale Git de V8, juste avant une étape importante Beta de Chrome. Aujourd’hui, nous sommes ravis d’annoncer notre toute dernière branche, V8 version 7.7, actuellement en version bêta avant sa publication coordonnée avec Chrome 77 Stable dans quelques semaines. V8 v7.7 regorge de nouvelles fonctionnalités destinées aux développeurs. Ce billet présente un aperçu de certains points forts en prévision de sa mise en production.

Emscripten et le backend LLVM WebAssembly

· 14 minutes de lecture
Alon Zakai

WebAssembly est normalement compilé à partir d’un langage source, ce qui signifie que les développeurs ont besoin d’outils pour l’utiliser. C’est pourquoi l’équipe de V8 travaille sur des projets open-source pertinents comme LLVM, Emscripten, Binaryen et WABT. Ce post décrit certains des travaux que nous avons effectués sur Emscripten et LLVM, ce qui permettra bientôt à Emscripten de passer par défaut au backend LLVM WebAssembly — veuillez le tester et signaler tout problème !

Le coût de JavaScript en 2019

· 16 minutes de lecture
Addy Osmani ([@addyosmani](https://twitter.com/addyosmani)), Concierge JavaScript, et Mathias Bynens ([@mathias](https://twitter.com/mathias)), Libérateur du fil principal
remarque

Remarque: Si vous préférez regarder une présentation plutôt que lire des articles, profitez de la vidéo ci-dessous ! Sinon, passez la vidéo et continuez à lire.

“Le coût de JavaScript” présenté par Addy Osmani à la conférence #PerfMatters 2019.

Version V8 v7.6

· 6 minutes de lecture
Adam Klein

Toutes les six semaines, nous créons une nouvelle branche de V8 dans le cadre de notre processus de sortie. Chaque version est dérivée du master Git de V8 juste avant une étape Beta de Chrome. Aujourd’hui, nous sommes heureux d’annoncer notre nouvelle branche, V8 version 7.6, actuellement en version beta jusqu’à sa sortie en coordination avec Chrome 76 Stable dans plusieurs semaines. V8 v7.6 est rempli de nombreuses nouveautés pour les développeurs. Cet article donne un aperçu de certains points forts en prévision de la sortie.

Mise en cache du code pour les développeurs WebAssembly

· 12 minutes de lecture
[Bill Budge](https://twitter.com/billb), ajoutant le Ca-ching! à la mise en cache

Il y a un dicton parmi les développeurs qui dit que le code le plus rapide est celui qui ne s’exécute pas. De même, le code qui se compile le plus rapidement est celui qui n’a pas besoin d’être compilé. La mise en cache du code WebAssembly est une nouvelle optimisation dans Chrome et V8 qui vise à éviter la compilation du code en mettant en cache le code natif produit par le compilateur. Nous avons écrit sur comment Chrome et V8 mettent en cache le code JavaScript dans le passé, et les meilleures pratiques pour tirer parti de cette optimisation. Dans cet article, nous décrivons le fonctionnement de la mise en cache du code WebAssembly dans Chrome et comment les développeurs peuvent en tirer parti pour accélérer le chargement des applications avec de grands modules WebAssembly.

Version V8 v7.5

· 5 minutes de lecture
Dan Elphick, fléau des fonctionnalités obsolètes

Toutes les six semaines, nous créons une nouvelle branche de V8 dans le cadre de notre processus de publication. Chaque version est issue du dépôt maître Git de V8 immédiatement avant une étape bêta de Chrome. Aujourd’hui, nous sommes ravis d’annoncer notre nouvelle branche, version 7.5 de V8, qui est en phase bêta jusqu’à sa publication en coordination avec Chrome 75 Stable dans quelques semaines. V8 v7.5 regorge d’éléments intéressants pour les développeurs. Ce billet fournit un aperçu de certains des points forts en prévision de la publication.

Des API d'internationalisation plus rapides et riches en fonctionnalités

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

La spécification de l'API d'internationalisation ECMAScript (ECMA-402, ou Intl) fournit des fonctionnalités clés spécifiques à chaque langue, comme le formatage des dates, des nombres, la sélection des formes plurielles et le classement. Les équipes Chrome V8 et Google Internationalization ont collaboré pour ajouter des fonctionnalités à l'implémentation ECMA-402 de V8, tout en nettoyant les dettes techniques et en améliorant les performances ainsi que l'interopérabilité avec d'autres navigateurs.

Une année avec Spectre : une perspective V8

· 11 minutes de lecture
Ben L. Titzer et Jaroslav Sevcik

Le 3 janvier 2018, Google Project Zero et d'autres ont révélé les trois premières failles d'une nouvelle classe de vulnérabilités affectant les CPU utilisant l'exécution spéculative, nommées Spectre et Meltdown. En exploitant les mécanismes d'exécution spéculative des CPU, un attaquant pouvait temporairement contourner les vérifications implicites et explicites de sécurité dans le code empêchant les programmes de lire des données non autorisées en mémoire. Bien que la spéculation des processeurs ait été conçue comme un détail microarchitectural, invisible au niveau architectural, des programmes soigneusement conçus pouvaient lire des informations non autorisées lors de la spéculation et les divulguer via des canaux auxiliaires comme le temps d'exécution d'un fragment de programme.

Parsing ultra-rapide, partie 2 : analyse syntaxique paresseuse

· 17 minutes de lecture
Toon Verwaest ([@tverwaes](https://twitter.com/tverwaes)) et Marja Hölttä ([@marjakh](https://twitter.com/marjakh)), parsers plus légers

Voici la deuxième partie de notre série expliquant comment V8 analyse JavaScript aussi rapidement que possible. La première partie expliquait comment nous avons rendu le scanner de V8 rapide.

L’analyse syntaxique est l’étape où le code source est converti en une représentation intermédiaire qui sera consommée par un compilateur (dans V8, le compilateur de bytecode Ignition). L’analyse et la compilation se déroulent sur le chemin critique du démarrage de la page web, et toutes les fonctions envoyées au navigateur ne sont pas immédiatement nécessaires lors du démarrage. Même si les développeurs peuvent différer ce code avec des scripts asynchrones et différés, cela n’est pas toujours possible. De plus, de nombreuses pages web incluent du code utilisé uniquement par certaines fonctionnalités qui peuvent ne pas être accessibles du tout par un utilisateur au cours de l’exécution individuelle de la page.

Mise en cache de code pour les développeurs JavaScript

· 18 minutes de lecture
[Leszek Swirski](https://twitter.com/leszekswirski), casseur de cache

La mise en cache de code (également appelée mise en cache de bytecode) est une optimisation importante dans les navigateurs. Elle réduit le temps de démarrage des sites web fréquemment visités en mettant en cache le résultat de l’analyse et de la compilation. La plupart des navigateurs populaires implémentent une forme de mise en cache de code, et Chrome ne fait pas exception. En effet, nous avons déjà écrit et parlé de la façon dont Chrome et V8 mettent en cache le code compilé.