Introduce new tree compiler

Untitled document

Another step forward to highly optimized applications based on qooxdoo: I would like to introduce the tree "compiler". The tree compiler is able to "compile" a syntax tree (generated by treegenerator.py which uses the tokenizer.py) back to optimized JavaScript code. Its feature set is comparable to the old compiler, which was directly based on the result of the tokenizer.py script. It completely removes comments, whitespaces and other optional stuff from the original JavaScript code.

This tree compiler is an important step, because it will allow us to do the following awesome things in the future:

  • Remove complete methods (debug statements, ...)
  • Remove cross-browser constructions and generate a version for each browser/engine.
  • Compress variable names
  • Lay out strings and reduce usage of simple constants (like "auto", "100%", ...) for considerable IE performance improvements
  • Obfuscate the whole application (variable, function and class names)

etc.

Now the interesting part: The tree compiler is the default from now on. It is already available in SVN and will be in the final release of qooxdoo 0.6. The tree compiler was tested against qooxdoo and another big internal project so we think it's quite stable already. It may not be free of bugs however, but I'm happy to fix bugs as fast as you can report them ;)

If you have problems with this new compiler, you can use the old one using the "--use-token-compiler" argument (generator.py). Each Makefile which is included in qooxdoo, has a new variable (OLDCOMPILER) in the first lines of the file which lets you select the compiler (simply set it to "true").

I hope you enjoy this new era of JavaScript optimization. Kudos to Til - without the treegenerator.py developed by him, qooxdoo would maybe not have seen such a tree-based optimizer.

You can immediately test the new compiler. Its results can also been seen online in the online demos and the API viewer.

For all SDK/source version users: Please make sure to delete the directory ".cache". A simple "make distclean" will do this for you.

qooxdoo 0.6 (Release Candidate 1) available

Untitled document

Many aspects of qooxdoo have been improved to make it an even more professional and complete JavaScript framework.

A lot of issues, that have been brought up and discussed on the mailing list before, have been addressed. Some of the most noticable additions include a qooxdoo-based viewer for the auto-generated API documentation, a more powerful virtual list view and a smart build process that makes optimizing, compressing, linking and deployment of custom applications a snap.

A Release Candidate 1 is now available for easy download. That way people can immediately start to get themselves familiar with the most important improvements.

We would like to thank all users, contributors and fellow developers for their ongoing help and support. Keep up the good work!

Try online demos

Digg this 

Branch “namespaces” discontinued

Untitled document

IMPORTANT: Until recently the major development work towards the next release 0.6 has been done in a development branch named "namespaces". This branch is now discontinued. Its content has been transfered into the SVN trunk.

Future development of qooxdoo will concentrate on changes made in the trunk. Anyone interested in an up-to-date version of the framework should simply checkout the latest revision of the SVN trunk . Clearly, these snapshots are not expected to be stable enough for production use. They are not even supposed to be functional at all. It may happen that the trunk is broken for not only hours (delibaretely) but even days (rather by accident). Think of the trunk as a permanent work-in-progress that after potentially unstable phases finally leads to the next official release.

The content of the previous SVN trunk has been moved to a branch named "legacy_0_5_x". This branch may see some changes, particularly bugfixes and backports of modifications made in the trunk. Please do not expect many substantial improvements in this 0.5 line of qooxdoo, though. There may be a release 0.5.4 sometime, but this clearly depends on user contribution for this now "old" line of qooxdoo.

Please note, that the existing documentation has still to be updated to reflect the switch from the "namespaces" branch to the trunk. Information formerly specific to the "namespaces" branch should now be valid for the trunk.

We are getting closer to qooxdoo 0.6  :-)

Planned Improvements for qooxdoo 0.6

Untitled document

There is an extended update of an older post with respect to new features and modifications that are currently being implemented.

All interested qooxdoo users are welcome to bring themselves up-to-date and are invited to get involved in qooxdoo development. It takes not more than checking-out qooxdoo from a subversion repository and doing a "make" on your shell afterwards.

A couple of significant differences that are being addressed are:

  • Namespaces
  • Documentation
  • Building and Deployment
  • Table
  • Remote Procedure Calls 

 

Control

 

Categories:

Archives:

 
SourceForge.net Logo

Bad Behavior has blocked 635 access attempts in the last 7 days.