Commit Graph

229 Commits

Author SHA1 Message Date
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
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
07ba4c731e update README.md 2023-05-28 21:11:52 -05:00
788911130d
Merge pull request #6 from CPunch/chunk-loading
Chunk loading
2023-05-28 20:59:10 -05:00
c464a76849 minor usage fix 2023-05-28 20:57:53 -05:00
8c6ba18848 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
93a09698a9 minor stack fixes 2023-05-28 12:19:52 -05:00
be49ec5af5 proper error handling for dump edgecases 2023-05-28 12:16:00 -05:00
4fe437ea4e undef macros 2023-05-28 12:03:49 -05:00
e854c5dbb3 fixed GC bug in cundump.c 2023-05-28 11:55:48 -05:00
c945c56482 these values can be defined at the top of the function 2023-05-28 00:08:28 -05:00
89d443d767 formatting changes 2023-05-28 00:03:50 -05:00
54a959438b added cdump.[ch] and cundump.[ch] to makefile 2023-05-27 23:17:17 -05:00
355842989b cvm.c: added cosmoV_undump 2023-05-27 23:16:47 -05:00
45f36e6e87 cdump.c: major refactoring; various fixes 2023-05-27 23:15:58 -05:00
819e76b711 cdump.c: fix instruction and line info dumping 2023-05-27 23:15:12 -05:00
f116efa02c started cundump.c:cosmoD_undump(); minor fixes 2023-05-25 21:12:21 -05:00
465f4d5e4a started cdump.c:cosmoD_dump() 2023-05-25 19:41:13 -05:00
3efee51224 minor refactoring and typos 2023-05-25 19:40:15 -05:00
2836de090b removed stale COBJ_STREAM usage 2023-05-25 18:34:39 -05:00
8e278e3a7d update Docs to reflect keyword changes 2023-02-10 20:46:05 -06:00
c8cae03604 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
5d805e258b minor formatting fixes 2023-02-09 12:52:36 -06:00
8df4cc65e3 removed CObjStream 2023-02-09 12:42:09 -06:00
7279623e24 added clang-format 2023-02-09 12:32:48 -06:00
517b0b9532 Removed '-Werror' to the Makefile 2021-06-11 15:01:53 -05:00
1df2e212cb
Merge pull request #4 from NeoInversion/dev
Commit authored by https://github.com/NeoInversion
2021-03-28 01:18:39 -05:00
Inversion
84ec5d2aee Add documentation for the OS library 2021-03-27 23:11:47 -07:00
6859ec98ad Added boilerplate for CObjStream 2021-03-20 01:44:03 -05:00