Commit Graph

41 Commits

Author SHA1 Message Date
cpunch 4816e64612 cvalue.c:printValue renamed to cosmoV_printValue 2023-12-28 22:52:20 -06:00
CPunch 5296495e47 formatting fixes 2023-12-26 10:59:42 -06:00
cpunch 7a54230cb9 hated the styling of this
consistency is nice to have
2023-11-03 22:36:59 -05:00
CPunch d3de4c0e66 removed more debug prints 2023-09-05 14:45:03 -05:00
CPunch bf36412699 removed 'roots', replaced with a registry table
- removed cosmoM_addRoot
- removed cosmoM_removeRoot
- renamed cosmoV_register to cosmoV_addGlobals
- added cosmoV_addRegistry
- added cosmoV_getRegistry
- added cosmoV_setProto
- added cosmoV_isValueUserType
2023-09-05 14:35:29 -05:00
CPunch 6701a63a63 capture freezeGC in CPanic 2023-09-05 02:23:31 -05:00
CPunch fe136f84b5 removed CERROR 2023-08-30 20:14:03 -05:00
CPunch 6a47c82179 fix more GC bugs 2023-08-29 23:21:52 -05:00
CPunch 6126b50941 cosmoV_throw() now resets the vm stack as well
also a minor GC bug in cosmoO_newError was fixed.

i'm going to try to phase out cosmoM_freezeGC & friends
since that would cause hell with this new
error handling solution. the only thing still using it is the GC.
2023-08-29 16:48:38 -05:00
CPunch 0633e87aa6 WIP: removed stale error handling
currently, scripts seem to run fine. however I'm a bit worried about stack related issues. maybe i'll need to reset state->top as well? but not entirely sure
2023-08-29 14:07:45 -05:00
CPunch 75d27afe2c WIP: major error handling refactoring
switching to setjmp instead of the really bad global 'panic' flag
2023-08-28 21:13:00 -05:00
CPunch 1a78a9ab5f finally fixed this memory bug
we were accidentally tracking frees of stuff that was never
allocated lol
2023-08-25 21:22:10 -05:00
CPunch 2f0f675159 more debug related refactoring 2023-08-25 20:44:24 -05:00
CPunch 6056f8eb5b added clang-format 2023-02-09 12:32:48 -06:00
cpunch c83dca2ab2 Added '__equal' metamethod, slightly refactored cosmoO_equal
- ISTRING_EQUAL has been added
2021-02-20 12:42:13 -06:00
CPunch cff26574bb Fixed table iteration bug, added vm.globals to debug lib 2021-01-25 16:14:51 -06:00
CPunch fd1481fa43 Minor VM refactor + GC bug fix
The VM now respects metamethods from proto objects connected to tables. Also the CState is frozen while being instantiated.
2021-01-23 17:16:45 -06:00
CPunch 0ad0df5fba Added '__tonumber' metamethod 2021-01-23 15:30:30 -06:00
CPunch 7c92749e0d Added '__count' metamethod to objects 2021-01-22 15:22:30 -06:00
CPunch c510c9aebf Minor table refactor, added cosmoV_compileString and loadstring() to baselib
cosmoV_compileString is recommended since it'll push the result (<error> or <closure>) onto the stack.

also, fixed some GC-related bugs, so yay!
2021-01-10 14:38:53 -06:00
CPunch 1351ff63b1 Added CObj->proto support, state->protoObjects defines default protos for each COBJ type
a lot of refactoring in the VM
2021-01-07 19:50:36 -06:00
CPunch eb2f50e456 Added CObjError, cosmoV_throw(), pcall(), and cosmoV_printError()
Errors are now handled very differently, parser errors and VM errors are now treated the same.
When cosmoV_error is called, cosmoV_throw is also called, which formats the error object and sets the panic state.
state->error now points to the latest CObjError when state->panic is true. To get a nice formatted Objection message, use
cosmoV_printError() and pass the state->error. pcall() was added to the standard base library. When called, the first argument
passed is called with the subsequent arguments given. If the call completed successfully, `true`,`nil` is returned. However
when an error occurs during the call, `false`,`<error>` is returned. Simply print the `<error>` to retrieve the error string.
2021-01-05 22:27:59 -06:00
CPunch adb2381b4f added __tostring IString, added expressionPrecedence() to cparse.c
additional minor refactoring
2021-01-03 17:33:10 -06:00
CPunch 7e9b61e018 minor refactor, fixed many warnings 2021-01-01 23:06:24 -06:00
CPunch de3a89ad4f cosmoV_register now uses the stack to pass params 2020-12-19 21:15:12 -06:00
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 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 b1facfc92f smarter caching 2020-12-09 20:46:20 -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 bb11b3b309 added support for __newindex 2020-11-24 15:16:37 -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
CPunch 08b6dcbf4c CObjMethod refactor 2020-11-12 23:04:09 -06:00
CPunch 01b796460a refactored internal strings 2020-11-12 16:52:56 -06:00
CPunch c42a72dfad Major refactoring, added classes, many bug fixes 2020-11-09 19:44:12 -06:00
CPunch aa975b7330 minor refactoring + non-zero int fixed 2020-11-05 19:53:55 -06:00
CPunch fe93a0b715 better GC debugging, added base object for tables 2020-11-02 22:32:39 -06:00
CPunch 2e1b745624 Initial commit 2020-10-28 00:16:30 -05:00