Commit Graph

256 Commits

Author SHA1 Message Date
3ce098953e fix __proto object getter 2023-09-11 22:17:35 -05:00
aaede37839 minor refactoring 2023-09-06 20:23:18 -05:00
b3f3ad992d added file:write() & an optional mode param to os.open() 2023-09-06 17:29:38 -05:00
f51e072922 removed more debug prints 2023-09-05 14:45:03 -05:00
b66858d286 removed debug prints, oops 2023-09-05 14:43:50 -05:00
34c55eee87 fix makefile 2023-09-05 14:42:29 -05:00
a2d0b79c2e documented the new os.open and file objects 2023-09-05 14:41:59 -05:00
4de274d760 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
074e8b52cc 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
56161a32e7 capture freezeGC in CPanic 2023-09-05 02:23:31 -05:00
1544332b90 build a release build for linux as well 2023-09-04 20:15:15 -05:00
b73d865447 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
5a00d61646 lol oops 2023-09-01 17:16:10 -05:00
83dfd36c5c 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
2d889a37d1 fix artifacts path 2023-09-01 14:43:20 -05:00
0f0a8fb085 better repl input, using linenoise 2023-08-31 23:17:13 -05:00
c03df8f506 include util path 2023-08-31 23:16:28 -05:00
38d9c499ea whoops, wrong path to the workflow file 2023-08-30 21:30:20 -05:00
79d40d4bb0 ig that runner doesn't work lol 2023-08-30 21:28:50 -05:00
dc44adba6e removed CERROR 2023-08-30 20:14:03 -05:00
7c0bec5e6c allow manual runs 2023-08-30 20:12:06 -05:00
a44450ff22 wrong output path for windows build 2023-08-30 20:09:06 -05:00
58c857d2ea oops 2023-08-30 20:03:30 -05:00
38136d028f switched from appveyor to github workflow 2023-08-30 20:02:04 -05:00
420cd3e856
Merge pull request #7 from CPunch/error-handling
Error handling
2023-08-30 12:05:57 -05:00
bfde2d25cf
Merge branch 'main' into error-handling 2023-08-30 12:03:01 -05:00
97d40765ce more refactoring; things seem to work fine
all example scripts run fine with GC_STRESS enabled
2023-08-30 12:00:52 -05:00
37e4653d40 don't freezeGC during GC cycle 2023-08-29 23:32:25 -05:00
1ae473383d fix more GC bugs 2023-08-29 23:21:52 -05:00
6ed5589513 fix cparse.c gc bug 2023-08-29 23:01:47 -05:00
1408a07b23 fix this test script 2023-08-29 16:51:04 -05:00
27818b3788 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
37e42eb60b 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
cd3047c271 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
f26376e6f5 WIP: major error handling refactoring
switching to setjmp instead of the really bad global 'panic' flag
2023-08-28 21:13:00 -05:00
409937c1fa fix vm.collect()
we don't freeze the vm on entry to C functions now
2023-08-26 15:03:56 -05:00
1d2ba217af minor refactoring 2023-08-25 23:34:21 -05:00
e28ffe1c6c refactored cobj.c:printObject()
uses obj type strings from cosmoO_typeStr
2023-08-25 21:28:41 -05:00
9c5270124d 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
5fc9af5564 more debug related refactoring 2023-08-25 20:44:24 -05:00
a1c58647ba minor CTable refactoring 2023-08-25 19:57:16 -05:00
5c3e24fc39 refactoring and cleanup
cosmoB_loadOSLib -> cosmoB_loadOS
2023-08-24 23:36:32 -05:00
dcf6a09dae minor refactoring 2023-06-03 01:39:35 -05:00
e0faa14b35 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
861607d6a8 fixed formatting 2023-06-01 22:28:07 -05:00
10c9f92a06 Merge branch 'main' of github.com:CPunch/Cosmo 2023-06-01 22:22:50 -05:00
8dfd7744c2 fixed MSVC support 2023-06-01 22:22:44 -05:00
7f7bc7c6ad added vm.disassemble() 2023-06-01 19:04:12 -05:00
5169aca6d0 forgot to update this a while back 2023-05-28 21:16:30 -05:00
c34c5850e2 whoops, need to update the command to run the testsuite 2023-05-28 21:13:51 -05:00