fixed bug with listing of includes files in the lzo, modified
test case to
cover it
Change 20100520-hqm-Q by [email protected] on 2010-05-20
01:30:13 EDT
in /Users/hqm/openlaszlo/trunk
for http://svn.openlaszlo.org/openlaszlo/trunk
Summary: make lzo files include platform-specific library object
code
New Features:
Bugs Fixed:
Technical Reviewer: ptw
QA Reviewer: max
Doc Reviewer: (pending)
Documentation:
Release Notes:
Overview:
+ lzo files are now implemented as zip archives, and contain
optional
.swc (flash 10) and .js (dhtml) object code files
When targeting swf10 and dhtml, the if the compiler sees the
platform-specific entry in the lzo file, it will link
against it directly, rather than compiling the lzs script code
block from
the lzo.
+ new comand line arg added to lzc, "--lzolibs". Takes a comma
separated list of external lzo files to link against when building
your own lzo library. This will be needed by the swf10 backend when
resolving externals from other swf-10-binary-compiled lzo libs
(like maybe
the lz components library someday).
Details:
*** utils/FileUtils.java:
makeXMLReaderForFile() needs to understand new zipfile format for
lzo
files. This scans through and returns the generic LZX file
portion of
the lib (as opposed to the optional binary-runtime-specific
entries)
*** /sc/JavascriptGenerator.java:
Add a ';' to the end of a block of javascript output, if it does
not
already have one
*** sc/SWF10Compiler.java:
Don't generate application framework boilerplate code if we're
just
building a library.
*** sc/SWF9External.java (revision 16441)
Make compileTranslationUnits() accept optional list of external
swc libs
to link against
*** sc/DHTMLCompiler.java (revision 16441)
Add hook to allow copying raw byte stream to output, so we can
insert
DHTML-specific precompiled javascript from lzo lib if available.
*** compiler/ObjectWriter.java (working copy)
added schemaDone() API, called by compiler when the schema has been
computed (all classes
have been entered into class map)
*** compiler/DHTMLWriter.java (working copy)
If an lzo is being used and is contains a fully-compiled DHTML
object
file, append that to
the compiler output verbatim.
*** compiler/CanvasCompiler.java (working copy)
moved code that adds Flash8 LFC to the SWFWriter
*** compiler/LibraryWriter.java (working copy)
Write out zipfile format archives for lzo libraries.
If runtime targets are specified (e.g., "lzc -c --
runtimes=swf10,dhtml"),
we create ObjectWriters for SWF10 and/or
DHTML, so that we compile runtime-specific object code and store
it in
entries in the lzo. This will speed up compiling/linking lzo's for
DHTML and SWF10.
Calls to addScript are forwarded to the runtime-specific
ObjectWriters
if they are present.
Tests:
ant lztest
smokecheck swf10/dhtml
amazon in dhtml/swf10
test case in test/lzotest: compile the libraries below with these
flags
lzc -c --runtime=swf10,dhtml extclass.lzx
lzc -c --runtime=swf10,dhtml libdir/lib1.lzx
## test compiling a swf10 lzo which subclasses something from an
external lzo library
lzc -c --runtime=swf10,dhtml --lzolibs extclass.lzo libdir/
lib2.lzx
then compile main app for all runtimes
lzc --runtime=swf8 main.lzx
lzc --runtime=swf10 main.lzx
lzc --runtime=dhtml main.lzx
also compile via the LPS server
http://127.0.0.1:8080/trunk/test/testlzo/main.lzx?lzr=swf10&debug=true
http://127.0.0.1:8080/trunk/test/testlzo/main.lzx?lzr=swf10
Files:
A test/testlzo
A test/testlzo/main.lzx
A test/testlzo/extclass.lzx
A test/testlzo/libdir
A test/testlzo/libdir/lib1.lzx
A test/testlzo/libdir/lib2.lzx
A test/testlzo/libdir/myinc.lzx
M WEB-INF/lps/server/src/org/openlaszlo/utils/FileUtils.java
M WEB-INF/lps/server/src/org/openlaszlo/sc/
JavascriptGenerator.java
M WEB-INF/lps/server/src/org/openlaszlo/sc/SWF10Compiler.java
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/DHTMLCompiler.java
M WEB-INF/lps/server/src/org/openlaszlo/sc/Compiler.java
M WEB-INF/lps/server/src/org/openlaszlo/compiler/
ObjectWriter.java
M WEB-INF/lps/server/src/org/openlaszlo/compiler/
DHTMLWriter.java
M WEB-INF/lps/server/src/org/openlaszlo/compiler/
CanvasCompiler.java
M
WEB-INF/lps/server/src/org/openlaszlo/compiler/
ResourceCompiler.java
M WEB-INF/lps/server/src/org/openlaszlo/compiler/
SWFWriter.java
M WEB-INF/lps/server/src/org/openlaszlo/compiler/
LibraryWriter.java
M WEB-INF/lps/server/src/org/openlaszlo/compiler/
FileResolver.java
M
WEB-INF/lps/server/src/org/openlaszlo/compiler/
CompilationEnvironment.java
M
WEB-INF/lps/server/src/org/openlaszlo/compiler/
IntermediateWriter.java
M
WEB-INF/lps/server/src/org/openlaszlo/compiler/
ScriptElementCompiler.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
M WEB-INF/lps/server/src/org/openlaszlo/compiler/Parser.java
Changeset: http://svn.openlaszlo.org/openlaszlo/patches/20100520-hqm-Q.tar