Commit Graph

218 Commits

Author SHA1 Message Date
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
d27d94975e fixed MSVC support 2023-06-01 22:22:44 -05:00
2d0e63f706 forgot to update this a while back 2023-05-28 21:16:30 -05:00
dfcf0c92b5 whoops, need to update the command to run the testsuite 2023-05-28 21:13:51 -05:00
447f874eff update README.md 2023-05-28 21:11:52 -05:00
7b1bd1c9fc minor usage fix 2023-05-28 20:57:53 -05:00
9537a2c7b8 major main.c refactoring
- now takes command line arguments:
Usage: ./bin/cosmo [-clsr] [args]

available options are:
-c <in> <out>   compile <in> and dump to <out>
-l <in>         load dump from <in>
-s <in...>              compile and run <in...> script(s)
-r                      start the repl
2023-05-28 20:52:12 -05:00
c44dc88972 minor stack fixes 2023-05-28 12:19:52 -05:00
d581e68166 proper error handling for dump edgecases 2023-05-28 12:16:00 -05:00
2271681cec undef macros 2023-05-28 12:03:49 -05:00
cf18bbbe54 fixed GC bug in cundump.c 2023-05-28 11:55:48 -05:00
3a872fb83f these values can be defined at the top of the function 2023-05-28 00:08:28 -05:00
4ed1c79b50 formatting changes 2023-05-28 00:03:50 -05:00
bc6eb9b6dc added cdump.[ch] and cundump.[ch] to makefile 2023-05-27 23:17:17 -05:00
635f31863f cvm.c: added cosmoV_undump 2023-05-27 23:16:47 -05:00
49a7f68239 cdump.c: major refactoring; various fixes 2023-05-27 23:15:58 -05:00
8efecf71a4 cdump.c: fix instruction and line info dumping 2023-05-27 23:15:12 -05:00
395f352c6e started cundump.c:cosmoD_undump(); minor fixes 2023-05-25 21:12:21 -05:00
65d37838cd started cdump.c:cosmoD_dump() 2023-05-25 19:41:13 -05:00
3b13ae1624 minor refactoring and typos 2023-05-25 19:40:15 -05:00
d1a16d990c removed stale COBJ_STREAM usage 2023-05-25 18:34:39 -05:00
0a4d36f2f4 update Docs to reflect keyword changes 2023-02-10 20:46:05 -06:00
8ac8085d20 syntax: 'var'->'let' 'function'->'func'
- 'var' has some weird scoping connotations with users of JS. better to change it to 'let', which will decide whether to make the variable a local or a global
- 'func' looks visually appealing lol
- some minor refactoring done in cparse.c
2023-02-09 15:58:25 -06:00
e335fd95d6 minor formatting fixes 2023-02-09 12:52:36 -06:00
b902ac90de removed CObjStream 2023-02-09 12:42:09 -06:00
6056f8eb5b added clang-format 2023-02-09 12:32:48 -06:00
88284a0b6e Removed '-Werror' to the Makefile 2021-06-11 15:01:53 -05:00
Inversion
7998c2ab41 Add documentation for the OS library 2023-11-03 22:55:24 -05:00
7b5825668d Added boilerplate for CObjStream 2021-03-20 01:44:03 -05:00
d13cc398c8 Added os.system() to the os.* library 2021-03-20 01:02:13 -05:00
012d3702bf Updated Appveyor to test testsuite 2021-03-19 22:25:23 -05:00
d761970f17 Added minimal testsuite for IC
- main.c will now report errors for passed scripts
2021-03-19 22:23:04 -05:00
0e730b9c51 Added svg to README, whitelisted commits only effecting the binary 2021-03-16 15:05:20 -05:00
bff2799bb6 Added AppVeyor CI 2021-03-16 14:54:44 -05:00
07ca82f968 Added '__equal' metamethod docs 2021-02-24 12:52:31 -06:00
b545e8e5e3 Added another example script 'compare.comso'
- This stresses the table implementation as well as cosmoV_equals
2021-02-23 11:50:41 -06:00
55e6453589 Improved cosmoO_equals performance for strings 2021-02-23 11:49:57 -06:00
c83dca2ab2 Added '__equal' metamethod, slightly refactored cosmoO_equal
- ISTRING_EQUAL has been added
2021-02-20 12:42:13 -06:00