Sat, 21 Sep 2013 14:31:22 +0100 |
Matthew Wild |
Fix math.frexp() and add more tests (thanks Florob, Link Mauve, xnyhps)
default tip
|
changeset |
files
|
Sat, 21 Sep 2013 14:02:16 +0100 |
Matthew Wild |
Add math.frexp() and tests (many thanks to Florob and Link Mauve!)
|
changeset |
files
|
Wed, 24 Nov 2010 03:36:14 +0000 |
Matthew Wild |
Implement basic string.format() supporting %d/%s
|
changeset |
files
|
Wed, 24 Nov 2010 03:35:40 +0000 |
Matthew Wild |
baselib: Implement basic message-only error()
|
changeset |
files
|
Wed, 24 Nov 2010 02:53:15 +0000 |
Matthew Wild |
Implement string.find (mostly) and string.sub
|
changeset |
files
|
Wed, 24 Nov 2010 02:52:37 +0000 |
Matthew Wild |
Replace error reporting code with calls to LVM.traceback()
|
changeset |
files
|
Wed, 24 Nov 2010 02:52:01 +0000 |
Matthew Wild |
Add LVM.traceback() function
|
changeset |
files
|
Wed, 24 Nov 2010 02:51:38 +0000 |
Matthew Wild |
OP_SETLIST: Implement support for B==0 (to top of stack)
|
changeset |
files
|
Wed, 24 Nov 2010 02:50:31 +0000 |
Matthew Wild |
OP_RETURN: Pad out results with nils if we get less results than expected
|
changeset |
files
|
Wed, 24 Nov 2010 02:50:02 +0000 |
Matthew Wild |
OP_TAILCALL: Fall through to OP_CALL for native functions
|
changeset |
files
|
Wed, 24 Nov 2010 02:49:40 +0000 |
Matthew Wild |
OP_VARARG: Fix off-by-one
|
changeset |
files
|
Wed, 24 Nov 2010 02:48:56 +0000 |
Matthew Wild |
OP_GETUPVALUE: Clone original LValue
|
changeset |
files
|
Wed, 24 Nov 2010 02:48:27 +0000 |
Matthew Wild |
Create local function to use as chunk prototype
|
changeset |
files
|
Wed, 24 Nov 2010 02:47:47 +0000 |
Matthew Wild |
Better verification of function validity in LVM.call()
|
changeset |
files
|
Mon, 22 Nov 2010 19:38:27 +0000 |
Matthew Wild |
Indentation fix
|
changeset |
files
|
Mon, 22 Nov 2010 19:38:12 +0000 |
Matthew Wild |
Change LVM.call() to take an LValue rather than the raw native/LFunction object. Also add LVM.loadstring(chunk, env) and use that for loading luac.out.
|
changeset |
files
|
Mon, 22 Nov 2010 05:06:37 +0000 |
Matthew Wild |
Implement OP_TAILCALL - the last opcode!
|
changeset |
files
|
Mon, 22 Nov 2010 04:56:38 +0000 |
Matthew Wild |
Add a whole bunch of tests I've been using for recent additions
|
changeset |
files
|
Mon, 22 Nov 2010 04:54:59 +0000 |
Matthew Wild |
Adjust pc down by 1 when calculating error lines, pc is always the /next/ instruction
|
changeset |
files
|
Mon, 22 Nov 2010 04:54:18 +0000 |
Matthew Wild |
Remove some debugging in the gmatch function
|
changeset |
files
|
Mon, 22 Nov 2010 04:53:09 +0000 |
Matthew Wild |
Implement OP_VARARG
|
changeset |
files
|
Mon, 22 Nov 2010 04:52:55 +0000 |
Matthew Wild |
OP_RETURN: Shrink stack on return
|
changeset |
files
|
Mon, 22 Nov 2010 04:52:29 +0000 |
Matthew Wild |
OP_CALL: Don't push varargs into called function's stack
|
changeset |
files
|
Mon, 22 Nov 2010 04:13:28 +0000 |
Matthew Wild |
Fix OP_CONCAT: missing break; and should supply empty separator to join()
|
changeset |
files
|
Mon, 22 Nov 2010 04:05:25 +0000 |
Matthew Wild |
assert(): Throw "assertion failed" message when none supplied
|
changeset |
files
|
Mon, 22 Nov 2010 02:43:55 +0000 |
Matthew Wild |
"Implement" OP_CLOSE
|
changeset |
files
|
Mon, 22 Nov 2010 02:36:09 +0000 |
Matthew Wild |
Fix OP_FORLOOP to set the loop counter variable properly
|
changeset |
files
|
Mon, 22 Nov 2010 02:34:26 +0000 |
Matthew Wild |
Implement LValue.len() and OP_LEN (no metamethod yet)
|
changeset |
files
|
Mon, 22 Nov 2010 02:33:56 +0000 |
Matthew Wild |
Switch to [] for representing tables (for now)
|
changeset |
files
|
Mon, 22 Nov 2010 02:32:01 +0000 |
Matthew Wild |
Don't use this.LValue() inside the VM - it's for JS types only
|
changeset |
files
|
Mon, 22 Nov 2010 02:31:16 +0000 |
Matthew Wild |
Fix OP_CALL to handle the case of B==1 (no parameters) and fix an off-by-one error that wouldn't fill the stack with nils properly
|
changeset |
files
|
Sun, 21 Nov 2010 21:37:07 +0000 |
Matthew Wild |
Implement OP_MOD, OP_POW, OP_UNM, OP_NOT (no metamethods yet)
|
changeset |
files
|
Sun, 21 Nov 2010 21:36:26 +0000 |
Matthew Wild |
New (passing) test, arithmetic.lua
|
changeset |
files
|
Sun, 21 Nov 2010 21:25:24 +0000 |
Matthew Wild |
Implement OP_MUL (no metamethod yet)
|
changeset |
files
|
Sun, 21 Nov 2010 21:17:59 +0000 |
Matthew Wild |
Fix FORPREP to not blat R(A+3) - not sure what that line thought it was doing
|
changeset |
files
|
Sun, 21 Nov 2010 16:50:39 +0000 |
Matthew Wild |
Add unimplemented OP_* codes as reference
|
changeset |
files
|
Sun, 21 Nov 2010 16:35:08 +0000 |
Matthew Wild |
Fix exception in stack printing for some tests when debug mode is enabled
|
changeset |
files
|
Sun, 21 Nov 2010 16:29:29 +0000 |
Matthew Wild |
Prettier stack printing in debugMode
|
changeset |
files
|
Sun, 21 Nov 2010 16:28:40 +0000 |
Matthew Wild |
Fix traceback in error handling...
|
changeset |
files
|
Sun, 21 Nov 2010 16:28:17 +0000 |
Matthew Wild |
Add string lib, with gmatch function only for now
|
changeset |
files
|
Sun, 21 Nov 2010 16:27:41 +0000 |
Matthew Wild |
Implement OP_SETLIST
|
changeset |
files
|
Sun, 21 Nov 2010 16:27:18 +0000 |
Matthew Wild |
Implement OP_TFORLOOP
|
changeset |
files
|
Sun, 21 Nov 2010 16:25:08 +0000 |
Matthew Wild |
Implement OP_CONCAT (no metamethod yet)
|
changeset |
files
|
Sat, 20 Nov 2010 15:19:42 +0000 |
Matthew Wild |
Remove some debugging in math.ldexp() accidentally committed
|
changeset |
files
|
Sat, 20 Nov 2010 15:19:19 +0000 |
Matthew Wild |
Implement OP_DIV (no metamethod yet)
|
changeset |
files
|
Sat, 20 Nov 2010 12:13:12 +0000 |
Matthew Wild |
Don't try and print current position in the Lua script with no valid frame
|
changeset |
files
|
Sat, 20 Nov 2010 12:12:46 +0000 |
Matthew Wild |
Rename default_environment to _G, use registerLib() for baselib and add math lib with 2 ldexp, floor
|
changeset |
files
|
Sat, 20 Nov 2010 12:11:34 +0000 |
Matthew Wild |
Add LVM().registerLib(env, name, lib) to register a table of native functions to an environment.
|
changeset |
files
|
Sat, 20 Nov 2010 12:10:53 +0000 |
Matthew Wild |
Fix OP_SUB to use RK() too...
|
changeset |
files
|
Sat, 20 Nov 2010 11:11:56 +0000 |
Matthew Wild |
Update basic_logic test
|
changeset |
files
|
Sat, 20 Nov 2010 11:11:17 +0000 |
Matthew Wild |
Print out location at which errors occur, yay!
|
changeset |
files
|
Sat, 20 Nov 2010 11:11:01 +0000 |
Matthew Wild |
Pass sourceName to child chunks (in binary files it's only set in the top-level chunk)
|
changeset |
files
|
Sat, 20 Nov 2010 11:07:24 +0000 |
Matthew Wild |
Disable debugMode, accidentally committed
|
changeset |
files
|
Fri, 19 Nov 2010 21:06:50 +0000 |
Matthew Wild |
Implement OP_LE (no metamethod yet)
|
changeset |
files
|
Fri, 19 Nov 2010 20:52:08 +0000 |
Matthew Wild |
Fix OP_LT to respect A, and move OP_EQ to live next to it in the switch() for readability
|
changeset |
files
|
Fri, 19 Nov 2010 19:49:25 +0000 |
Matthew Wild |
Fix OP_LT to use RK()
|
changeset |
files
|
Fri, 19 Nov 2010 19:42:25 +0000 |
Matthew Wild |
Add assert() to baselib, real tests possible at last
|
changeset |
files
|
Fri, 19 Nov 2010 19:41:57 +0000 |
Matthew Wild |
Add LValue.truth() to return whether a value is (not(false) and not(nil))
|
changeset |
files
|
Fri, 19 Nov 2010 19:28:48 +0000 |
Matthew Wild |
Fix OP_SETTABLE to use RK() helper
|
changeset |
files
|
Fri, 19 Nov 2010 19:24:23 +0000 |
Matthew Wild |
Add 2 new pass tests, add.lua and bool.lua
|
changeset |
files
|
Fri, 19 Nov 2010 19:22:40 +0000 |
Matthew Wild |
Fix type() in baselib to return an LValue
|
changeset |
files
|
Fri, 19 Nov 2010 19:22:20 +0000 |
Matthew Wild |
Fix for passing arguments to the entry call frame
|
changeset |
files
|
Fri, 19 Nov 2010 19:21:48 +0000 |
Matthew Wild |
Implement OP_EQ
|
changeset |
files
|
Fri, 19 Nov 2010 19:21:36 +0000 |
Matthew Wild |
Give LValue an equals() method, returns true/false if the value == the first argument (checks metamethod)
|
changeset |
files
|
Fri, 19 Nov 2010 16:57:32 +0000 |
Matthew Wild |
Fix native function return values for the new calling interface
|
changeset |
files
|
Fri, 19 Nov 2010 16:08:51 +0000 |
Matthew Wild |
Update all opcodes to use RK() that need it
|
changeset |
files
|
Fri, 19 Nov 2010 16:06:12 +0000 |
Matthew Wild |
Add new RK() helper and fix OP_ADD to use it (so it loads constants properly)
|
changeset |
files
|
Fri, 19 Nov 2010 16:05:36 +0000 |
Matthew Wild |
Fix OP_ADD code to use new LValue format
|
changeset |
files
|
Fri, 19 Nov 2010 16:04:51 +0000 |
Matthew Wild |
Support for __add metamethod
|
changeset |
files
|
Fri, 19 Nov 2010 16:04:30 +0000 |
Matthew Wild |
New Lua<->native function interface, simpler. Added type() to baselib.
|
changeset |
files
|
Fri, 19 Nov 2010 16:02:55 +0000 |
Matthew Wild |
Large overhaul - every LValue (and LBinaryChunk) now has a valid 'vm' property, so we know in which LVM to call it or its metamethods
|
changeset |
files
|
Fri, 19 Nov 2010 13:09:25 +0000 |
Matthew Wild |
Give LValue an add() method, to eventually respect metamethods
|
changeset |
files
|
Fri, 19 Nov 2010 04:05:19 +0000 |
Matthew Wild |
Change some decimal constants to hex for consistency
|
changeset |
files
|
Fri, 19 Nov 2010 03:51:13 +0000 |
Matthew Wild |
Shorten loop test a little so I don't have to wait so long...
|
changeset |
files
|
Fri, 19 Nov 2010 03:50:04 +0000 |
Matthew Wild |
Move the demo_account.lua test from fail to pass - yay!
|
changeset |
files
|
Fri, 19 Nov 2010 03:48:41 +0000 |
Matthew Wild |
Switch to sys.puts for all output for now, leaving browser compatibility for the moment.
|
changeset |
files
|
Fri, 19 Nov 2010 03:48:04 +0000 |
Matthew Wild |
Formalise the beginnings of a baselib, add setmetatable.
|
changeset |
files
|
Fri, 19 Nov 2010 03:47:22 +0000 |
Matthew Wild |
Add FIXME for something that works, but shouldn't...
|
changeset |
files
|
Fri, 19 Nov 2010 03:43:47 +0000 |
Matthew Wild |
splice != slice. Dear Javascript, this is only one reason for why I don't like you.
|
changeset |
files
|
Fri, 19 Nov 2010 03:43:03 +0000 |
Matthew Wild |
Correct off-by-one in return value limits
|
changeset |
files
|
Fri, 19 Nov 2010 03:42:17 +0000 |
Matthew Wild |
New interface for native Javascript functions called from Lua
|
changeset |
files
|
Fri, 19 Nov 2010 03:39:40 +0000 |
Matthew Wild |
Support for numbers in LValueFromValue()
|
changeset |
files
|
Fri, 19 Nov 2010 03:39:00 +0000 |
Matthew Wild |
Add LValue.toString()
|
changeset |
files
|
Fri, 19 Nov 2010 03:38:41 +0000 |
Matthew Wild |
Support for tables in __index
|
changeset |
files
|
Fri, 19 Nov 2010 03:38:18 +0000 |
Matthew Wild |
Implement OP_TESTSET
|
changeset |
files
|
Fri, 19 Nov 2010 03:37:51 +0000 |
Matthew Wild |
Implement OP_ADD, OP_SUB, OP_LT
|
changeset |
files
|
Tue, 26 Oct 2010 10:43:56 +0100 |
Matthew Wild |
Add tests/ to the repo
|
changeset |
files
|
Fri, 28 May 2010 02:23:39 +0100 |
Matthew Wild |
Move try {} block so it covers more of the VM initialization
|
changeset |
files
|
Fri, 28 May 2010 02:23:00 +0100 |
Matthew Wild |
Add test __index handler to catch use of nil globals
|
changeset |
files
|
Fri, 28 May 2010 02:21:54 +0100 |
Matthew Wild |
Support for __index metamethod
|
changeset |
files
|
Fri, 28 May 2010 02:21:30 +0100 |
Matthew Wild |
Add LValue.setMetatable()
|
changeset |
files
|
Fri, 28 May 2010 02:20:58 +0100 |
Matthew Wild |
Pass vm as 'this' to native functions
|
changeset |
files
|
Fri, 28 May 2010 02:20:35 +0100 |
Matthew Wild |
More reliable detection of when we're at a native/Lua call boundary
|
changeset |
files
|
Fri, 28 May 2010 02:19:34 +0100 |
Matthew Wild |
LValueFromValue handles undefined and objects/arrays
|
changeset |
files
|
Fri, 28 May 2010 02:18:53 +0100 |
Matthew Wild |
Give LValue precall() and call() methods, give functions a vm property.
|
changeset |
files
|
Mon, 24 May 2010 15:22:45 +0100 |
Matthew Wild |
Show return values on exit
|
changeset |
files
|
Mon, 24 May 2010 15:22:29 +0100 |
Matthew Wild |
Support for return values from LVM.call()
|
changeset |
files
|
Mon, 24 May 2010 14:12:14 +0100 |
Matthew Wild |
Merge backout
|
changeset |
files
|
Mon, 24 May 2010 14:08:50 +0100 |
Matthew Wild |
Backed out changeset 741b953fcc5f (premature optimisations == bad)
|
changeset |
files
|
Mon, 24 May 2010 13:42:34 +0100 |
Matthew Wild |
Exit with failure code on error
|
changeset |
files
|
Mon, 24 May 2010 12:55:03 +0100 |
Matthew Wild |
Give LFunctions a vm property
|
changeset |
files
|
Mon, 24 May 2010 12:54:20 +0100 |
Matthew Wild |
Localize instructions and reg from frame
|
changeset |
files
|
Sun, 23 May 2010 19:54:45 +0100 |
Matthew Wild |
Split LVM.run() into LVM.call()/LVM.run()
|
changeset |
files
|
Sun, 23 May 2010 17:31:57 +0100 |
Matthew Wild |
Implement OP_TEST and OP_JMP
|
changeset |
files
|
Sun, 23 May 2010 17:31:41 +0100 |
Matthew Wild |
Implement OP_LOADBOOL
|
changeset |
files
|
Sun, 23 May 2010 17:31:15 +0100 |
Matthew Wild |
Initialise all stack slots to nil when calling a chunk
|
changeset |
files
|
Sun, 23 May 2010 17:30:43 +0100 |
Matthew Wild |
Allow LValues with a value of 'false' to be create (it was converted to 'null')
|
changeset |
files
|
Sun, 23 May 2010 13:48:39 +0100 |
Matthew Wild |
Implement OP_SELF
|
changeset |
files
|
Sun, 23 May 2010 13:48:29 +0100 |
Matthew Wild |
Fix for error handling to handle string exceptions
|
changeset |
files
|
Sun, 23 May 2010 13:28:45 +0100 |
Matthew Wild |
OP_FORPREP, OP_FORLOOP: Support for numerical for loops
|
changeset |
files
|
Sun, 23 May 2010 13:28:23 +0100 |
Matthew Wild |
Instantiate a new LValue in OP_LOADK, otherwise "constants" aren't so constant...
|
changeset |
files
|
Sun, 23 May 2010 13:27:36 +0100 |
Matthew Wild |
Fix off-by-one in calculating the value of sBx
|
changeset |
files
|
Sun, 23 May 2010 13:26:51 +0100 |
Matthew Wild |
Print sBx field in bytecode dump (for debugging)
|
changeset |
files
|
Sun, 23 May 2010 12:46:56 +0100 |
Matthew Wild |
Couple of fixes for last commit
|
changeset |
files
|
Sun, 23 May 2010 12:46:02 +0100 |
Matthew Wild |
Remove rawExceptions flag, always print exception's stack trace if it has one
|
changeset |
files
|
Sun, 23 May 2010 02:38:45 +0100 |
Matthew Wild |
Support for OP_NEWTABLE, OP_GETTABLE, OP_SETTABLE
|
changeset |
files
|
Sun, 23 May 2010 02:29:04 +0100 |
Matthew Wild |
New LValueFromValue() to convert from any Javascript value (almost) to a LValue
|
changeset |
files
|
Sat, 22 May 2010 20:14:33 +0100 |
Matthew Wild |
Implement OP_SETUPVALUE \o/
|
changeset |
files
|
Sat, 22 May 2010 20:08:03 +0100 |
Matthew Wild |
Add new debug option - rawExceptions - to prevent catching exceptions thrown by the VM, use for debugging the VM.
|
changeset |
files
|
Sat, 22 May 2010 20:07:05 +0100 |
Matthew Wild |
It's required to insert the new function into the stack before processing its upvalue instructions, in case it refers to itself.
|
changeset |
files
|
Sat, 22 May 2010 20:05:58 +0100 |
Matthew Wild |
Remove some, hmm, "debugging" code :)
|
changeset |
files
|
Sat, 22 May 2010 17:41:17 +0100 |
Matthew Wild |
Remove some accidentally-committed debug output
|
changeset |
files
|
Sat, 22 May 2010 17:37:02 +0100 |
Matthew Wild |
Switch from JSON.stringify for debug output to sys.inspect which doesn't bail out on circular references
|
changeset |
files
|
Sat, 22 May 2010 17:33:43 +0100 |
Matthew Wild |
Support for upvalues in functions \o/ implemented OP_GETUPVAL, and a stub for OP_SETUPVAL.
|
changeset |
files
|
Wed, 07 Apr 2010 04:15:59 +0100 |
Matthew Wild |
OP_RETURN: Support for return values from Lua functions \o/
|
changeset |
files
|
Wed, 07 Apr 2010 04:15:23 +0100 |
Matthew Wild |
Support for B==0 in OP_CALL (signifies params are to top of the stack)
|
changeset |
files
|
Wed, 07 Apr 2010 03:07:10 +0100 |
Matthew Wild |
Fix OP_RETURN to update this.frame
|
changeset |
files
|
Wed, 07 Apr 2010 03:06:46 +0100 |
Matthew Wild |
Implement OP_CALL for Lua functions (no return values yet)
|
changeset |
files
|
Wed, 07 Apr 2010 03:05:52 +0100 |
Matthew Wild |
Implement basic OP_CLOSURE (no support for upvalues yet)
|
changeset |
files
|
Wed, 07 Apr 2010 03:05:24 +0100 |
Matthew Wild |
Add chunk property to LFunction to show which chunk it came from
|
changeset |
files
|
Wed, 07 Apr 2010 02:46:56 +0100 |
Matthew Wild |
Support for reading all fields in the chunk (including function prototypes, required for OP_CLOSURE)
|
changeset |
files
|
Tue, 06 Apr 2010 19:27:28 +0100 |
Matthew Wild |
Initial stab at reading Number constants from bytecode
|
changeset |
files
|
Tue, 06 Apr 2010 14:51:25 +0100 |
Matthew Wild |
Throw error on unhandled opcodes
|
changeset |
files
|
Tue, 06 Apr 2010 14:51:06 +0100 |
Matthew Wild |
Use new notation for accessing instruction fields
|
changeset |
files
|
Tue, 06 Apr 2010 14:49:52 +0100 |
Matthew Wild |
Add a bytecode interpreter \o/
|
changeset |
files
|
Tue, 06 Apr 2010 14:47:21 +0100 |
Matthew Wild |
Add debugMode switch
|
changeset |
files
|
Tue, 06 Apr 2010 14:46:30 +0100 |
Matthew Wild |
Add errors for when trying to index non-tables
|
changeset |
files
|
Mon, 05 Apr 2010 17:23:18 +0100 |
Matthew Wild |
Implement OP_SETGLOBAL
|
changeset |
files
|
Mon, 05 Apr 2010 17:14:58 +0100 |
Matthew Wild |
Print error on error
|
changeset |
files
|
Mon, 05 Apr 2010 17:14:36 +0100 |
Matthew Wild |
Return nil for non-existent table keys
|
changeset |
files
|
Mon, 05 Apr 2010 17:14:09 +0100 |
Matthew Wild |
Throw an error if trying to call a non-function
|
changeset |
files
|
Mon, 05 Apr 2010 17:03:06 +0100 |
Matthew Wild |
Implement OP_MOVE, OP_LOADNIL and OP_RETURN. Also change the way OP_CALL is implemented, and update the test code with a more complicated (kind of) sample.
|
changeset |
files
|
Sun, 04 Apr 2010 21:08:23 +0100 |
Matthew Wild |
Style fix
|
changeset |
files
|
Sun, 04 Apr 2010 21:02:16 +0100 |
Matthew Wild |
Initial commit
|
changeset |
files
|