Commit Graph

255 Commits

Author SHA1 Message Date
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
3f39211081 minor refactoring 2023-08-25 23:34:21 -05:00
c5e4305ef8 refactored cobj.c:printObject()
uses obj type strings from cosmoO_typeStr
2023-08-25 21:28:41 -05:00
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
2f0f675159 more debug related refactoring 2023-08-25 20:44:24 -05:00
7c5d2f6b65 minor CTable refactoring 2023-08-25 19:57:16 -05:00
f76f2ffa92 refactoring and cleanup
cosmoB_loadOSLib -> cosmoB_loadOS
2023-08-24 23:36:32 -05:00
155e0829fb minor refactoring 2023-06-03 01:39:35 -05:00
2b3825d258 implemented jump table dispatch
- currently only enabled on supported platforms (GNU C Compiler + Clang)
- when enabled, sped up examples/fibtest.cosmo by about 20% (avg of 11.179s prior and 8.799 after)

NOTE: malicious dumps can trivially cause crashes now by having junk function chunks
2023-06-03 01:17:28 -05:00
7bca6927a9 fixed formatting 2023-06-01 22:28:07 -05:00
d3647c161b added vm.disassemble() 2023-06-01 19:04:12 -05:00