-
Notifications
You must be signed in to change notification settings - Fork 64
Changes
Working on figuring out a way to coerce types after a function call. This is necessary due to dynamic nature of Lua - the return type of a function is not known at compilation time.
Added the ability to generate code for local variables with type decorations (only int and double) for now, and support for type specific instructions to perform arithmetic operations; also added code to validate types to ensure that variables that are typed do not get assigned values of wrong type.
Went back to 32-bit instructions due to complexity of the 2-instruction approach.
Added RAVI opcodes for eq, lt, le operators Enhanced parser to recognise local name:type syntax. But constants are not typed yet.
Added RAVI opcode implementation in lvm.c for add, sub, mul and div operations.
Added various opcodes in opcodes.h. OP_RAVI opcode introduces a 64-bit instruction where the real opcode is stored in 10 bits - and a,b & c take up 16 bits each.
Added RAVI opcode UNMF to the VM - floating point unary minus.
Need to add more opcodes. So as a first step modified the SIZE_OP
to 8 bits and adjusted SIZE_B
and SIZE_C
in lopcodes.h.
Also in luaconf.h change LUAI_FUNC to LUA_API so that we can write some test cases using internal routines.