Journal SpiderMonkey et V8 travaillent ensemble

Posté par  . Licence CC By‑SA.
Étiquettes :
43
5
juin
2020

Là, si tu connais ces deux noms, tu te dis que c'est pas possible en fait. Ils doivent bien se connaître, mais travailler ensemble ?

Pour ceux qui découvrent : SpiderMonkey est le moteur JavaScript de Firefox, fait par Mozilla, et V8 celui de Chromium/Chrome, maintenu par Google.

Et il se trouve que oui, il y a des domaines où ils y trouvent un intérêt, les expressions rationnelles : https://hacks.mozilla.org/2020/06/a-new-regexp-engine-in-spidermonkey/

Visiblement, Mozilla a longtemps utilisé une version patchée du moteur d'expressions rationnelles de V8 (Irregexp), qui est intriqué à ce dernier. Et puis avec les modifications du standard, ça passait plus.

Alors hop, ils se sont remonté les manches, et ont fait une couche d'abstraction. Et ce travail intéresse les développeurs de V8, qui aimeraient bien découpler cette partie du reste. Donc ces derniers ont conseillé les développeurs de SpiderMonkey. En retour, ces derniers contribuent à Irregexp dans le dépôt principal, et corrige des bugs. C'est la fête.

Ce qui veut dire que les expressions rationnelles se comportent de manière identique partout. Enfin, espérons-le…

  • # Standard...

    Posté par  (site Web personnel) . Évalué à 8 (+5/-0).

    Ce qui veut dire que les expressions rationnelles se comportent de manière identique partout. Enfin, espérons-le…

    Parce que c’est la même implémentation. Ce qui veut dire que le standard, c’est l’implémentation. S’il y a un problème interprétation dans le standard, personne ne le verra.

    Après, c’est bien sûr une bonne nouvelle que ces deux projets collaborent.

    « Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. » Coluche

    • [^] # Re: Standard...

      Posté par  . Évalué à 5 (+3/-0).

      we realized that one of the remaining failures in SpiderMonkey’s test suite was also failing in V8. Upon investigation, we determined that there was a subtle mismatch between Irregexp and the JavaScript specification when it came to case-insensitive, non-unicode RegExps.

      Donc dans un sens tu as raison. Mais d'un autre avec des test écrits par des gens qui ont uniquement lu la spécification, ça devrait être pas trop mal.

      • [^] # Re: Standard...

        Posté par  . Évalué à 4 (+3/-0).

        Justement, on n'a jamais eu l'idée de mettre en place une batterie de tests, même si elle ne sera jamais complète, à disposition de ceux qui veulent développer un moteur ? J'imagine que chaque équipe se fade l'écriture des tests unitaires, ce qui est dommage.

        Que ce soit pour les regex ou autre chose d'ailleurs. L'idée est décrire quelque chose « une fois pour toutes » qu'on donnerait à manger à du code. Comme les dictionnaires sois forme de fichiers textes, par exemple.

        • [^] # Re: Standard...

          Posté par  . Évalué à 3 (+1/-0).

          Ce genre de choses est très coûteux et assez compliqué. C'est ce qu'on a pour java avec le jtk. L'accès même à ce bousin a été longuement débattu.

          Tu as les tests acid qui font une partie de ce genre de boulot.

        • [^] # Re: Standard...

          Posté par  . Évalué à 5 (+2/-0). Dernière modification le 08/06/20 à 12:37.

          J'ai souvenir que Firefox avait fait une grosse suite de test avec webgl, et avait remonté un tas de bug dans les drivers opengl eux-même.

          "La première sécurité est la liberté"

Envoyer un commentaire

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n’en sommes pas responsables.