Improve coroutine state logic including let unreferenced coroutines be garbage collected

This commit is contained in:
James Roseborough
2011-06-12 04:17:02 +00:00
parent bce3f1a2e6
commit b769c61e0f
6 changed files with 326 additions and 113 deletions

View File

@@ -16,7 +16,7 @@
Getting Started with LuaJ
</h1>
James Roseborough, Ian Farmer, Version 2.0.2
James Roseborough, Ian Farmer, Version 2.0.3
<p>
<small>
Copyright &copy; 2009-2010 Luaj.org.
@@ -106,7 +106,7 @@ in comparison with the standard C distribution.
<td>16.794</td>
<td>11.274</td>
<td>Java</td>
<td>java -cp luaj-jse-2.0.2.jar;bcel-5.2.jar lua <b>-b</b> fannkuch.lua 10</td></tr>
<td>java -cp luaj-jse-2.0.3.jar;bcel-5.2.jar lua <b>-b</b> fannkuch.lua 10</td></tr>
<tr valign="top">
<td></td>
<td></td>
@@ -116,7 +116,7 @@ in comparison with the standard C distribution.
<td>16.701</td>
<td>13.789</td>
<td></td>
<td>java -cp luaj-jse-2.0.2.jar lua <b>-j</b> fannkuch.lua 10</td></tr>
<td>java -cp luaj-jse-2.0.3.jar lua <b>-j</b> fannkuch.lua 10</td></tr>
<tr valign="top">
<td></td>
<td></td>
@@ -126,7 +126,7 @@ in comparison with the standard C distribution.
<td>36.894</td>
<td>15.163</td>
<td></td>
<td>java -cp luaj-jse-2.0.2.jar lua -n fannkuch.lua 10</td></tr>
<td>java -cp luaj-jse-2.0.3.jar lua -n fannkuch.lua 10</td></tr>
<tr valign="top">
<td>lua</td>
<td>5.1.4</td>
@@ -182,7 +182,7 @@ It is also faster than Java-lua implementations Jill, Kahlua, and Mochalua for a
From the main distribution directory line type:
<pre>
java -cp lib/luaj-jse-2.0.2.jar lua examples/lua/hello.lua
java -cp lib/luaj-jse-2.0.3.jar lua examples/lua/hello.lua
</pre>
<p>
@@ -197,8 +197,8 @@ You should see the following output:
From the main distribution directory line type:
<pre>
java -cp lib/luaj-jse-2.0.2.jar luac examples/lua/hello.lua
java -cp lib/luaj-jse-2.0.2.jar lua luac.out
java -cp lib/luaj-jse-2.0.3.jar luac examples/lua/hello.lua
java -cp lib/luaj-jse-2.0.3.jar lua luac.out
</pre>
<p>
@@ -210,9 +210,9 @@ The compiled output "luac.out" is lua bytecode and should run and produce the sa
Luaj can compile to lua source code to Java source code:
<pre>
java -cp lib/luaj-jse-2.0.2.jar lua2java -s examples/lua -d . hello.lua
javac -cp lib/luaj-jse-2.0.2.jar hello.java
java -cp &quot;lib/luaj-jse-2.0.2.jar;.&quot; lua -l hello
java -cp lib/luaj-jse-2.0.3.jar lua2java -s examples/lua -d . hello.lua
javac -cp lib/luaj-jse-2.0.3.jar hello.java
java -cp &quot;lib/luaj-jse-2.0.3.jar;.&quot; lua -l hello
</pre>
<p>
@@ -223,7 +223,7 @@ There are no additional dependencies for compiling or running source-to-source c
<p>
Lua scripts can also be run directly in this mode without precompiling using the <em>lua</em> command with the <b><em>-j</em></b> option when run in JDK 1.5 or higher:
<pre>
java -cp lib/luaj-jse-2.0.2.jar lua -j examples/lua/hello.lua
java -cp lib/luaj-jse-2.0.3.jar lua -j examples/lua/hello.lua
</pre>
<h2>Compile lua bytecode to java bytecode</h2>
@@ -233,8 +233,8 @@ Luaj can compile lua sources or binaries directly to java bytecode if the bcel l
<pre>
ant bcel-lib
java -cp &quot;lib/luaj-jse-2.0.2.jar;lib/bcel-5.2.jar&quot; luajc -s examples/lua -d . hello.lua
java -cp &quot;lib/luaj-jse-2.0.2.jar;.&quot; lua -l hello
java -cp &quot;lib/luaj-jse-2.0.3.jar;lib/bcel-5.2.jar&quot; luajc -s examples/lua -d . hello.lua
java -cp &quot;lib/luaj-jse-2.0.3.jar;.&quot; lua -l hello
</pre>
<p>
@@ -245,7 +245,7 @@ but the compiled classes must be in the class path at runtime, unless runtime ji
<p>
Lua scripts can also be run directly in this mode without precompiling using the <em>lua</em> command with the <b><em>-b</em></b> option and providing the <em>bcel</em> library in the class path:
<pre>
java -cp &quot;lib/luaj-jse-2.0.2.jar;lib/bcel-5.2.jar&quot; lua -b examples/lua/hello.lua
java -cp &quot;lib/luaj-jse-2.0.3.jar;lib/bcel-5.2.jar&quot; lua -b examples/lua/hello.lua
</pre>
@@ -270,7 +270,7 @@ A simple example may be found in
</pre>
<p>
You must include the library <b>lib/luaj-jse-2.0.2.jar</b> in your class path.
You must include the library <b>lib/luaj-jse-2.0.3.jar</b> in your class path.
<h2>Run a script in a MIDlet</h2>
@@ -297,7 +297,7 @@ A simple example may be found in
</pre>
<p>
You must include the library <b>lib/luaj-jme-2.0.2.jar</b> in your midlet jar.
You must include the library <b>lib/luaj-jme-2.0.3.jar</b> in your midlet jar.
<p>
An ant script to build and run the midlet is in
@@ -325,7 +325,7 @@ The standard use of JSR-223 scripting engines may be used:
All standard aspects of script engines including compiled statements should be supported.
<p>
You must include the library <b>lib/luaj-jse-2.0.2.jar</b> in your class path.
You must include the library <b>lib/luaj-jse-2.0.3.jar</b> in your class path.
<p>
A working example may be found in
@@ -337,7 +337,7 @@ To compile and run it using Java 1.6 or higher:
<pre>
javac examples/jse/ScriptEngineSample.java
java -cp &quot;lib/luaj-jse-2.0.2.jar;examples/jse&quot; ScriptEngineSample
java -cp &quot;lib/luaj-jse-2.0.3.jar;examples/jse&quot; ScriptEngineSample
</pre>
<h2>Excluding the lua bytecode compiler</h2>
@@ -501,7 +501,7 @@ The following lua script will open a swiing frame on Java SE:
<p>
See a longer sample in <em>examples/lua/swingapp.lua</em> for details, or try running it using:
<pre>
java -cp lib/luaj-jse-2.0.2.jar lua examples/lua/swingapp.lua
java -cp lib/luaj-jse-2.0.3.jar lua examples/lua/swingapp.lua
</pre>
<p>
@@ -729,8 +729,11 @@ and LuaForge:
<li>Enhance javadoc, put it <a href="docs/api/index.html">in distribution</a> and <a href="http://luaj.sourceforge.net/api/2.0/index.html">on line</a></li>
<li>Major refactor of luajava type coercion logic, improve method selection.</li>
<li>Add lib/luaj-sources-2.0.2.jar for easier integration into an IDE such as Netbeans </li>
<tr valign="top"><td>&nbsp;&nbsp;<b>2.0.3</b></td><td><ul>
<li>Improve coroutine state logic including let unreferenced coroutines be garbage collected </li>
</ul></td></tr>
</table>
</table></td></tr></table>
<h2>Known Issues</h2>
<ul>
<li>debug code may not be completely removed by some obfuscators