Faire un don ! | | style | statistiques | contactez-nous | plan | lettre d'information

: Adobe libère sa machine virtuelle ActionScript 3

Posté par Laurent J (page perso, ). Modéré le 07 novembre 2006.
La machine virtuelle d'ActionScript 3 qui est actuellement incluse dans Flash 9, vient d'être libérée par Adobe et intégrée dans le code de Mozilla, sous les trois licences habituelles de Mozilla : MPL/GPL/LGPL

Adobe et Mozilla vont donc travailler ensemble sur cette machine virtuelle, afin de profiter chacun d'une implémentation complète et performante des futures versions d'Ecmascript (en particulier Ecmascript 2 édition 4), ce qui est l'objectif du projet Tamarin de Mozilla.

Concrètement, le projet Tamarin permettra d'avoir des performances accrues sur l'exécution des scripts javascript dans les pages web, dans les extensions, dans les applications XUL, et donc dans le futur Firefox 3.

> Lire la dépêche (60 commentaires, moyenne: 3,5).  

Vous avez demandé le commentaire #772230.

Rectificatif

Posté par Jean-Philippe (page perso, ) le 07/11/2006 à 15:24. (lien). Évalué à 9.

D'après http://www.mozilla.org/projects/tamarin/ et http://www.adobe.com/aboutadobe/pressroom/pressreleases/2006(...) c'est plutôt la version 4 de ECMAScript qui ets implémentée dans Tamarin, version à l'origine de AS 3 (soit flash 9) et Javascript 2, version encore à l'état de brouillon mais presque finie.

En tout cas c'est une bonne nouvelle pour la standardisation du langage Javascript et j'espère que le projet sera repris par les autres navigateurs libre comme konqueror.

Et, encore une note positive (j'ai perdu la source par contre), cette machine virtuelle est disponible pour les 64 bits ce qui voudrait donc dire qu'il y à de grandes chances de voir un flash 9 pour 64 bits

  • [^]Re: Rectificatif

    Posté par Jean-Philippe (page perso, ) le 07/11/2006 à 15:28. (lien). Évalué à 8.

    Arf, encore oublié, et perdu la source.
    Malgré le fait que Adobe ait libéré (http://blogs.adobe.com/penguin.swf/2006/11/open_source_actio(...) 135000 lignes de code, ils n'ont pas libéré leur soft java qui génère le bytecode pour actionscript (pas bytecode pour javascript 2, ni de JIT pour mozilla donc il me semble)

    • [^]Re: Rectificatif

      Posté par Laurent J (page perso, ) le 07/11/2006 à 15:45. (lien). Évalué à 5.

      Pourtant, http://lxr.mozilla.org/mozilla/source/js/tamarin/codegen/ ressemble furieusement à de la génération de code machine, donc d'un système JIT ;-)

      Je pige pas par contre ton histoire de soft Java ... Y a pas de java dans flash...

      Et puis je ne vois pas l'interet d'une machine virtuelle si elle ne génère pas du bytecode....

      [^]Re: Rectificatif

      Posté par Laurent J (page perso, ) le 07/11/2006 à 15:54. (lien). Évalué à 5.

      ah je crois comprendre : dans un flash, le code actionscript est déjà sous forme de bytecode, bytecode généré par les outils de dev flash ?

      Et il n'y aurait pas alors de parser javascript/générateur de bytecode dans ce qu'ils ont filé ?

      C'est probable en effet (je suis pas encore aller tout voir...)

      Cependant, spidermonkey sait parser du JS, et comme on a les sources de la machine virtuel, c'est assez "relativement" "aisé" alors de générer du byte code :

      parser (spidermonkey) -> génération de bytecode (générateur à développer ?) -> execution du byte code (la machine virtuelle d'adobe)

      • [^]Re: Rectificatif

        Posté par Mjules (page perso, ) le 07/11/2006 à 16:51. (lien). Évalué à 3.

        Il y mtasc qui est présenté comme un compilateur pour ActionSCript2 mais je sais pas si ça répond à la problématique :
        http://www.framasoft.net/article3536.html
        http://www.mtasc.org/

        • [^]Re: Rectificatif

          Posté par Antoine () le 07/11/2006 à 20:43. (lien). Évalué à 6.

          Il y a surtout haXe qui est le successeur de mtasc, qui permet la compilation d'un langage dédié (ressemblant à ECMAScript, mais avec typage strict, inférence de types...) vers Javascript ou SWF.
          http://haxe.org/

        [^]Re: Rectificatif

        Posté par Jean-Philippe (page perso, ) le 07/11/2006 à 17:09. (lien). Évalué à 5.

        Bon, j'ai retrouvé ma source, je vais dire moins de bêtises :
        http://www.kaourantin.net/2006/11/spidermonkeys-relative-tam(...)

        Ce monsieur est ingénieur chez Adobe et travaille sur le flash player, il me semble qu'il travaille main dans la main avec le développeur principal de flash pour linux.

        Just the Verifier, JIT, core frameworks and the garbage collection engine are now open source.


        Il y aura donc un JIT pour mozilla.

        Par contre :

        Also important to note: The java based compiler which converts ECMAScript 4 to the byte code understood by Tamarin is not included in this agreement.


        Il y a bien du code java pour générer du bytecode ecmascript, code utilisé dans la plate-forme flex (et sûrement dans Flash pour créer les .swf).

        Mozilla might adopt the conservative garbage collector even for SpiderMonkey [...] This would be a huge boon for AJAX based applications [...]


        D'après ce que j'ai compris ils ont libéré du code qu'ils ont écrit il y a peu pour leur garbage collector (ramasse-miettes), ce qui amène un gros gain de performances rien que pour leur player. On peut donc imaginer la même chose pour mozilla, ce qui ne présage que de bonnes choses :-)

        • [^]Re: Rectificatif

          Posté par Olivier Faurax (Jabber id, page perso, ) le 08/11/2006 à 09:21. (lien). Évalué à 3.

          En gros, si j'ai bien compris, le principe, c'est ça :
          ECMAScript --> Bytecode pour Tamarin (compilé) --> execution sur le processeur

          Pour l'instant, sur Firefox, on a :
          ECMAScript --> interprétation par SpiderMonkey --> exécution

          La compilation est presque tout le temps beaucoup plus efficace que l'interprétation.
          Avec Tamarin, les 2 fonctions principales qui accélèrent sont le JIT (compilatio à la volée) et le ramasse-miette (gestion/récupération de la mémoire à la volée).

          Ce qui n'a pa été libéré, c'est la partie :
          ECMAScript --> Bytecode pour Tamarin

          Donc, le futur boulot, c'est de mettre Tamarin dans SpiderMonkey pour que SpiderMonkey compile pour Tamarin.
          En gros, c'est :
          ECMAScript --> SpiderMonkey --> Bytecode Tamarin --> exécution

          Pour les puristes (ceux qui aiment la purée ;) ), la page Tamarin indique qu'en fait Tamarin sera DANS SpiderMonkey, c'est à dire que c'est le même bidule qui interprète/compile/exécute l'ECMAScript.

          Et au final, ils sont pas fous chez Adobe, ils gardent leur avantage concurrentiel, c'est-à-dire l'outil qui génère le code Tamarin depuis des bibliothèques (optimisées) de gestion audio/video.

          --
          xmpp:ofaurax@jabber.fr
          • [^]Re: Rectificatif

            Posté par Antoine () le 08/11/2006 à 09:29. (lien). Évalué à 5.

            c'est-à-dire l'outil qui génère le code Tamarin depuis des bibliothèques (optimisées) de gestion audio/video.

            Pardon ? Tu ne crois pas que le moteur de rendu du lecteur Flash est écrit en ActionScript quand même ?

            • [^]Re: Rectificatif

              Posté par Olivier Faurax (Jabber id, page perso, ) le 08/11/2006 à 10:35. (lien). Évalué à 1.

              T'as raison.
              Je connais pas assez bien Flash.

              Mais alors là, je comprends pas pourquoi ils ont par libéré leur compilateur d'ECMAScript vers Tamarin.
              Ça leur permettait d'ouvrir complètement la chaîne de compilation et de proposer une valeur ajoutée en fournissant des bibliothèques audio/video/pdf/etc.

              Je sais, on s'en fout, on a SpiderMonkey, mais bon...

              --
              xmpp:ofaurax@jabber.fr
              • [^]Re: Rectificatif

                Posté par herodiade () le 08/11/2006 à 13:30. (lien). Évalué à 3.

                Mais alors là, je comprends pas pourquoi ils ont par libéré leur compilateur d'ECMAScript vers Tamarin.

                Timic Uro (le chef de proj. Flash chez Adobe) l'explique : parce qu'il n'est de toutes façons pas utilisable pour FF :

                * Il est en java (donc déjà, ça le fait pas)
                * Son architecture ne permet pas de gérer l'instruction eval() (donc impossible de le rendre totalement compatible avec le standard ECMAScript 4).

                Si je comprend bien le but est maintenant d'écrire le compilateur Ecmascript ... en Ecmascript !

                Ref. http://www.kaourantin.net/2006/11/spidermonkeys-relative-tam(...)

      [+] [^]ils n'ont pas libéré ...

      Posté par salvaire () le 07/11/2006 à 22:03. (lien). Évalué à -2.

      Perl, Python, Parrot ... sont totalement libérés depuis longtemps eux!

      • [^]Re: ils n'ont pas libéré ...

        Posté par Jean-Philippe (page perso, ) le 07/11/2006 à 22:23. (lien). Évalué à 0.

        ECMAScript est totalement libre... la preuve on en a fait javascript, implémenté dans firefox (et surement konqueror)

        • [^]Re: ils n'ont pas libéré ...

          Posté par Jebediah Tramo () le 08/11/2006 à 10:06. (lien). Évalué à 5.

          ECMAScript est totalement libre... la preuve on en a fait javascript

          Euh non c'est l'inverse, ECMAScript est le descendant normalisé du JavaScript créé par Netscape et de JScript, sa variante microsoftienne.

    [^]Autre rectificatif

    Posté par alung () le 08/11/2006 à 09:55. (lien). Évalué à 2.

    Chez mozilla, ils prévoient plutôt d'implémenter Tamarin dans Firefox 4 et non pas 3.

    Cf http://www.mozilla.org/projects/tamarin/faq.html#when

    When will Tamarin appear in SpiderMonkey and Firefox?

    The Mozilla engineering team currently estimates that Tamarin will be incorporated into shipping versions of SpiderMonkey and Firefox in 2008.


    et http://www.hecker.org/mozilla/adobe-mozilla-and-tamarin
    The Mozilla project will use Tamarin as part of future versions of SpiderMonkey, the C-based JavaScript engine used in Firefox and other applications, and will include it in future versions of Firefox (beyond Firefox 3) that are built using Mozilla 2 technology.