Fwd: [Qt-qml] Merging V8 into qtdeclarative.git#master

2011-07-05 Thread Artur Souza (MoRpHeUz)
FYI


-- Forwarded message --
From:  aaron.kenn...@nokia.com
Date: Tue, Jul 5, 2011 at 1:20 AM
Subject: [Qt-qml] Merging V8 into qtdeclarative.git#master
To: qt-...@qt.nokia.com


Hi,

Tomorrow we will merge the qtdeclarative.git#v8 branch into
qtdeclarative.git#master.  This change switches the JavaScript engine
QML uses from JavaScript Core to V8 (http://code.google.com/p/v8/).

In the past QML accessed the JavaScript engine indirectly through
QtScript, but with V8 we integrated it directly against V8's native
C++ API.  Consequently, in addition to the raw JavaScript performance
improvements we get for free, QML can leverage some of V8's unique
features to give a better JavaScript experience.

In a perfect world, other than their apps running slightly faster, QML
users should notice no change.  However, there are a couple of known
regressions to be aware of:

   1. Creator integration will probably not work as smoothly in the
short term - at the very least the JavaScript debugging will not work.
   2. Any QML API that relies on QML's undocumented ability to set and
get QScriptValue properties will no longer work.
   3. Any application that provides a QScriptValue based QML module
API will no longer work.  As module APIs are an unreleased feature
anyway, hopefully this wont be a big problem.

If you encounter any other breakage, it is probably a bug - so please report it!

One goal in qt5 is to allow applications to expose their own
JavaScript based APIs to QML.  Right now, it is not clear whether this
will be accomplished by porting all of QtScript to V8, or by exposing
a new, smaller JavaScript API that just wraps V8.  If anyone has any
strong opinions on the matter, now would probably be a good
opportunity to express them :)

Cheers,

Aaron
___
Qt-qml mailing list
qt-...@qt.nokia.com
http://lists.qt.nokia.com/mailman/listinfo/qt-qml



-- 
---
Artur Duque de Souza
openBossa
INdT - Instituto Nokia de Tecnologia
---
Blog: http://blog.morpheuz.cc
PGP: 0xDBEEAAC3 @ wwwkeys.pgp.net
---
___
Plasma-devel mailing list
Plasma-devel@kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel


Re: Fwd: [Qt-qml] Merging V8 into qtdeclarative.git#master

2011-07-05 Thread Marco Martin
On Tuesday 05 July 2011, Artur Souza (MoRpHeUz) wrote:
 
1. Creator integration will probably not work as smoothly in the
 short term - at the very least the JavaScript debugging will not work.
2. Any QML API that relies on QML's undocumented ability to set and
 get QScriptValue properties will no longer work.
3. Any application that provides a QScriptValue based QML module
 API will no longer work.  As module APIs are an unreleased feature
 anyway, hopefully this wont be a big problem.

ok, so this feared and unbelievably BS change happened in the end.

I'm still amazed that they got a change in that makes debugging with QtCreator 
impossible (and if they don't get either the acess to qtscript back, or write 
something else that almost mimicks qtscript behaviour,  debugging is just 
plain impossible, end of story)

this means that in Qt5 we will be able to use exactly zero of the current JS 
api in qml.

Of the current bindings is possible to make some of them work, the Core one 
should almost work, qtextracomponents has a problem for qicons (at least), 
and this means as well, *every* qstandarditemmodel is broken now

the behavior of plasmoid.* object could *almost* be emulated, but not 
functions dynamically added as is now, meaning saying goodbye to the last 
pieces of the nice sandboxing model that remained.

other thing that in no way they can work anymore:

* services: no more bindings for kconfiggroup, impossible to pass any 
parameter
* addons: not possible anymore as well (there is some way to make a 
decalrative engine interpret js, but is nowhere near as the needed)
* access to qvarianthash/maps provided by the dataengines (have to check, iirc 
doesn't work)
* anything that relies writing on the root context
* forget any binding to QPainter (they could still have been useful to paint 
over pixmaps)
probably i still forgotten something.


so, few options here:
* acting as Qt5 will never happen (not too wise)
* starting from scratch bindings for qml2, something can be saved most to be 
rewritten (and no, don't have time for it, also rewriting them to make them 
explicitly worse is not exactly fun)
* fighting, fighting and fighting (this got exactly nothing so far, i guess 
they will hear even less now)

so, what else remains to do??

Cheers,
Marco Martin
___
Plasma-devel mailing list
Plasma-devel@kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel


Re: Fwd: [Qt-qml] Merging V8 into qtdeclarative.git#master

2011-07-05 Thread Artur de Souza
Quoting Marco Martin notm...@gmail.com:
 so, what else remains to do??

Besides not working right now I think that the module API that today  
uses QScriptValue will still be present (I just asked for it anyway in  
qt-qml mailing list). Even if it doesn't use QScriptValue but some  
other stuff in the future.

With this module API we would be able to export the non-QObject stuff.  
But I think that a good solution would be to git reset --hard origin  
our relationship with QML guys: these days they look like more  
responsive on mailing lists and we could try to talk with them about  
real solutions for our problems...

I know this didn't work in the past, but I would like to give another  
try but without coming to the qt-qml mailing list saying this is  
*@#$(@ hehe :).

Marco, can you help me on qt-qml mailing list and post these problems  
and ask for advice? I will help you there ;)

Cheers!

-- 
---
http://claimid.com/morpheuz
Blog: http://blog.morpheuz.cc
PGP: 0xDBEEAAC3 @ wwwkeys.pgp.net

---

___
Plasma-devel mailing list
Plasma-devel@kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel


Re: Fwd: [Qt-qml] Merging V8 into qtdeclarative.git#master

2011-07-05 Thread Marco Martin
On Tuesday 05 July 2011, Artur de Souza wrote:
 Quoting Marco Martin notm...@gmail.com:
  so, what else remains to do??
 
 Besides not working right now I think that the module API that today
 uses QScriptValue will still be present (I just asked for it anyway in
 qt-qml mailing list). Even if it doesn't use QScriptValue but some
 other stuff in the future.

this could be good, is it something already existent or planned? 
(I don't know a lot of that stuff) how would be possible to register a non 
qobject without a qscriptvalue?

 With this module API we would be able to export the non-QObject stuff.
 But I think that a good solution would be to git reset --hard origin

i think that would still force us to rewrite the bindings, forgetting 
everything about the old js bindings (interesting trivia, that was my first 
version, there is still a version of bindings that has a plasmoid.* and 
doesn't use the engine at all, then unfortunately discovered the access to the 
engine, kinda wish i never did now :/)

 our relationship with QML guys: these days they look like more
 responsive on mailing lists and we could try to talk with them about
 real solutions for our problems...

that's nice ;)

 I know this didn't work in the past, but I would like to give another
 try but without coming to the qt-qml mailing list saying this is
 *@#$(@ hehe :).
 
 Marco, can you help me on qt-qml mailing list and post these problems
 and ask for advice? I will help you there ;)

ok, (re)subscribed now ;)

Cheers,
Marco Martin
___
Plasma-devel mailing list
Plasma-devel@kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel


Re: Fwd: [Qt-qml] Merging V8 into qtdeclarative.git#master

2011-07-05 Thread Marco Martin
On Tuesday 05 July 2011, Artur de Souza wrote:
 Quoting Marco Martin notm...@gmail.com:
  so, what else remains to do??
 
 Besides not working right now I think that the module API that today
 uses QScriptValue will still be present (I just asked for it anyway in
 qt-qml mailing list). Even if it doesn't use QScriptValue but some
 other stuff in the future.
 
 With this module API we would be able to export the non-QObject stuff.
 But I think that a good solution would be to git reset --hard origin
 our relationship with QML guys: these days they look like more
 responsive on mailing lists and we could try to talk with them about
 real solutions for our problems...
 
 I know this didn't work in the past, but I would like to give another
 try but without coming to the qt-qml mailing list saying this is
 *@#$(@ hehe :).
 
 Marco, can you help me on qt-qml mailing list and post these problems
 and ask for advice? I will help you there ;)

hmm, i see now on the archives that they seem to consider to reenable QtScript 
for V8... that would be the best way (and the only good one, still imo)

-- 
Marco Martin
___
Plasma-devel mailing list
Plasma-devel@kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel