[Development] QML engine changes

Simon Hausmann simon.hausmann at digia.com
Mon Jun 24 10:26:33 CEST 2013


As you may have heard (or read), Lars, Erik and I have been working on some 
bigger changes for qtdeclarative for a while. In a nutshell we've replaced the 
V8 JavaScript engine with a new engine that we wrote (based on work by Roberto 
and Aaron). We've progressed rather well and in our wip/v4 branch in 
qtdeclarative we're now passing all auto tests (as well as the ECMAScript 262 
test suite). So that's why we'd like to propose merging this work into 
qtdeclarative mainline (dev branch), in the coming days/week(s) - in time for 
Qt 5.2 though.

We think that this work brings in many advantages, among others much improved 
maintenance (we know how this thing works, which isn't something we can 
confidently say about V8 as much as we'd like to), a unified code path in QML 
[1], much less code overall  and great opportunities for optimizations (way 
beyond what's possible with V8's API layer - you'd be surprised how often even 
in today's QML usage the V8 code path is not actually taken because it's 
slower that the built-in interpreter).

So this is a heads-up and of course a last call for objections :)


[1] Did you know what when you read a URL property in QML binding expressions, 
sometimes it's a string and sometimes it's an opaque variant? That's because 
the builtin interpreter in qtdeclarative and V8 behave different. We're fixing 
that :)

More information about the Development mailing list