Commit Graph

175 Commits

Author SHA1 Message Date
CPunch f6aaeb3417 fixed typos 2020-12-19 13:32:43 -06:00
CPunch 0beeee0fdf Added dictionary support to OP_ITER
ISTRING_RESERVED was added to iStrings
call & callCFunction now use memmove instead of memcpy
Additionally, added cosmoO_setUserP, cosmoO_getUserP, cosmoO_setUserI and cosmoO_getUserI to the C API.
2020-12-17 19:44:04 -06:00
CPunch b2c1f73e01 moved the results cap check in callCFunction 2020-12-16 03:58:56 -06:00
CPunch eede892eb0 made OP_ITER and OP_NEXT use CObjMethods 2020-12-16 03:51:50 -06:00
CPunch e5eca7bed6 Added iterable objects
__iter and __next are now reserved IStrings, OP_NEXT and OP_ITER have also been added. A new token (TOKEN_IN) has been added to the lexer. The parser now supports the for each loop (for i, ... in <object> do ... end).
savedPushed has been removed from the CCompilerState struct.
2020-12-15 21:21:51 -06:00
CPunch 4f3f594b82 added multiple return value support to the parser 2020-12-14 14:38:46 -06:00
CPunch 48ceca1834 multiple return value support added to VM 2020-12-12 21:53:12 -06:00
CPunch bf59f70598 added IS_METHOD to IS_CALLABLE 2020-12-12 21:17:31 -06:00
CPunch ec8f5e7e4f added foreach() 2020-12-12 18:16:31 -06:00
CPunch 219a87c79c added IS_DICT() 2020-12-12 17:36:55 -06:00
CPunch d03175c9c5 OP_COUNT expects a dictionary 2020-12-12 17:34:54 -06:00
CPunch b1facfc92f smarter caching 2020-12-09 20:46:20 -06:00
CPunch 181ef8a18c Added dictionaries {}
Objects are now separate from {} dictionaries

the . operator now only indexes fields on objects, the [] operator can only be used on objects if the __index or __newindex functions are defined

Additionally 4 new instructions have been added to the VM: OP_NEWDICT, OP_INDEX, OP_INCINDEX, and OP_NEWINDEX.

The syntax to create a dictionary is as follows { <key> : <value>, <otherkey> : <othervalue> } eg. { "hello" : "world", "foo" : 1337 }

The Lexer & Parser was extended to add the TOKEN_COLON ':' token.
2020-12-09 20:32:42 -06:00
CPunch 6445dae04c added module names for functions 2020-12-09 12:23:16 -06:00
CPunch 9aa7fa1381 replaced facttest.lua with fibtest.lua
Optimized the NaN box to be byte aligned, performance under the fibtest.lua script improved by ~2.5 seconds (~31 before ~28.5 after on cpunch's machine)
also cleaned up some misc. comments
2020-12-07 23:26:55 -06:00
CPunch f8a062919f added cosmoM_addRoot & cosmoM_removeRoot 2020-12-07 15:53:23 -06:00
CPunch aff011a8d1 minor refactoring 2020-12-07 14:35:14 -06:00
CPunch d00b803e6f added __setter and __getter 2020-12-06 14:11:33 -06:00
CPunch 005e2acd1e added cosmoO_setUserData and cosmoO_getUserData 2020-12-06 13:38:05 -06:00
CPunch 9ca67c8408 changed class -> proto 2020-12-05 17:58:56 -06:00
CPunch e0d51c191f renamed cosmoV_makeObject 2020-12-05 17:55:09 -06:00
CPunch 3a18d14a80 removed stale comments 2020-12-04 12:30:01 -06:00
CPunch d154d71163 improved nan box performance 2020-12-04 12:19:07 -06:00
CPunch b936827cc6 added support for NaN boxing (8 byte CValues!) 2020-12-04 00:04:14 -06:00
CPunch 495f1d7272 more minor refactoring 2020-11-30 12:50:55 -06:00
CPunch 0f138abedd minor refactoring 2020-11-30 12:40:36 -06:00
CPunch 08c640cd58 added # operator, improved error messages 2020-11-30 12:32:04 -06:00
CPunch 9dcd1c909a fixed needless pop in _main chunk 2020-11-27 19:42:00 -06:00
CPunch fe2bcf8ae6 fixed GC bug, extended strings 2020-11-27 19:34:54 -06:00
CPunch e784933517 fixed lexer errors 2020-11-26 12:54:45 -06:00
CPunch 9ccb258a93 added special character support to strings 2020-11-26 12:48:36 -06:00
CPunch 0745fd10a9 extended lexer, fixed table shrinking 2020-11-25 23:34:02 -06:00
CPunch bb11b3b309 added support for __newindex 2020-11-24 15:16:37 -06:00
CPunch d2093098a4 fixed README 2020-11-20 15:37:46 -06:00
CPunch 6485f90c2d updated README 2020-11-20 15:32:12 -06:00
CPunch 6d45c0a676 fixed __index 2020-11-20 15:10:49 -06:00
CPunch 85e7deae7b better support for OP_INCOBJECT 2020-11-20 14:50:43 -06:00
CPunch 46b99ab390 minor refactoring, added inc and dec operators 2020-11-19 14:41:21 -06:00
CPunch 3727d6bb7c OP_NEWOBJECT uses long operand 2020-11-18 14:35:58 -06:00
CPunch 4c4b5eae8d refactored stress test 2020-11-17 15:13:51 -06:00
CPunch aaed92424f CObjMethod refactor 2020-11-17 15:07:56 -06:00
CPunch e6a377dfd0 added comments 2020-11-17 14:39:02 -06:00
CPunch c1854bdcf1 shrink based on count 2020-11-17 14:34:30 -06:00
CPunch 7182f5ccd1 do GC before table array is allocated 2020-11-17 14:32:20 -06:00
CPunch 329d34aa43 fixed clang warnings 2020-11-17 13:17:23 -06:00
CPunch ef8218996c fix clang warning 2020-11-17 03:38:00 -06:00
CPunch 1189dc4b78 correctly mark tombstones 2020-11-17 03:36:56 -06:00
CPunch 1329b72fcd fixed GC bug 2020-11-17 03:10:55 -06:00
CPunch 204bec3d0a added IStrings, added __index functionality 2020-11-16 19:58:16 -06:00
CPunch c7be39a5d4 renamed metaobjects to protoobjects 2020-11-15 12:22:11 -06:00