(1) getKeys() in LTable is now public. It provides a convenient interface
to access the table's elements from Java instead of Lua.
(2) LString.toInputStream produces an instance of InputStream from which
the string's bytes can be read.
on strings as the string package, so that string functions can be called
with self (:) syntax. Autoload test case now inexplicably fails more,
but it was already broken.
Includes a new VM method, newCall, which must be called before pushing
a call onto the stack to make sure that base is set correctly.
A couple of weird issues remain with autoload.lua.
uses plain Java arrays directly to keep heap allocation to a minimum.
Includes some unit tests that seem to indicate the basic operations are
correct. However, the following things are not implemented:
* Shrinking the capacity when elements are removed
* Optimal storage of each element in array vs. hash when entries are
added out of order. A junit test case is there for this.
(1) New lua compatibility bindings, including select() and math functions
(2) fix some VM bugs
(3) fix some table bugs, and attempt to restore metatable functionality.
commented out: a more sophisticated (but space-consuming) optimization
that accounts for arbitrary starting index, stride, and direction (increasing/decreasing).
commented out some table metatable stuff that was wrong. metatables
need to be implemented properly.
test cases to make more progress: assert, collectgarbage, loadfile,
tonumber, rawget, and setfenv. Also added zip file of standard tests to
Eclipse classpath, for convenience.
and changed instanceof/casts to LInstance to use LUserData instead. This
should enable various add-ons to be compatible without knowing much, or
anything, about each other.
and load them as LIntegers instead of LDoubles if so. Also change test2 so that
it does not fail because of the rounding problem. With these changes, 4 out of
7 test cases in LuaJTest now pass.
Windows in its present form, and only one of the test cases passes.
In addition two changes to print() were made: output can be redirected to
an arbitrary OutputStream and tabs are no longer printed at the end of
each line.
(1) LDouble to Double/double coercions were missing
(2) LuaJava.LMethod.luaStackCall adjusted the top of stack in a way that
produces the wrong results when the call occurs as the argument to another
function (such as print)
Also added two lines to the bottom of test7.lua to test luajava.bindClass.