QxCompiler - add ES6, faster compilation, and 100% Javascript API to building applications

classic Classic list List threaded Threaded
70 messages Options
1234
Reply | Threaded
Open this post in threaded view
|

Re: QxCompiler - add ES6, faster compilation, and 100% Javascript API to building applications

John Spackman
Hi Stefan

Thanks for the support, Im glad you like it :)

I agree that QxCompiler needs to stay focused on compiling, IMHO generate.py became the swiss army knife of the Qooxdoo toolchain and being written in Python and not as an API made made it opaque (for my purposes, at least)

Generate.py can be replaced for the general case of building apps “real soon now”, I think it needs a command line and continuous compilation and it’s ready (plus testing of course ;) )

In the wider case, there are some features that QxCompiler does not replace, EG API docs and test runner - although I havn’t looked at these yet, both should be fairly straightforward to do but also can be put off for now.

What issues have you had to solve?  I’m open to pull requests ;)

Cheers
John




On 22/02/2016, 19:26, "[hidden email]" <[hidden email]> wrote:

>John,
>
>We really like your approach of the qxcompiler.
>I think it is very important to keep it clean and clear-cut as a tool and not complicate it now. There might be many wishes to do this and that. It is good if not moved too fast before knowing what is best for the subproject.
>
>Your ideas behind is really promising. You have done a fantastic job!
>
>We do believe it is time to retire Generate.py and therefore we would like to see qxcompiler taking over all the job of Generate.py.
>
>Speed, performance, simplicity and added functionality is so far better than Generate.py...(what has been implemented so far)
>We are using it in a smaller subproject of an admin desktop application now and it is getting better and better. We had to solve some issues.
>
>We will soon come back with more feedback when we see it is grounded...
>
>Stefan
>
>> Hi Adrian
>>
>> Then to install all dependencies and run, just do:
>> npm install -g grunt-cli
>> npm install   //installs dependencies listed in package.json into node_modules folder
>> grunt //runs default http-server:dev job
>>
>>  Looking forward to ditch ./generate.py in favor of a simple and faster grunt job!
>>
>> That sounds really cool - I don’t have any experience with grunt but that’s definitely the right progression; any chance you could write a grunt job that would allow exactly that kind of usage, and if so what would you need?  I imagine that you wouldn’t need a command line version of QxCompiler, so long as there is an npm installable package?
>>
>> Cheers
>> John
>>
>>
>
>
>> ------------------------------------------------------------------------------
>> Site24x7 APM Insight: Get Deep Visibility into Application Performance
>> APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
>> Monitor end-to-end web transactions and take corrective actions now
>> Troubleshoot faster and improve end-user experience. Signup Now!
>> http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140
>
>
>> _______________________________________________
>> qooxdoo-devel mailing list
>> [hidden email]
>> https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel
>
>
>
>------------------------------------------------------------------------------
>Site24x7 APM Insight: Get Deep Visibility into Application Performance
>APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
>Monitor end-to-end web transactions and take corrective actions now
>Troubleshoot faster and improve end-user experience. Signup Now!
>http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140
>_______________________________________________
>qooxdoo-devel mailing list
>[hidden email]
>https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel



------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140
_______________________________________________
qooxdoo-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel
Reply | Threaded
Open this post in threaded view
|

Re: QxCompiler - add ES6, faster compilation, and 100% Javascript API to building applications

thron7
In reply to this post by Adrian Haarbach-2


On Mon, Feb 22, 2016 at 6:38 PM, Adrian Haarbach <[hidden email]> wrote:

Then to install all dependencies and run, just do:
npm install -g grunt-cli
npm install   //installs dependencies listed in package.json into node_modules folder
grunt //runs default http-server:dev job


The recompiler and reloader for dev jobs and additionally concatenator and uglifiers/minifiers for dist jobs can also be added as simple grunt tasks. There are lots of plugins for these tasks.

Looking forward to ditch ./generate.py in favor of a simple and faster grunt job!

Just as a quick reminder, as I'm not sure everybody is aware of this:

Until not so long ago the qooxdoo repo had a fair amount of code to utilize Grunt as the new build tool, aiming to replace the Generator. This support has then be cut back to the utmost minimum somewhen last year, but the full code is still available in the 'next' repo,

  https://github.com/qooxdoo/next/tree/master/tool/grunt

It already implemented the core Generator jobs in JS, making use of the Node ecosystem of libraries. IIRC this included 'source' and 'build' jobs, together with dependency analysis, resource handling and loader generation. Jobs not already implemented in JS are transparently passed through to the old  Generator, allowing for a stepwise replacement of the Python implementation while still providing the full functionality all the time.

I could see Grunt being a command-line frontend for the jobs, with QxCompiler remaining a pure API-based library which is included as a dependency and utilized from Grunt files.

Even if you feel the code in qooxdoo.next is too 'Grunt-heavy', or would just like to hack on an all-new, own version of Grunt support (which I can always understand ;-)), the code in qooxdoo.next might be a good inspiration to draw from.

T.

------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140
_______________________________________________
qooxdoo-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel
dev
Reply | Threaded
Open this post in threaded view
|

Re: QxCompiler - add ES6, faster compilation, and 100% Javascript API to building applications

dev
Thomas,

> I could see Grunt being a command-line frontend for the jobs, with
> QxCompiler remaining a pure API-based library which is included as a
> dependency and utilized from Grunt files.

I agree completely with you in this! Don't invent the wheel again!

> Even if you feel the code in qooxdoo.next is too 'Grunt-heavy', or would
> just like to hack on an all-new, own version of Grunt support (which I can
> always understand ;-)), the code in qooxdoo.next might be a good
> inspiration to draw from.

No new hack. Reuse what already exists because it is good for what it was done. I have looked at it. It can be used here.

Stefan

> T.


> ------------------------------------------------------------------------------
> Site24x7 APM Insight: Get Deep Visibility into Application Performance
> APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
> Monitor end-to-end web transactions and take corrective actions now
> Troubleshoot faster and improve end-user experience. Signup Now!
> http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140


> _______________________________________________
> qooxdoo-devel mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel



------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140
_______________________________________________
qooxdoo-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel
Reply | Threaded
Open this post in threaded view
|

Re: QxCompiler - add ES6, faster compilation, and 100% Javascript API to building applications

mitya
In reply to this post by dev
Stefan, Adrian,

Quick googling shows that there are several grunt plugins around that
allow to execute tasks simultaneously: grunt-parallel, grunt-
parallelize, grunt-concurrent. The latter looks maintained and
promising in all the ways. As a proof of concept, could someone try to
run, say, two HTTP servers under Grunt? You're guys are much more
experienced in Grunt than me, so it will take significantly less time
:) If it works, that would mean we already have a mechanism to run
QxCompiler's continuous recompiler job with HTTP server in a single
Grunt instance.

Dimitri

> Dimitri,
>
> Independently, of course...
>
> Stefan
>
> >
> > Adrian,
> >
> > Sounds pretty cool! Unfortunately there's one missing link here -
> > QxCompiler is not a Grunt task yet.
> >
> > BTW, is Grunt capable of running two or more background tasks
> > simultaneously? eg. QxCompiler job + web server
> > Or do we need to launch them in separate Grunt instances?
> >
> > Dimitri
> >
> >
> > В Пн, 22/02/2016 в 18:38 +0100, Adrian Haarbach пишет:
> > >
> > > Concerning the webserver, I am using Grunt and the grunt-http-
> > > server
> > > plugin, which is based on node.js and much faster than python's
> > > SimpleHttpServer in serving files.
> > > Also, it allows to specify a proxy where it redirects all
> > > requests it
> > > cannot resolve locally (e.g requests to tomcat). Really useful
> > > when
> > > developing the web part of an application while the backend runs
> > > somewhere remotely.
> > >
> > > qooxdoo already comes with a package.json and Gruntfile.js by
> > > default
> > > now, I just edited them as below to make the webserver work:
> > >
> > > package.json:
> > > {
> > >   "name": "project",
> > >   "version": "0.1.0",
> > >   "repository": {},
> > >   "devDependencies": {
> > >     "grunt": "~0.4.2",
> > >     "grunt-http-server": "^1.13.0"
> > >   }
> > >   "license": "Apache-2.0"
> > > }
> > >
> > >
> > > Gruntfile.js:
> > > module.exports = function(grunt) {
> > >   grunt.initConfig({   
> > >       'http-server': {
> > >    
> > >           'dev': {
> > >    
> > >               // the server root directory 
> > >               root: ".",
> > >    
> > >               // the server port, can also be written as a
> > > function,
> > > e.g. 
> > >               // port: function() { return 8282; } 
> > >               port: 9999,
> > >    
> > >               // the host ip address 
> > >               // If specified to, for example, "127.0.0.1" the
> > > server
> > > will only be available on that ip. 
> > >               // Specify "0.0.0.0" to be available everywhere 
> > >               host: "127.0.0.1",
> > >    
> > >               // server default file extension 
> > >               ext: "html",
> > >    
> > >               // run in parallel with other tasks 
> > >               runInBackground: false,
> > >    
> > >               // Proxies all requests which can't be resolved
> > > locally
> > > to the given url 
> > >               // Note this this will disable 'showDir' 
> > >               proxy: "http://mybackendserver.com",
> > >           } 
> > >       }
> > >   });
> > >   // // 3. Where we tell Grunt we plan to use this plug-in.
> > >   grunt.loadNpmTasks('grunt-http-server');
> > >   // // 4. Where we tell Grunt what to do when we type "grunt"
> > > into
> > > the terminal.
> > >   grunt.registerTask('default', ['http-server:dev']);
> > > };
> > >
> > > Then to install all dependencies and run, just do:
> > > npm install -g grunt-cli
> > > npm install   //installs dependencies listed in package.json into
> > > node_modules folder
> > > grunt //runs default http-server:dev job
> > >
> > >
> > > The recompiler and reloader for dev jobs and additionally
> > > concatenator and uglifiers/minifiers for dist jobs can also be
> > > added
> > > as simple grunt tasks. There are lots of plugins for these tasks.
> > >
> > > Looking forward to ditch ./generate.py in favor of a simple and
> > > faster grunt job!
> > >
> > > Adrian
> > >
> > >
> > > 2016-02-22 17:58 GMT+01:00 Dimitri <[hidden email]>:
> > > >
> > > > Feature request: background recompiler + web server + reloader
> > > >
> > > > In qooxdoo development, it's common practice to use a micro
> > > > HTTP
> > > > server to run applications, eg. python -m SimpleHTTPServer,
> > > > generate.py source-server, editor/IDE embedded etc. This is
> > > > because
> > > > of limitations of file:/// addressing scheme and CORS/XHR
> > > > issues
> > > > that it has.
> > > > QxCompiler is going to introduce another background process for
> > > > live code transpiling. Why not combining these two, so that the
> > > > developer doesn't have to launch two separate processes?
> > > > It should be pretty easy to serve static contents from Node. In
> > > > the
> > > > future, automatic application reloading could be implemented,
> > > > something that is available now with generate.py watch +
> > > > source-
> > > > server-reload jobs.
> > > >
> > > > Dimitri
> > > >
> > > > >
> > > > > Hi all
> > > > >
> > > > > There is a first release of my QxCompiler that adds ES6 to
> > > > > Qooxdoo applications and replaces the generate.py toolchain
> > > > > with
> > > > > a faster, 100% Javascript tool that is easily extensible.
> > > > >
> > > > > You can find the first release at GitHub here: https://github
> > > > > .com
> > > > > /johnspackman/qxcompiler
> > > > >
> > > > > It’s an alpha release, but something that’s been in
> > > > > development
> > > > > for a while now and which I’m starting to build into my
> > > > > production servers.  
> > > > >
> > > > > I’m very open to pull requests or collaboration, and keen to
> > > > > see
> > > > > this become a useful tool for myself as well as others so any
> > > > > questions etc please ask.
> > > > >
> > > > > Regards
> > > > > John
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > -----------------------------------------------------------
> > > > > ----
> > > > > ---------------
> > > > > Site24x7 APM Insight: Get Deep Visibility into Application
> > > > > Performance
> > > > > APM + Mobile APM + RUM: Monitor 3 App instances at just
> > > > > $35/Month
> > > > > Monitor end-to-end web transactions and take corrective
> > > > > actions
> > > > > now
> > > > > Troubleshoot faster and improve end-user experience. Signup
> > > > > Now!
> > > > > http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4
> > > > > 140
> > > > > _______________________________________________
> > > > > qooxdoo-devel mailing list
> > > > > [hidden email]
> > > > > https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel
> > > > -------------------------------------------------------------
> > > > ----
> > > > -------------
> > > > Site24x7 APM Insight: Get Deep Visibility into Application
> > > > Performance
> > > > APM + Mobile APM + RUM: Monitor 3 App instances at just
> > > > $35/Month
> > > > Monitor end-to-end web transactions and take corrective actions
> > > > now
> > > > Troubleshoot faster and improve end-user experience. Signup
> > > > Now!
> > > > http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/414
> > > > 0
> > > > _______________________________________________
> > > > qooxdoo-devel mailing list
> > > > [hidden email]
> > > > https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel
> > > >
> > > ---------------------------------------------------------------
> > > ----
> > > -----------
> > > Site24x7 APM Insight: Get Deep Visibility into Application
> > > Performance
> > > APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
> > > Monitor end-to-end web transactions and take corrective actions
> > > now
> > > Troubleshoot faster and improve end-user experience. Signup Now!
> > > http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140
> > > _______________________________________________
> > > qooxdoo-devel mailing list
> > > [hidden email]
> > > https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel
> > -----------------------------------------------------------------
> > -------------
> > Site24x7 APM Insight: Get Deep Visibility into Application
> > Performance
> > APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
> > Monitor end-to-end web transactions and take corrective actions now
> > Troubleshoot faster and improve end-user experience. Signup Now!
> > http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140
> > _______________________________________________
> > qooxdoo-devel mailing list
> > [hidden email]
> > https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel
>
>
> -------------------------------------------------------------------
> -----------
> Site24x7 APM Insight: Get Deep Visibility into Application
> Performance
> APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
> Monitor end-to-end web transactions and take corrective actions now
> Troubleshoot faster and improve end-user experience. Signup Now!
> http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140
> _______________________________________________
> qooxdoo-devel mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel

------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140
_______________________________________________
qooxdoo-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel
Reply | Threaded
Open this post in threaded view
|

Re: QxCompiler - add ES6, faster compilation, and 100% Javascript API to building applications

John Spackman
In reply to this post by dev
Thomas, that’s interesting about the grunt development in next, I had no idea it had gone so far.

Stefan, I’ve been thinking about not reinventing the wheel, esp. in light of Thomas’ comments, and my thought is that QxCompiler should be able to produce an application from source, from the command line and the use of Grunt (or Gulp, or brocolli, etc) should only be required for more advanced, custom tasks.

My rationale for this is that QxCompiler only needs a simple command line in order to achieve this (for new and experienced users), and does not require any kind of third-party build tool with all the learning that is required to get started with one.

One thing I would recommend is to look at dropping the config.json support altogether (and Python); with the compiler functionality being replaced by QxCompiler, most of what’s left is definitely in the area of grunt/gulp/etc; eg generating API docs, generating complete demo apps, distribution kits, etc.

Although I can have a look at Grunt, I have no experience with it and my focus is on QxCompiler at the moment; briefly looking through the next master/tool/grunt repo, the source looks interesting but will probably take some time to get to grips with Grunt to really use.  

Is this something you could help with?  Like QxCompiler, it could be developed as a separate contrib and I’d be happy to help with parts of the QxCompiler API to support you.

Regards
John




On 22/02/2016, 21:10, "[hidden email]" <[hidden email]> wrote:

>Thomas,
>
>> I could see Grunt being a command-line frontend for the jobs, with
>> QxCompiler remaining a pure API-based library which is included as a
>> dependency and utilized from Grunt files.
>
>I agree completely with you in this! Don't invent the wheel again!
>
>> Even if you feel the code in qooxdoo.next is too 'Grunt-heavy', or would
>> just like to hack on an all-new, own version of Grunt support (which I can
>> always understand ;-)), the code in qooxdoo.next might be a good
>> inspiration to draw from.
>
>No new hack. Reuse what already exists because it is good for what it was done. I have looked at it. It can be used here.
>
>Stefan
>
>> T.
>
>
>> ------------------------------------------------------------------------------
>> Site24x7 APM Insight: Get Deep Visibility into Application Performance
>> APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
>> Monitor end-to-end web transactions and take corrective actions now
>> Troubleshoot faster and improve end-user experience. Signup Now!
>> http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140
>
>
>> _______________________________________________
>> qooxdoo-devel mailing list
>> [hidden email]
>> https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel
>
>
>
>------------------------------------------------------------------------------
>Site24x7 APM Insight: Get Deep Visibility into Application Performance
>APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
>Monitor end-to-end web transactions and take corrective actions now
>Troubleshoot faster and improve end-user experience. Signup Now!
>http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140
>_______________________________________________
>qooxdoo-devel mailing list
>[hidden email]
>https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel



------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140
_______________________________________________
qooxdoo-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel
dev
Reply | Threaded
Open this post in threaded view
|

Re: QxCompiler - add ES6, faster compilation, and 100% Javascript API to building applications

dev
John,

> Thomas, that’s interesting about the grunt development in next, I had no idea it had gone so far.
>
> Stefan, I’ve been thinking about not reinventing the wheel, esp. in light of Thomas’ comments, and my thought is that QxCompiler should be able to produce an application from source, from the command line and the use of Grunt (or Gulp, or brocolli, etc) should only be required for more advanced, custom tasks.
>
> My rationale for this is that QxCompiler only needs a simple command line in order to achieve this (for new and experienced users), and does not require any kind of third-party build tool with all the learning that is required to get started with one.

I agree, and I look at it as Thomas, qxcompiler is a library, which can be activated by a small commandline interface or through the whole Builder/Generate.

> One thing I would recommend is to look at dropping the config.json support altogether (and Python); with the compiler functionality being replaced by QxCompiler, most of what’s left is definitely in the area of grunt/gulp/etc; eg generating API docs, generating complete demo apps, distribution kits, etc.

Yes, for the compiler with a good API activating the same functionality at will, but not for the whole builder where config.json becomes like a Makefile and makes things easier that way.

> Although I can have a look at Grunt, I have no experience with it and my focus is on QxCompiler at the moment; briefly looking through the next master/tool/grunt repo, the source looks interesting but will probably take some time to get to grips with Grunt to really use.  
>
> Is this something you could help with?  Like QxCompiler, it could be developed as a separate contrib and I’d be happy to help with parts of the QxCompiler API to support you.

We can look at it and try to replace all python with grunt integration further on the line the core team did before.
I can back on this asap.

Stefan

>
> Regards
> John
>
>
>
>
> On 22/02/2016, 21:10, "[hidden email]" <[hidden email]> wrote:
>
>>Thomas,
>>
>>> I could see Grunt being a command-line frontend for the jobs, with
>>> QxCompiler remaining a pure API-based library which is included as a
>>> dependency and utilized from Grunt files.
>>
>>I agree completely with you in this! Don't invent the wheel again!
>>
>>> Even if you feel the code in qooxdoo.next is too 'Grunt-heavy', or would
>>> just like to hack on an all-new, own version of Grunt support (which I can
>>> always understand ;-)), the code in qooxdoo.next might be a good
>>> inspiration to draw from.
>>
>>No new hack. Reuse what already exists because it is good for what it was done. I have looked at it. It can be used here.
>>
>>Stefan
>>
>>> T.
>>
>>
>>> ------------------------------------------------------------------------------
>>> Site24x7 APM Insight: Get Deep Visibility into Application Performance
>>> APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
>>> Monitor end-to-end web transactions and take corrective actions now
>>> Troubleshoot faster and improve end-user experience. Signup Now!
>>> http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140
>>
>>
>>> _______________________________________________
>>> qooxdoo-devel mailing list
>>> [hidden email]
>>> https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel
>>
>>
>>
>>------------------------------------------------------------------------------
>>Site24x7 APM Insight: Get Deep Visibility into Application Performance
>>APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
>>Monitor end-to-end web transactions and take corrective actions now
>>Troubleshoot faster and improve end-user experience. Signup Now!
>>http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140
>>_______________________________________________
>>qooxdoo-devel mailing list
>>[hidden email]
>>https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel
>
>
>
> ------------------------------------------------------------------------------
> Site24x7 APM Insight: Get Deep Visibility into Application Performance
> APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
> Monitor end-to-end web transactions and take corrective actions now
> Troubleshoot faster and improve end-user experience. Signup Now!
> http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140
> _______________________________________________
> qooxdoo-devel mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel



------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140
_______________________________________________
qooxdoo-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel
Reply | Threaded
Open this post in threaded view
|

Re: QxCompiler - add ES6, faster compilation, and 100% Javascript API to building applications

John Spackman
On 23/02/2016, 11:33, "[hidden email]" <[hidden email]> wrote:



>We can look at it and try to replace all python with grunt integration further on the line the core team did before.
>I can back on this asap.
>
>Stefan
>

Fantastic :)  

Cheers
John






------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140
_______________________________________________
qooxdoo-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel
Reply | Threaded
Open this post in threaded view
|

Re: QxCompiler - add ES6, faster compilation, and 100% Javascript API to building applications

Defero
In reply to this post by John Spackman
Hi John,

so i've been thinking how i would start creating the part loader which should be "easy" to create with how you set up the things.
But for it to fit our purpose here, it asks that only a single part/library can be recompiled.

I'm not sure if there is a nice way of achieving this. In case of two parts have the same dependency but are not aware of each other. Which in most UI qx classes i think shouldn't be an issue if they are compiled/loaded twice.
But i'm sure there are plenty of classes that have to strictly be loaded once onto dom.

Do you think there is a way to achieve this without cross-referencing every part and adding to boot the same dependencies.

Regards,
Defero
dev
Reply | Threaded
Open this post in threaded view
|

Re: QxCompiler - add ES6, faster compilation, and 100% Javascript API to building applications

dev
Hi Defero,

You need to check the following for dynamic loading:

1. if the part has already been loaded (version, build, date etc)
 - different versions of the same part might be loadable at the same time
 - different language parts
 - etc
2. if there are cross referencing
3. circle referencing
4. the integrity ...the questions is what is necessary...?
5. some kind of lazy loading to preserve memory and decrease loading time

...a list at runtime...how should it else be done?

Stefan


> Hi John,
>
> so i've been thinking how i would start creating the part loader which
> should be "easy" to create with how you set up the things.
> But for it to fit our purpose here, it asks that only a single part/library
> can be recompiled.
>
> I'm not sure if there is a nice way of achieving this. In case of two parts
> have the same dependency but are not aware of each other. Which in most UI
> qx classes i think shouldn't be an issue if they are compiled/loaded twice.
> But i'm sure there are plenty of classes that have to strictly be loaded
> once onto dom.
>
> Do you think there is a way to achieve this without cross-referencing every
> part and adding to boot the same dependencies.
>
> Regards,
> Defero
>
>
>
> --
> View this message in context: http://qooxdoo.678.n2.nabble.com/QxCompiler-add-ES6-faster-compilation-and-100-Javascript-API-to-building-applications-tp7587992p7588112.html
> Sent from the qooxdoo mailing list archive at Nabble.com.
>
> ------------------------------------------------------------------------------
> Site24x7 APM Insight: Get Deep Visibility into Application Performance
> APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
> Monitor end-to-end web transactions and take corrective actions now
> Troubleshoot faster and improve end-user experience. Signup Now!
> http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140
> _______________________________________________
> qooxdoo-devel mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel



------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140
_______________________________________________
qooxdoo-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel
Reply | Threaded
Open this post in threaded view
|

Re: QxCompiler - add ES6, faster compilation, and 100% Javascript API to building applications

John Spackman
In reply to this post by Defero
Hi Defero
 
Sorry for the delay in getting back to you, it's been a very busy week
 
I've not used parts in Qooxdoo, but AIUI you associate classes with a named part, and then use the API at runtime to force the loading of the part; how the compiler brings together for a part would be the same as for a "normal" application in that it starts with a list of classes and finds their dependencies.  The difference with parts would be that the list of classes in a part would exclude anything already loaded.
 
Given that a build target collects multiple classes into a few files, then either (a) each class can exist in exactly one file, or (b) the merged files have to detect whether a class already exists and not call qx.Class.define().  Obviously option (a) means the developer has to have a more detailed knowledge of dependencies, but (b) would make life a lot easier.
 
Given also that which parts get loaded in what order would depend on what a user does, it seems to me that (b) may even be a requirement?  I've not thought this through yet, but I'm wondering if you can analyse the overlapping sets so that for, say, 5 parts you might end up with say, 20 files - ie broken down into enough granularity that when you request a specific part, and the partloader knows what parts are already loaded, there is a specific set of files to load without there being the possibility of duplicate classes.
 
Im not sure if that helps, but it might be good to start with looking at what generate.py does now?  Lets keep the conversation going though, I'd happily talk through ideas :)
 
Cheers
John
 

From: "Defero" <[hidden email]>
Sent: Thursday, February 25, 2016 1:26 PM
To: [hidden email]
Subject: Re: [qooxdoo-devel] QxCompiler - add ES6, faster compilation, and 100% Javascript API to building applications
 
Hi John,

so i've been thinking how i would start creating the part loader which
should be "easy" to create with how you set up the things.
But for it to fit our purpose here, it asks that only a single part/library
can be recompiled.

I'm not sure if there is a nice way of achieving this. In case of two parts
have the same dependency but are not aware of each other. Which in most UI
qx classes i think shouldn't be an issue if they are compiled/loaded twice.
But i'm sure there are plenty of classes that have to strictly be loaded
once onto dom.

Do you think there is a way to achieve this without cross-referencing every
part and adding to boot the same dependencies.

Regards,
Defero



--
View this message in context: http://qooxdoo.678.n2.nabble.com/QxCompiler-add-ES6-faster-compilation-and-100-Javascript-API-to-building-applications-tp7587992p7588112.html
Sent from the qooxdoo mailing list archive at Nabble.com.

------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140
_______________________________________________
qooxdoo-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel
 

------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140
_______________________________________________
qooxdoo-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel
1234