CPunch
5711ca218e
improved readme, added asciinema demo
2023-12-29 18:18:22 -06:00
CPunch
5cd3049d66
cdebug: added cosmoG_disassemble
...
for now cosmo will disassemble each script before running
2023-12-29 18:17:52 -06:00
CPunch
cd37cfdae5
cparse: removed stale expressionStatement forward declare
2023-12-29 18:01:33 -06:00
cpunch
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
cpunch
43d79a456e
cparse.c: removed expressionStatement()
2023-12-28 23:27:08 -06:00
cpunch
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
cpunch
93f3ae1106
cvm.c:cosmoV_printError -> cosmoV_printBacktrace
2023-12-28 22:56:57 -06:00
cpunch
4816e64612
cvalue.c:printValue renamed to cosmoV_printValue
2023-12-28 22:52:20 -06:00
CPunch
0df56bd42a
ctable: hash COBJ_CFUNCTION based on cfunc and not the actual <obj>
2023-12-28 19:56:25 -06:00
cpunch
e7b2d7d833
cbaselib.c:fileB_read() fix MSVC warnings
2023-12-27 21:12:12 -06:00
CPunch
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
CPunch
5296495e47
formatting fixes
2023-12-26 10:59:42 -06:00
CPunch
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
CPunch
b7bb0773b1
removed stale WRITE_GLOBAL_OP macro
2023-12-25 19:08:04 -06:00
cpunch
7f5e3ae8dc
lol oops
2023-11-03 22:59:31 -05:00
cpunch
7a54230cb9
hated the styling of this
...
consistency is nice to have
2023-11-03 22:36:59 -05:00
CPunch
1a7d6caec6
fix __proto object getter
2023-09-11 22:17:35 -05:00
CPunch
1678194941
minor refactoring
2023-09-06 20:23:18 -05:00
CPunch
3ea653b26d
added file:write() & an optional `mode` param to os.open()
2023-09-06 17:29:38 -05:00
CPunch
d3de4c0e66
removed more debug prints
2023-09-05 14:45:03 -05:00
CPunch
d66d4807b3
removed debug prints, oops
2023-09-05 14:43:50 -05:00
CPunch
1fcb35168f
fix makefile
2023-09-05 14:42:29 -05:00
CPunch
611162b3be
documented the new os.open and file objects
2023-09-05 14:41:59 -05:00
CPunch
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
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
ffff01e9d1
build a release build for linux as well
2023-09-04 20:15:15 -05:00
CPunch
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
CPunch
cc9eb4a5ec
lol oops
2023-09-01 17:16:10 -05:00
CPunch
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
CPunch
dfdd97e739
fix artifacts path
2023-09-01 14:43:20 -05:00
CPunch
096d80d8df
better repl input, using linenoise
2023-08-31 23:17:13 -05:00
CPunch
f7bc8e0471
include util path
2023-08-31 23:16:28 -05:00
CPunch
fce568addc
whoops, wrong path to the workflow file
2023-08-30 21:30:20 -05:00
CPunch
f5e75f09b9
ig that runner doesn't work lol
2023-08-30 21:28:50 -05:00
CPunch
fe136f84b5
removed CERROR
2023-08-30 20:14:03 -05:00
CPunch
de8cd481c3
allow manual runs
2023-08-30 20:12:06 -05:00
CPunch
6654c3b91c
wrong output path for windows build
2023-08-30 20:09:06 -05:00
CPunch
21f7ea5c14
oops
2023-08-30 20:03:30 -05:00
CPunch
e1591ae3fd
switched from appveyor to github workflow
2023-08-30 20:02:04 -05:00
CPunch
bfdd33e01d
fix vm.collect()
...
we don't freeze the vm on entry to C functions now
2023-08-26 15:03:56 -05:00
CPunch
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
CPunch
d30bcace9a
don't freezeGC during GC cycle
2023-08-29 23:32:25 -05:00
CPunch
6a47c82179
fix more GC bugs
2023-08-29 23:21:52 -05:00
CPunch
d41126e75f
fix cparse.c gc bug
2023-08-29 23:01:47 -05:00
CPunch
9f19fd4f31
fix this test script
2023-08-29 16:51:04 -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
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
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