Commit Graph

265 Commits

Author SHA1 Message Date
5711ca218e improved readme, added asciinema demo 2023-12-29 18:18:22 -06:00
5cd3049d66 cdebug: added cosmoG_disassemble
for now cosmo will disassemble each script before running
2023-12-29 18:17:52 -06:00
cd37cfdae5 cparse: removed stale expressionStatement forward declare 2023-12-29 18:01:33 -06:00
e0455902b0 'return' is now a valid statement outside of a function
lets us do some cool things later. also the repl can print returned values. eg.

`return "hello world"` will print `<string> "hello world"` to the console
2023-12-28 23:41:10 -06:00
43d79a456e cparse.c: removed expressionStatement() 2023-12-28 23:27:08 -06:00
105a3d70c3 cparse.c: refactoring
- remove declaration(), replace calls with statement()
- fix possible UB in parsePrecedence; no idea how this *wasn't* causing a segfault tbh
2023-12-28 23:20:19 -06:00
93f3ae1106 cvm.c:cosmoV_printError -> cosmoV_printBacktrace 2023-12-28 22:56:57 -06:00
4816e64612 cvalue.c:printValue renamed to cosmoV_printValue 2023-12-28 22:52:20 -06:00
0df56bd42a ctable: hash COBJ_CFUNCTION based on cfunc and not the actual <obj> 2023-12-28 19:56:25 -06:00
e7b2d7d833 cbaselib.c:fileB_read() fix MSVC warnings 2023-12-27 21:12:12 -06:00
39060a67e9 fix cosmoB_loadObjLib()
- wrong # of pairs passed to cosmoV_makeTable
- minor refactoring of cmem.c:sweep()
2023-12-26 12:27:45 -06:00
5296495e47 formatting fixes 2023-12-26 10:59:42 -06:00
a337e26229 added <obj>:keys() method
this method returns a table of keys or 'fields' available in the object
2023-12-25 19:08:04 -06:00
b7bb0773b1 removed stale WRITE_GLOBAL_OP macro 2023-12-25 19:08:04 -06:00
7f5e3ae8dc lol oops 2023-11-03 22:59:31 -05:00
7a54230cb9 hated the styling of this
consistency is nice to have
2023-11-03 22:36:59 -05:00
1a7d6caec6 fix __proto object getter 2023-09-11 22:17:35 -05:00
1678194941 minor refactoring 2023-09-06 20:23:18 -05:00
3ea653b26d added file:write() & an optional mode param to os.open() 2023-09-06 17:29:38 -05:00
d3de4c0e66 removed more debug prints 2023-09-05 14:45:03 -05:00
d66d4807b3 removed debug prints, oops 2023-09-05 14:43:50 -05:00
1fcb35168f fix makefile 2023-09-05 14:42:29 -05:00
611162b3be documented the new os.open and file objects 2023-09-05 14:41:59 -05:00
b3587f48a2 added os.open(); new file object
eg.
```lua
local err, file = os.open("LICENSE.md")
if err then
    // do error handling stuff
end

// passing "a" to read() will read the whole file
print(file:read("a"))
```
2023-09-05 14:38:24 -05:00
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
6701a63a63 capture freezeGC in CPanic 2023-09-05 02:23:31 -05:00
ffff01e9d1 build a release build for linux as well 2023-09-04 20:15:15 -05:00
89be01aaf6 even more error handling refactoring
removing all of these useless checks has actually made cosmoV_execute just a
lil bit faster :)
2023-09-04 20:14:53 -05:00
cc9eb4a5ec lol oops 2023-09-01 17:16:10 -05:00
789c5210b4 switched to a better linenoise fork
https://github.com/msteveb/linenoise

this version has several benefits, namely win32 support :D
2023-09-01 17:12:39 -05:00
dfdd97e739 fix artifacts path 2023-09-01 14:43:20 -05:00
096d80d8df better repl input, using linenoise 2023-08-31 23:17:13 -05:00
f7bc8e0471 include util path 2023-08-31 23:16:28 -05:00
fce568addc whoops, wrong path to the workflow file 2023-08-30 21:30:20 -05:00
f5e75f09b9 ig that runner doesn't work lol 2023-08-30 21:28:50 -05:00
fe136f84b5 removed CERROR 2023-08-30 20:14:03 -05:00
de8cd481c3 allow manual runs 2023-08-30 20:12:06 -05:00
6654c3b91c wrong output path for windows build 2023-08-30 20:09:06 -05:00
21f7ea5c14 oops 2023-08-30 20:03:30 -05:00
e1591ae3fd switched from appveyor to github workflow 2023-08-30 20:02:04 -05:00
bfdd33e01d fix vm.collect()
we don't freeze the vm on entry to C functions now
2023-08-26 15:03:56 -05:00
c0893b8a14 more refactoring; things seem to work fine
all example scripts run fine with GC_STRESS enabled
2023-08-30 12:00:52 -05:00
d30bcace9a don't freezeGC during GC cycle 2023-08-29 23:32:25 -05:00
6a47c82179 fix more GC bugs 2023-08-29 23:21:52 -05:00
d41126e75f fix cparse.c gc bug 2023-08-29 23:01:47 -05:00
9f19fd4f31 fix this test script 2023-08-29 16:51:04 -05:00
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
7fa7eb8d94 fixed minor memory leak in cparse
we keep track of internal values used by the parser by pushing them onto the stack
and popping them off once complete.
2023-08-29 15:27:22 -05:00
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
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