Commit Graph

265 Commits

Author SHA1 Message Date
CPunch 3f39211081 minor refactoring 2023-08-25 23:34:21 -05:00
CPunch c5e4305ef8 refactored cobj.c:printObject()
uses obj type strings from cosmoO_typeStr
2023-08-25 21:28:41 -05:00
CPunch 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
CPunch 2f0f675159 more debug related refactoring 2023-08-25 20:44:24 -05:00
CPunch 7c5d2f6b65 minor CTable refactoring 2023-08-25 19:57:16 -05:00
CPunch f76f2ffa92 refactoring and cleanup
cosmoB_loadOSLib -> cosmoB_loadOS
2023-08-24 23:36:32 -05:00
CPunch 155e0829fb minor refactoring 2023-06-03 01:39:35 -05:00
CPunch 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
CPunch 7bca6927a9 fixed formatting 2023-06-01 22:28:07 -05:00
CPunch d3647c161b added vm.disassemble() 2023-06-01 19:04:12 -05:00
unknown d27d94975e fixed MSVC support 2023-06-01 22:22:44 -05:00
CPunch 2d0e63f706 forgot to update this a while back 2023-05-28 21:16:30 -05:00
CPunch dfcf0c92b5 whoops, need to update the command to run the testsuite 2023-05-28 21:13:51 -05:00
CPunch 447f874eff update README.md 2023-05-28 21:11:52 -05:00
CPunch 7b1bd1c9fc minor usage fix 2023-05-28 20:57:53 -05:00
CPunch 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
CPunch c44dc88972 minor stack fixes 2023-05-28 12:19:52 -05:00
CPunch d581e68166 proper error handling for dump edgecases 2023-05-28 12:16:00 -05:00
CPunch 2271681cec undef macros 2023-05-28 12:03:49 -05:00
CPunch cf18bbbe54 fixed GC bug in cundump.c 2023-05-28 11:55:48 -05:00
CPunch 3a872fb83f these values can be defined at the top of the function 2023-05-28 00:08:28 -05:00
CPunch 4ed1c79b50 formatting changes 2023-05-28 00:03:50 -05:00
CPunch bc6eb9b6dc added cdump.[ch] and cundump.[ch] to makefile 2023-05-27 23:17:17 -05:00
CPunch 635f31863f cvm.c: added cosmoV_undump 2023-05-27 23:16:47 -05:00
CPunch 49a7f68239 cdump.c: major refactoring; various fixes 2023-05-27 23:15:58 -05:00
CPunch 8efecf71a4 cdump.c: fix instruction and line info dumping 2023-05-27 23:15:12 -05:00
CPunch 395f352c6e started cundump.c:cosmoD_undump(); minor fixes 2023-05-25 21:12:21 -05:00
CPunch 65d37838cd started cdump.c:cosmoD_dump() 2023-05-25 19:41:13 -05:00
CPunch 3b13ae1624 minor refactoring and typos 2023-05-25 19:40:15 -05:00
CPunch d1a16d990c removed stale COBJ_STREAM usage 2023-05-25 18:34:39 -05:00
CPunch 0a4d36f2f4 update Docs to reflect keyword changes 2023-02-10 20:46:05 -06:00
CPunch 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
CPunch e335fd95d6 minor formatting fixes 2023-02-09 12:52:36 -06:00
CPunch b902ac90de removed CObjStream 2023-02-09 12:42:09 -06:00
CPunch 6056f8eb5b added clang-format 2023-02-09 12:32:48 -06:00
CPunch 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
CPunch 7b5825668d Added boilerplate for CObjStream 2021-03-20 01:44:03 -05:00
CPunch d13cc398c8 Added os.system() to the os.* library 2021-03-20 01:02:13 -05:00
CPunch 012d3702bf Updated Appveyor to test testsuite 2021-03-19 22:25:23 -05:00
CPunch d761970f17 Added minimal testsuite for IC
- main.c will now report errors for passed scripts
2021-03-19 22:23:04 -05:00
CPunch 0e730b9c51 Added svg to README, whitelisted commits only effecting the binary 2021-03-16 15:05:20 -05:00
CPunch bff2799bb6 Added AppVeyor CI 2021-03-16 14:54:44 -05:00
cpunch 07ca82f968 Added '__equal' metamethod docs 2021-02-24 12:52:31 -06:00
cpunch 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
cpunch 55e6453589 Improved cosmoO_equals performance for strings 2021-02-23 11:49:57 -06:00
cpunch c83dca2ab2 Added '__equal' metamethod, slightly refactored cosmoO_equal
- ISTRING_EQUAL has been added
2021-02-20 12:42:13 -06:00
cpunch 3890c9dd1e Refactored cosmoO_equals
This sets up room for the '__equal' metamethod to be added

- cosmoO_equals now requires the state to be passed
- cosmoV_equals now requires the state to be passed
- cosmoT_get now requires the state to be passed
2021-02-19 17:04:23 -06:00
cpunch 40739e9bea cparse.c now throws an error on illegal statements 2021-02-19 12:47:12 -06:00
Inversion 1eec23035f Temporary fix for possible bug 2023-11-03 22:55:19 -05:00