Hi, As agreed in the QtScript/V8 team telco yesterday, we're prototyping a new approach for porting QML to V8.
The objective is to accelerate the process of having a complete, performant QML/V8 port, that can be merged into the main QML development branch at an early stage. To achieve that, we are decoupling the objective of QML running on top of V8, from the objective of QtScript running on top of V8. To avoid getting sidetracked by QtScript-specific API and behavior, we're prototyping a "pure" V8 integration -- no abstraction layer on top. The motivation for this is that the V8 API is stable and powerful, so in the interest of minimizing overhead, there's no reason for an abstraction layer (QtScript) to sit on top of that. If the prototype is successful, the intent is to go back and complete the work on the QtScript/V8 port once the full QML/V8 port is done. If the prototype is unsuccessful, we go back to doing what we have been doing (http://qt.gitorious.org/+qt-developers/qt/qt-script-ng), but hopefully with a lot more knowledge on how the QML/JS integration currently works. The public mirror of the prototype QML/V8 work can be found here: http://qt.gitorious.org/+qt-developers/qt/staging/commits/air-team/qtquick2v8 The initial work of completely removing all QtDeclarative's dependencies on QtScript, and linking against (external, for now) V8, has been done. The next steps are: 1. Implement QML/JS integration on top of V8 API. 2. No embarrassing performance regressions --> merge QML/JS-V8 integration to Qt. 3. Complete the QtScript/V8 port (based on our existing work in http://qt.gitorious.org/+qt-developers/qt/qt-script-ng). 4. Switch QtDeclarative back to linking against QtScript, so it will use the V8 copy that QtScript provides. 5. Merge to Qt. For 1), the idea is to decouple as much of the QML/JS integration from the rest of the QML implementation as possible. To achieve that, the core JS integration should live inside src/declarative/script (already created), which should have some well-defined "hooks" to the outside. Intent being that much of that code can be shared (AKA moved to QtScript) when it comes to step 4). The main JIRA task for this work is http://bugreports.qt.nokia.com/browse/QTBUG-12506 Regards, Kent _______________________________________________ Qt-qml mailing list [email protected] http://lists.qt.nokia.com/mailman/listinfo/qt-qml
