Aller au contenu principal

Sortie de V8 v7.0

· 3 minutes de lecture
Michael Hablich

Tous les six semaines, nous créons une nouvelle branche de V8 dans le cadre de notre processus de publication. Chaque version est dérivée du dépôt principal de V8 juste avant une étape Beta de Chrome. Aujourd'hui, nous sommes ravis d'annoncer notre toute nouvelle branche, V8 version 7.0, qui est en phase Beta jusqu'à sa sortie en coordination avec Chrome 70 Stable dans plusieurs semaines. V8 v7.0 est remplie de nouveautés orientées développeurs. Ce billet offre un aperçu de certains des points forts en vue de la sortie prochaine.

Built-ins intégrés

Les built-ins intégrés permettent de réduire l'utilisation de mémoire en partageant le code généré entre plusieurs Isolates V8. Depuis V8 v6.9, nous avons activé les built-ins intégrés sur x64. V8 v7.0 étend ces économies de mémoire à toutes les plateformes restantes sauf ia32.

Un aperçu des threads WebAssembly

WebAssembly (Wasm) permet la compilation de code écrit en C++ et d'autres langages pour une exécution sur le web. Une fonctionnalité très utile des applications natives est la capacité d'utiliser des threads — un mécanisme pour le calcul parallèle. La plupart des développeurs en C et C++ connaissent probablement pthreads, une API standardisée pour la gestion des threads d'application.

Le WebAssembly Community Group travaille à l'introduction de threads sur le web afin de permettre de véritables applications multi-threadées. Dans le cadre de cet effort, V8 a implémenté le support nécessaire pour les threads dans le moteur WebAssembly. Pour utiliser cette fonctionnalité dans Chrome, vous pouvez l'activer via chrome://flags/#enable-webassembly-threads, ou votre site peut s'inscrire à un Origin Trial. Les Origin Trials permettent aux développeurs d'expérimenter de nouvelles fonctionnalités web avant qu'elles ne soient entièrement standardisées, ce qui nous aide à recueillir des retours du monde réel, essentiels pour valider et améliorer les nouvelles fonctionnalités.

Fonctionnalités du langage JavaScript

Une propriété description est ajoutée à Symbol.prototype. Cela offre un moyen plus ergonomique d'accéder à la description d'un Symbol. Auparavant, la description ne pouvait être accessible qu'indirectement via Symbol.prototype.toString(). Merci à Igalia d'avoir contribué à cette implémentation !

Array.prototype.sort est désormais stable dans V8 v7.0. Auparavant, V8 utilisait un QuickSort instable pour les tableaux comportant plus de 10 éléments. Nous utilisons maintenant l'algorithme stable TimSort. Consultez notre billet de blog pour plus de détails.

API de V8

Veuillez utiliser git log branch-heads/6.9..branch-heads/7.0 include/v8.h pour obtenir une liste des modifications de l'API.

Les développeurs ayant une copie active de V8 peuvent utiliser git checkout -b 7.0 -t branch-heads/7.0 pour expérimenter les nouvelles fonctionnalités de V8 v7.0. Vous pouvez également vous abonner au canal Beta de Chrome et essayer les nouvelles fonctionnalités très prochainement.