Change 20100302-hqm-S by [email protected] on 2010-03-02 14:46:56 EST
    in /Users/hqm/openlaszlo/trunk
    for http://svn.openlaszlo.org/openlaszlo/trunk

Summary: support for incremental compilation mode of as3 compiler

New Features:

Bugs Fixed:

Technical Reviewer: ptw
QA Reviewer: max
Doc Reviewer: (pending)

Documentation:

Release Notes:

Overview:

The swf10 compiler path has been modified to work compatibly with
flex's "incremental" compilation mode.  This is done by only rewriting
an intermediate .as file if the corresponding source .lzx file from
which it came has been modified more recently.

The Flex command shell tool (fcsh), which runs the flex compiler
incrementally, has been modified to run the Laszlo compiler in
incremental mode as well.

A typical debug session works like this

run our modified fcsh:

  Adobe Flex Compiler SHell (fcsh)
  Version 4.0.0 build 6898
  Copyright (c) 2004-2007, 2010 Adobe Systems, Inc. All rights reserved.

  (fcsh) lzc --runtime=swf9 main.lzx
   ...
   lzc returned /Users/hqm/openlaszlo/trunk/test/inc/main.swf9.swf
   fcsh: Assigned 1 as the compile target id

  (fcsh) lcompile 1
  writing output to /Users/hqm/openlaszlo/trunk/test/inc/main.swf9.swf

[make some changes to lzx files]

  (fcsh) lcompile 1
  writing output to /Users/hqm/openlaszlo/trunk/test/inc/main.swf9.swf
Loading configuration file 
/Users/hqm/openlaszlo/trunk/WEB-INF/frameworks/flex-config.xml
Detected configuration changes. Recompile...
Recompile: 
/private/var/folders/xh/xhmdrA41HCKjjiditeqN1k+++TI/-Tmp-/lzswf9/build/main/$lzc$class_barclass.as
Reason: Forced recompilation.
Recompile: 
/private/var/folders/xh/xhmdrA41HCKjjiditeqN1k+++TI/-Tmp-/lzswf9/build/main/$lzc$class_m7.as
Reason: Forced recompilation.
Files changed: 0 Files affected: 11
/var/folders/xh/xhmdrA41HCKjjiditeqN1k+++TI/-Tmp-/lzswf9/./build/main/app.swf 
(117958 bytes)
renaming 
/var/folders/xh/xhmdrA41HCKjjiditeqN1k+++TI/-Tmp-/lzswf9/./build/main/app.swf 
to /Users/hqm/openlaszlo/trunk/test/inc/main.swf9.swf


Details:
    
The modified files for the flex fcsh tool are checked in to the /vendor branch.

WEB-INF/lps/server/src/org/openlaszlo/compiler/Main.java:
The LZX compiler (lzc) supports two new args, --incremental and --lzxonly

  --lzxonly causes intermediate .as files to be written, but the flex
    compiler is not called

  --incremental causes intermediate .as files to only be written when
    the corresponding source lzx files have changed

I removed old code which had a 'incremental' compiler option which was only 
settable from
the lps.properties file. 


WEB-INF/lps/config/lps.properties:
  remove 'incremental' property, it is now an lzc optional arg


WEB-INF/lps/server/src/org/openlaszlo/sc/SWF9External.java:

Add option for "emit_as3_only", which will emit .as files, but not call flex 
compiler

Add support for incremental mode, which only rewrites a .as file if the 
corresponding .lzx file
is newer.

WEB-INF/lps/server/src/org/openlaszlo/sc/TranslationUnit.java:
  Add accessor to find the source lzx filename for a tunit.

WEB-INF/lps/server/src/org/openlaszlo/compiler/SWF9Writer.java


Tests:

1) Compile demos/lzpix/app.lzx using fcsh
2) modify one or more .lzx files in the app
3) rerun compilation in incremental mode ('lcompile' command)
4) verify that modified class or instance-class files are recompiled and linked



Files:
M       WEB-INF/lib/fcsh.jar
M       WEB-INF/bin/fcsh
M       WEB-INF/lps/config/lps.properties
M       WEB-INF/lps/server/src/org/openlaszlo/sc/SWF9External.java
M       WEB-INF/lps/server/src/org/openlaszlo/sc/SWF9Generator.java
M       WEB-INF/lps/server/src/org/openlaszlo/sc/Compiler.java
M       WEB-INF/lps/server/src/org/openlaszlo/sc/ParseTreePrinter.java
M       WEB-INF/lps/server/src/org/openlaszlo/sc/TranslationUnit.java
M       
WEB-INF/lps/server/src/org/openlaszlo/compiler/CompilationEnvironment.java
M       WEB-INF/lps/server/src/org/openlaszlo/compiler/Compiler.java
M       WEB-INF/lps/server/src/org/openlaszlo/compiler/Main.java
M       WEB-INF/lps/server/src/org/openlaszlo/compiler/SWF9Writer.java

Changeset: http://svn.openlaszlo.org/openlaszlo/patches/20100302-hqm-S.tar

_______________________________________________
Laszlo-reviews mailing list
[email protected]
http://www.openlaszlo.org/mailman/listinfo/laszlo-reviews

Reply via email to