Commit Graph

41 Commits

Author SHA1 Message Date
Shu Lei
a67783899f removed Type.java and updated the depended files to use the new type constants 2007-10-04 21:04:38 +00:00
James Roseborough
9dee79cb80 Make LInteger constructor private and use LInteger.valueOf() everywhere, caching common values. 2007-10-04 17:37:15 +00:00
Shu Lei
885397a74c added back the files that were accidentally deleted 2007-10-03 23:33:45 +00:00
Shu Lei
35d02b287e added debugging support and integrated with Eclipse debugger 2007-10-03 17:39:38 +00:00
Shu Lei
421eface40 added debugging support and integrated with Eclipse debugger 2007-10-03 17:39:37 +00:00
Ian Farmer
ec11c472c8 Various changes to bring pm.lua test closer to passing:
* New and complete character class support
 * string.gsub implemented
 * rawset implemented
 * lua_call added (based on lua_pcall)
 * lua_pop added
 * newCall removed; luaGetTable and luaSetTable in LFunction updated to
   use lua_call instead.
 * StandardTest changed to avoid an ArrayIndexOutOfBoundsException

Unfortunately I discovered a problem where execute() will loop around too
many times and call exec() with a call frame that has already completed.
This might be due to the lack of the "tailcalls" field in our CallInfo class
that the C version maintains?
2007-09-24 04:35:53 +00:00
Ian Farmer
5536159916 Now that compiler is integrated, change LuaJTest to load source files when
pre-compiled script is missing.
2007-09-23 03:51:26 +00:00
James Roseborough
9f6d7543cd Remove compiler dependence on mark()/reset() 2007-09-22 16:57:25 +00:00
James Roseborough
e07382c90d Fix autoload 2007-09-22 07:14:23 +00:00
James Roseborough
be87758fe5 add compiler to vm as add-on 2007-09-21 16:50:29 +00:00
Ian Farmer
a55504639e Add unit test for LString.toInputStream (meant to commit this a while ago) 2007-09-18 05:29:29 +00:00
Ian Farmer
534e69fcfb Add pattern matcher implementation ported from C version of Lua. Still
work to do:
(1) Replace use of recursion with while/continue
(2) Remove as many array bounds checks as possible
2007-09-18 04:18:39 +00:00
James Roseborough
952a2f9f16 Add skeleton for string library calls. 2007-09-18 01:00:36 +00:00
Ian Farmer
31e2d95076 Fix broken LTable test case. 2007-09-10 06:41:25 +00:00
Ian Farmer
aeafca11b6 Change LString to use an array of bytes instead of wrapping Java's String.
This brings our implementation more in line with regular C Lua.
2007-09-10 06:27:54 +00:00
Ian Farmer
aa44eedf4b Allow metatable operations on values of all types, and use the metatable
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.
2007-09-08 20:54:40 +00:00
Ian Farmer
75fb975410 Fix a few VM issues which were causing subtle failures in the test cases.
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.
2007-09-04 01:52:33 +00:00
Ian Farmer
b8571b93f9 New implementation for Lua tables. Does not use Vector or Hashtable, instead
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.
2007-09-03 00:38:38 +00:00
James Roseborough
79d5642bfd Fix breakpoint handling 2007-08-11 05:29:56 +00:00
James Roseborough
add892968d Add DebugStackState to be used as a debugging VM in and IDE. 2007-08-11 04:53:35 +00:00
Ian Farmer
737c5e2855 Various changes:
(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.
2007-08-01 04:15:27 +00:00
James Roseborough
8bf4c82a12 Rework the main API"s that implement the calling convention. Provide utility methods to get arguments that were supplied, and provide return values. Add a VM interface to clarify the relationship between the VM, things that call the VM, and things that are called by the VM. Make the code more closely aligned with the C++ version. 2007-07-24 05:06:10 +00:00
Ian Farmer
ee5007e718 Add implicit LString to number coercions. 2007-07-22 06:20:14 +00:00
Ian Farmer
daf71ee672 New LuaCompat add-on provides some standard lua functions that allow the
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.
2007-07-22 05:47:14 +00:00
Ian Farmer
e1d6ddf99c New autoload and math test cases. Currently autoload does not work because
the GETGLOBAL instruction does not handle the case where a metatable method
is invoked.
2007-07-21 04:44:22 +00:00
Ian Farmer
b4ac032fd7 Fix the NOT instruction. Includes test case. 2007-07-21 04:08:28 +00:00
Ian Farmer
c0f054549b Change the pom.xml and remove some use of Java 1.5 features to reduce the
number of errors produced by "mvn package".
2007-07-19 04:23:42 +00:00
Ian Farmer
8c3fe262f9 Adding test suite with tests from the set of standard Lua test cases. These
test cases were downloaded from:
  http://www.inf.puc-rio.br/~roberto/lua/lua5.1-tests.tar.gz
2007-07-17 03:20:53 +00:00
Ian Farmer
635f127cd0 Add new built-in function type() that returns the name of the type of
the given value as a string. Includes test case.
2007-07-16 02:37:08 +00:00
Ian Farmer
c65dec54fb Fix a bug in how comparison instructions are handled: the 'a' intruction field
was ignored.  Includes new test case.
2007-07-15 20:33:20 +00:00
James Roseborough
ba3da1ca2c Fine-tune protection to enable compiler porting. 2007-07-13 14:49:58 +00:00
Ian Farmer
2a28925f74 Fix a bug in how OP_SETLIST is handled. Includes new test case. 2007-07-12 04:06:41 +00:00
Ian Farmer
f7d6a49acb Add a new test case for upvalues, and enhance upvalue handling so that
they pass.
2007-07-09 04:10:25 +00:00
Ian Farmer
45964d7e22 Add simple test for correct upvalue handling. 2007-07-09 01:43:34 +00:00
Ian Farmer
62022d5881 While loading chunks, check if double values can be represented as integers,
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.
2007-07-09 01:31:31 +00:00
Ian Farmer
241edfbf37 Added a JUnit test case. Unfortunately, it will almost certainly not work on
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.
2007-07-04 04:25:06 +00:00
James Roseborough
c8e1934916 Refactor call stack and its use throughout. CallFrame now does all bytecode processing, and the callframe is reinitialized anytime something might have changed, like a function call. 2007-06-27 06:43:33 +00:00
James Roseborough
93fc4699a9 Type coercion for luajava package, make luajava an "addon" 2007-06-24 15:04:19 +00:00
James Roseborough
1d7793f8e6 Initial draft of luajava package support. 2007-06-19 05:17:07 +00:00
James Roseborough
5d3c86e552 Partial implementation of metatables. 2007-06-16 15:31:27 +00:00
James Roseborough
70dfc20f57 Initial draft of interpreter. Lua compiled "chunks" can be unmarshalled. Approximately half of bytecodes implemented in some form or another. 2007-06-08 05:11:37 +00:00