Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. QML and Qt Quick
  4. Binary QML compilation...
Forum Updated to NodeBB v4.3 + New Features

Binary QML compilation...

Scheduled Pinned Locked Moved QML and Qt Quick
25 Posts 9 Posters 14.8k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • R Offline
    R Offline
    raulgd
    wrote on last edited by
    #1

    Does anyone know whatever happened to compiling QML text files as binaries so that developers can protect their intellectual property, improve loading performance, etc?

    Here's the reference on binary QML from this forums, which according to it, shouldn't be hard to add to Qt:

    "Protection of QML code":http://qt-project.org/forums/viewthread/16693/#84245

    So, any Qt developers that could tell us if this could come as a feature in Qt 5?

    Thanks!

    Raul Guerrero
    http://jimi.mx

    1 Reply Last reply
    0
    • A Offline
      A Offline
      andre
      wrote on last edited by
      #2

      The important part is the
      [quote]
      but noone has come around to it[/quote]

      AFAIK, that is still the current status. Perhaps you did notice that there have been some changes at Nokia too in the meantime, including closing of the Brisbane office where a lot Quick was developed.

      1 Reply Last reply
      0
      • R Offline
        R Offline
        raulgd
        wrote on last edited by
        #3

        Yeah, it was a really sad day for me when I found out that the Brisbane office was being closed, there were some really talented engineers working there and were adding a lot of cool stuff to Quick.

        well, I guess that's that, no binary QML until further notice.

        I would contribute, but I'm not familiar enough with the Qt source code... I peeked at some stuff once (the network library) trying to understand some async handling, but it was like reading APL code, there's some really black voodoo under the covers, and I feel that the documentation is lacking on how the core works.

        Also, if there was a way to find out where that part of the code was being worked, maybe we can all do our part and try to finish it up, according to the post, the code is done, and the part that needs to be finished is the build process.

        Raul Guerrero
        http://jimi.mx

        1 Reply Last reply
        0
        • L Offline
          L Offline
          lgeyer
          wrote on last edited by
          #4

          If you really want to work on this just pop in at #qt-labs or development@qt-project.org; people will be more the willingly to help you.

          1 Reply Last reply
          0
          • R Offline
            R Offline
            raulgd
            wrote on last edited by
            #5

            I can't go into #qt-labs because the proxy at work has all IRC access blocked, so I'll have to check how to subscribe to development@qt-project.org and ask around

            Raul Guerrero
            http://jimi.mx

            1 Reply Last reply
            0
            • T Offline
              T Offline
              twsimpson
              wrote on last edited by
              #6

              freenode listens on ports 6665, 6666, 6667, 6697 (SSL only), 7000 (SSL only), 7070 (SSL only), 8000, 8001 and 8002, so perhaps you can get around the proxy with one of those ports. ref: http://www.freenode.net/irc_servers.shtml

              1 Reply Last reply
              0
              • T Offline
                T Offline
                twsimpson
                wrote on last edited by
                #7

                oh, there's also webchat: http://webchat.freenode.net/ which should tunnel everything over http

                1 Reply Last reply
                0
                • R Offline
                  R Offline
                  raulgd
                  wrote on last edited by
                  #8

                  nope,

                  Other ports don't work, as it's a web proxy, so only 80 and 443 are open. And the webchat.freenode.net is blocked.

                  I really hate web coat proxies, I feel like a f*cking kid being supervised when doing my homework, but hey, it's the only job available at the moment

                  Raul Guerrero
                  http://jimi.mx

                  1 Reply Last reply
                  0
                  • T Offline
                    T Offline
                    twsimpson
                    wrote on last edited by
                    #9

                    well, in case you haven't found it yet, you can subscribe to the mailing list from http://lists.qt-project.org/mailman/listinfo/development

                    1 Reply Last reply
                    0
                    • R Offline
                      R Offline
                      raulgd
                      wrote on last edited by
                      #10

                      thanks!

                      Actually I was about to look for it

                      Raul Guerrero
                      http://jimi.mx

                      1 Reply Last reply
                      0
                      • A Offline
                        A Offline
                        andre
                        wrote on last edited by
                        #11

                        It's probably not a great idea trying to circumvent company filtering of the internet anyway. I know it's a bitch to work with (learned my lesson on my previous job for not checking on that before I came to work there), but actively trying to get around one may jeapardize your job. If you feel treated like a kid there, first try to convince management to lift the restrictions, at least for the developers (explaining that they are blocking useful resources that can help you be more effective), and if that doesn't work: find another job that does treat you like an adult.

                        1 Reply Last reply
                        0
                        • sierdzioS Offline
                          sierdzioS Offline
                          sierdzio
                          Moderators
                          wrote on last edited by
                          #12

                          As a workaround, you can use QRC to build your QML code into the binary.

                          Internally, QML is compiled into binary data, as this KDAB post neatly explains: "link":http://www.kdab.com/qml-engine-internals-part-1-qml-file-loading/.

                          (Z(:^

                          1 Reply Last reply
                          0
                          • R Offline
                            R Offline
                            raulgd
                            wrote on last edited by
                            #13

                            Thanks for the link @sierdzio

                            But as you can see on the link I posted at the beginning of this thread, there is already code implemented by the trolls to achieve QML binary compilation.

                            The only thing that it says is missing, is the integration into the build system so that when you build an application that has QML code, to be able to transparently compile/deploy without having to do anything funny.

                            The thing is, we have no idea where that code is, or where to start to find out how to finish up on that work.

                            Raul Guerrero
                            http://jimi.mx

                            1 Reply Last reply
                            0
                            • B Offline
                              B Offline
                              bkamps
                              wrote on last edited by
                              #14

                              Anybody has a hint where this code can be found? Binary QML would be perfect (for me ;-))

                              1 Reply Last reply
                              0
                              • R Offline
                                R Offline
                                raulgd
                                wrote on last edited by
                                #15

                                No sorry, I didn't get any response from the mailing lists, and haven't found it myself either, I'll post anything as soon as I know something.

                                Raul Guerrero
                                http://jimi.mx

                                1 Reply Last reply
                                0
                                • B Offline
                                  B Offline
                                  bkamps
                                  wrote on last edited by
                                  #16

                                  Are you also having QML performance issues? The parsing/compiling just takes too long on my platform for relative simple QML files...

                                  1 Reply Last reply
                                  0
                                  • R Offline
                                    R Offline
                                    raulgd
                                    wrote on last edited by
                                    #17

                                    Not really, but that depends on many factors, from the way you write your scripts, if you have bindings between QML and C++, etc.

                                    But I guess that's a topic for a different forum thread, you should ask on the Qt Quick forums

                                    Raul Guerrero
                                    http://jimi.mx

                                    1 Reply Last reply
                                    0
                                    • M Offline
                                      M Offline
                                      mlong
                                      wrote on last edited by
                                      #18

                                      I've been looking at this as well lately, but also don't have anything solid to report.

                                      Software Engineer
                                      My views and opinions do not necessarily reflect those of anyone -- living or dead, real or fictional -- in this universe or any other similar multiverse node. Void where prohibited. Your mileage may vary. Caveat emptor.

                                      1 Reply Last reply
                                      0
                                      • L Offline
                                        L Offline
                                        lgeyer
                                        wrote on last edited by
                                        #19

                                        [quote author="Raul" date="1348255816"]I didn't get any response from the mailing lists...[/quote]

                                        Can you link to the thread? I must have missed it.

                                        1 Reply Last reply
                                        0
                                        • C Offline
                                          C Offline
                                          chriadam
                                          wrote on last edited by
                                          #20

                                          Hi,

                                          It's not quite as simple as Alan said in his original post in that poll thread, unfortunately.
                                          There are a couple of issues.

                                          The first is obvious: pointers. The current QML compiler produces compiled data which includes pointers (to type/property caches which can be used to generate QMetaObjects when required), and possibly other things (it's been a few weeks since I looked at the code, and my memory is getting fuzzy already ;-)

                                          Obviously, this would need to change, to using an integer ID, or some other hash key.

                                          The second is less obvious: mmapability. If the compiler output isn't directly mmapable, but instead write it out as some structure which can be read in via QIODevice, you'd probably actually lose time, since it's so inefficient. If it is mmapable, that'd be magic - but then you have platform specificness creeping into your code. That's not a problem (indeed, with the Bundle support that was added to QtQuick2, it's possible that in the future, application developers could provide per-platform precompiled typedata in the bundle, which could be mmaped in as required instead of a compilation step).

                                          In the end, it's certainly possible to implement, but no-one has, yet. It's a fair bit of work to get right, in my opinion - and it's the sort of thing that you really want to get right the first time.

                                          Also, instantiation will, in any event, dominate parsing/compilation in any performance benchmarks, I think.

                                          Cheers,
                                          Chris.

                                          1 Reply Last reply
                                          0

                                          • Login

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • Users
                                          • Groups
                                          • Search
                                          • Get Qt Extensions
                                          • Unsolved