General updates to README documentation.
This commit is contained in:
85
README.html
85
README.html
@@ -68,12 +68,12 @@ Support for lua 5.2.x features:
|
|||||||
</ul>
|
</ul>
|
||||||
It also includes miscellaneous improvements over luaj 2.0.x:
|
It also includes miscellaneous improvements over luaj 2.0.x:
|
||||||
<ul>
|
<ul>
|
||||||
|
<li>Better thread safety.
|
||||||
|
<li>More compatible table behavior.
|
||||||
<li>Better coroutine-related garbage collection.
|
<li>Better coroutine-related garbage collection.
|
||||||
|
<li>Maven integration.
|
||||||
<li>Better debug reporting when using closures.
|
<li>Better debug reporting when using closures.
|
||||||
<li>Line numbers in parse syntax tree.
|
<li>Line numbers in parse syntax tree.
|
||||||
<li>More compatible table behavior.
|
|
||||||
<li>Better thread safety.
|
|
||||||
<li>Maven integration.
|
|
||||||
</ul>
|
</ul>
|
||||||
<h3>Luaj 2.0.x</h3>
|
<h3>Luaj 2.0.x</h3>
|
||||||
Support for lua 5.1.x features, plus:
|
Support for lua 5.1.x features, plus:
|
||||||
@@ -178,7 +178,7 @@ the lua-to-java-bytecode (luajc) compiler is used,
|
|||||||
and actually executes <em>faster</em> than C-based lua in some cases.
|
and actually executes <em>faster</em> than C-based lua in some cases.
|
||||||
It is also faster than Java-lua implementations Jill, Kahlua, and Mochalua for all benchmarks tested.
|
It is also faster than Java-lua implementations Jill, Kahlua, and Mochalua for all benchmarks tested.
|
||||||
|
|
||||||
<h1>2 - <a name="2">Simple Examples</a></h1>
|
<h1>2 - <a name="2">Examples</a></h1>
|
||||||
|
|
||||||
<h2>Run a lua script in Java SE</h2>
|
<h2>Run a lua script in Java SE</h2>
|
||||||
|
|
||||||
@@ -201,6 +201,12 @@ To see how luaj can be used to acccess most Java API's including swing, try:
|
|||||||
java -cp lib/luaj-jse-3.0-beta3.jar lua examples/lua/swingapp.lua
|
java -cp lib/luaj-jse-3.0-beta3.jar lua examples/lua/swingapp.lua
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Links to sources:<pre>
|
||||||
|
<a href="examples/lua/hello.lua">examples/lua/hello.lua</a>
|
||||||
|
<a href="examples/lua/swingapp.lua">examples/lua/swingapp.lua</a>
|
||||||
|
</pre>
|
||||||
|
|
||||||
<h2>Compile lua source to lua bytecode</h2>
|
<h2>Compile lua source to lua bytecode</h2>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
@@ -274,7 +280,7 @@ or an InputStream to be loaded as text source "t", or binary lua file "b":
|
|||||||
<p>
|
<p>
|
||||||
A simple example may be found in
|
A simple example may be found in
|
||||||
<pre>
|
<pre>
|
||||||
examples/jse/SampleJseMain.java
|
<a href="examples/jse/SampleJseMain.java">examples/jse/SampleJseMain.java</a>
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
@@ -301,7 +307,7 @@ Any files included via <em>require()</em> must also be part of the midlet resour
|
|||||||
<p>
|
<p>
|
||||||
A simple example may be found in
|
A simple example may be found in
|
||||||
<pre>
|
<pre>
|
||||||
examples/jme/SampleMIDlet.java
|
<a href="examples/jme/SampleMIDlet.java">examples/jme/SampleMIDlet.java</a>
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
@@ -310,7 +316,7 @@ You must include the library <b>lib/luaj-jme-3.0-beta3.jar</b> in your midlet ja
|
|||||||
<p>
|
<p>
|
||||||
An ant script to build and run the midlet is in
|
An ant script to build and run the midlet is in
|
||||||
<pre>
|
<pre>
|
||||||
build-midlet.xml
|
<a href="build-midlet.xml">build-midlet.xml</a>
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
@@ -340,7 +346,7 @@ You must include the library <b>lib/luaj-jse-3.0-beta3.jar</b> in your class pat
|
|||||||
<p>
|
<p>
|
||||||
A working example may be found in
|
A working example may be found in
|
||||||
<pre>
|
<pre>
|
||||||
examples/jse/ScriptEngineSample.java
|
<a href="examples/jse/ScriptEngineSample.java">examples/jse/ScriptEngineSample.java</a>
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
To compile and run it using Java 1.6 or higher:
|
To compile and run it using Java 1.6 or higher:
|
||||||
@@ -386,24 +392,61 @@ The requires <em>bcel</em> to be on the class path, and the ClassLoader of JSE o
|
|||||||
<h1>3 - <a name="3">Concepts</a></h1>
|
<h1>3 - <a name="3">Concepts</a></h1>
|
||||||
|
|
||||||
<h2>Globals</h2>
|
<h2>Globals</h2>
|
||||||
The old notion of platform has been replaced with creation of globals.
|
The old notion of platform has been replaced with creation of globals.
|
||||||
Two classes are provided to encapsulate common combinations of libraries.
|
The <a href="http://luaj.sourceforge.net/api/3.0/org/luaj/vm2/Globals.html">Globals</a>
|
||||||
|
class holds global state needed for executing closures as well as providing
|
||||||
|
convenience functions for compiling and loading scripts.
|
||||||
|
|
||||||
|
<h2>Platform</h2>
|
||||||
|
To simplify construction of Globals, and encapsulate differences needed to support
|
||||||
|
the diverse family of Java runtimes, luaj uses a Platform notion.
|
||||||
|
Typically, a platform is used to construct a Globals, which is then provided as a global
|
||||||
|
environment for client scripts.
|
||||||
|
|
||||||
<h3>JsePlatform</h3>
|
<h3>JsePlatform</h3>
|
||||||
|
The <a href="http://luaj.sourceforge.net/api/3.0/org/luaj/vm2/lib/jse/JsePlatform.html">JsePlatform</a>
|
||||||
This class can be used as a factory for globals in a typical Java SE application.
|
class can be used as a factory for globals in a typical Java SE application.
|
||||||
All standard libraries are included, as well as the luajava library.
|
All standard libraries are included, as well as the luajava library.
|
||||||
The default search path is the current directory,
|
The default search path is the current directory,
|
||||||
and the math operations include all those supported by Java SE.
|
and the math operations include all those supported by Java SE.
|
||||||
|
|
||||||
<h3>JmePlatform</h3>
|
<h4>Android</h4>
|
||||||
|
|
||||||
This class can be used to set up the basic environment for a Java ME application.
|
Android applications should use the JsePlatform, and can include the <a href="#luajava">Luajava</a> library
|
||||||
|
to simplify access to underlying Android APIs.
|
||||||
|
A specialized Globals.finder should be provided to find scripts and data for loading.
|
||||||
|
See <a href="examples/android/src/android/LuajView">examples/android/src/android/LuajView</a>
|
||||||
|
for an example that loads from the "res" Android project directory.
|
||||||
|
The ant build script is <a href="examples/android/build.xml">examples/android/build.xml</a>.
|
||||||
|
|
||||||
|
<h4>Applet</h4>
|
||||||
|
|
||||||
|
Applets in browsers should use the JsePlatform. The permissions model in applets is
|
||||||
|
highly restrictive, so a specialization of the <a href="#luajava">Luajava</a> library must be used that
|
||||||
|
uses default class loading. This is illustrated in the sample Applet
|
||||||
|
<a href="examples/jse/SampleApplet.java">examples/jse/SampleApplet.java</a>,
|
||||||
|
which can be built using <a href="build-applet.xml">build-applet.xml</a>.
|
||||||
|
|
||||||
|
|
||||||
|
<h3>JmePlatform</h3>
|
||||||
|
The <a href="http://luaj.sourceforge.net/api/3.0/org/luaj/vm2/lib/jme/JmePlatform.html">JmePlatform</a>
|
||||||
|
class can be used to set up the basic environment for a Java ME application.
|
||||||
The default search path is limited to the jar resources,
|
The default search path is limited to the jar resources,
|
||||||
and the math operations are limited to those supported by Java ME.
|
and the math operations are limited to those supported by Java ME.
|
||||||
All libraries are included except luajava, and the os, io, and math libraries are
|
All libraries are included except luajava, and the os, io, and math libraries are
|
||||||
limited to those functions that can be supported on that platform.
|
limited to those functions that can be supported on that platform.
|
||||||
|
|
||||||
|
<h4>MIDlet</h4>
|
||||||
|
|
||||||
|
MIDlets require the JmePlatform.
|
||||||
|
The JME platform has several limitations which carry over to luaj.
|
||||||
|
In particular Globals.finder is overridden to load as resources, so scripts should be
|
||||||
|
colocated with class files in the MIDlet jar file. <a href="#luajava">Luajava</a> cannot be used.
|
||||||
|
Camples code is in
|
||||||
|
<a href="examples/jme/SampleMIDlet.java">examples/jme/SampleMIDlet.java</a>,
|
||||||
|
which can be built using <a href="build-midlet.xml">build-midlet.xml</a>.
|
||||||
|
|
||||||
|
|
||||||
<h2>Thread Safety</h2>
|
<h2>Thread Safety</h2>
|
||||||
|
|
||||||
Luaj 3.0 can be run in multiple threads, with the following restrictions:
|
Luaj 3.0 can be run in multiple threads, with the following restrictions:
|
||||||
@@ -509,7 +552,7 @@ To install dynamically from lua use java-class-based require:</em>:
|
|||||||
The <em>lua</em> command line utility includes the <em>debug</em> library by default.
|
The <em>lua</em> command line utility includes the <em>debug</em> library by default.
|
||||||
|
|
||||||
|
|
||||||
<h3>The Luajava Library</h3>
|
<h3><a name="luajava">The Luajava Library</a></h3>
|
||||||
The <em>JsePlatform.standardGlobals()</em> includes the <em>luajava</em> library, which simplifies binding to Java classes and methods.
|
The <em>JsePlatform.standardGlobals()</em> includes the <em>luajava</em> library, which simplifies binding to Java classes and methods.
|
||||||
It is patterned after the original <a href="http://www.keplerproject.org/luajava/">luajava project</a>.
|
It is patterned after the original <a href="http://www.keplerproject.org/luajava/">luajava project</a>.
|
||||||
|
|
||||||
@@ -757,7 +800,7 @@ For example, to parse a file and print all variable names, use code like:
|
|||||||
|
|
||||||
An example that prints locations of all function definitions in a file may be found in
|
An example that prints locations of all function definitions in a file may be found in
|
||||||
<pre>
|
<pre>
|
||||||
examples/jse/SampleParser.java
|
<a href="examples/jse/SampleParser.java">examples/jse/SampleParser.java</a>
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
@@ -765,7 +808,7 @@ See the <a href="http://luaj.sourceforge.net/api/3.0/org/luaj/vm2/ast/package-su
|
|||||||
|
|
||||||
<h1>7 - <a name="7">Building and Testing</a></h1>
|
<h1>7 - <a name="7">Building and Testing</a></h1>
|
||||||
|
|
||||||
<h2>Maven integration</h2>
|
<h2><a name="maven">Maven integration</a></h2>
|
||||||
The main jar files are now deployed in the maven central repository. To use them in your maven-based project, list them as a dependency:
|
The main jar files are now deployed in the maven central repository. To use them in your maven-based project, list them as a dependency:
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
@@ -788,7 +831,7 @@ while for JME projects, use the luaj-jme jar:
|
|||||||
|
|
||||||
An example skelton maven pom file for a skeleton project is in
|
An example skelton maven pom file for a skeleton project is in
|
||||||
<pre>
|
<pre>
|
||||||
examples/maven/pom.xml
|
<a href="examples/maven/pom.xml">examples/maven/pom.xml</a>
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
|
|
||||||
@@ -820,7 +863,7 @@ Unit test scripts can be found in these locations
|
|||||||
<p>
|
<p>
|
||||||
A build script for running unit tests and producing code coverage statistics is in
|
A build script for running unit tests and producing code coverage statistics is in
|
||||||
<pre>
|
<pre>
|
||||||
build-coverage.xml
|
<a href="build-coverage.xml">build-coverage.xml</a>
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
It relies on the cobertura code coverage library.
|
It relies on the cobertura code coverage library.
|
||||||
@@ -836,6 +879,8 @@ Sources are hosted on SourceForge and available via sourceforge.net
|
|||||||
<a href="http://sourceforge.net/project/platformdownload.php?group_id=197627">SourceForge Luaj Download Area</a>
|
<a href="http://sourceforge.net/project/platformdownload.php?group_id=197627">SourceForge Luaj Download Area</a>
|
||||||
</pre>
|
</pre>
|
||||||
<p/>
|
<p/>
|
||||||
|
The jar files may also be downloaded from the maven central repository, see <a href="#maven">Maven Integration</a>.
|
||||||
|
<p/>
|
||||||
Files are no longer hosted at LuaForge.
|
Files are no longer hosted at LuaForge.
|
||||||
|
|
||||||
<h1>9 - <a name="9">Release Notes</a></h1>
|
<h1>9 - <a name="9">Release Notes</a></h1>
|
||||||
@@ -954,5 +999,5 @@ These restrictions are mainly a side effect of how the language is defined as al
|
|||||||
within literal strings in source files.
|
within literal strings in source files.
|
||||||
|
|
||||||
Code that is generated on the fly within lua and compiled with lua's <em>load()</em> function
|
Code that is generated on the fly within lua and compiled with lua's <em>load()</em> function
|
||||||
should work as expected, however, since these strings will never be represented with the
|
should work as expected, since these strings will never be represented with the
|
||||||
host's native character encoding.
|
host's native character encoding.
|
||||||
|
|||||||
Reference in New Issue
Block a user