Commit Graph

33 Commits

Author SHA1 Message Date
dzaima
54cec2fdf5 split up CATCH_ERRORS into functional and semantic options
allows running a non-heapverify build that functions exactly as a heapverify one, while allowing ⎊ to function
2024-04-04 02:52:08 +03:00
dzaima
647a0b97e7 error on nested GC 2024-04-03 05:03:37 +03:00
dzaima
1b26e85325 don't need to mark static globals as hidden
gcc complains about this
2024-02-01 21:26:08 +02:00
dzaima
c078f62b1f add GLOBAL, INIT_GLOBAL, or const to globals 2024-02-01 21:13:39 +02:00
dzaima
fcc939dbed debug flag for running a GC every n'th allocation 2023-12-03 23:34:49 +02:00
dzaima
ad574d2269 refactor & document #define-s, always-available ')gc log' and ')mem log' 2023-10-31 03:16:48 +02:00
dzaima
d1a5ed3e00 err → fatal 2023-05-11 15:28:23 +03:00
dzaima
e276779eca fix heapverify 2023-04-21 21:53:11 +03:00
dzaima
4b6dd1bf81 immediately mark&sweep unknown reference objects instead of storing 2023-03-05 14:05:08 +02:00
dzaima
c5aedaa414 switch to GCv2, various fixes/cleanup
includes:
  fixing some refcounts for FOR_BUILD build •FFI
  moving DEBUG_VM prints to stderr
  fixing heapverify reports of loose shape objects of fillarrs
  regular ol' adding-of-semicolon-after-label for old gcc
  move GC enable to after all initialization, not load_init
2023-03-05 01:23:53 +02:00
dzaima
16274e5952 bucket coalescing on GC 2023-03-04 20:09:12 +02:00
dzaima
2c107025ab add argument for non-GC_VISIT_V2 2023-02-26 18:53:06 +02:00
dzaima
78eb351e10 allow top-level GC to collect all garbage in GC_VISIT_V2 2023-02-26 18:37:07 +02:00
dzaima
a928277e8c make heapverify run on GC_VISIT_V2
also make it able to track shape object leaks
2023-02-25 00:21:15 +02:00
dzaima
6e6169530d GC v2 2023-02-24 23:28:55 +02:00
dzaima
75fe558f1c detect writes past the end of a TALLOC allocation 2022-12-27 02:29:24 +02:00
dzaima
34e37d1b1a increase gc root buffer size 2022-11-24 01:09:50 +02:00
dzaima
f87a1155f5 store references instead of GC root functions to handle mutable roots
-0.21% binary size; mm_visit & mm_visitP got inlined in the gcFn-s, even though that's very pointless
2022-11-06 02:01:14 +02:00
dzaima
43b8b5e2a0 )escaped 2022-06-19 21:05:05 +03:00
dzaima
3fb793526c )erase; try to not oom on printing errors 2022-01-19 01:02:07 +02:00
dzaima
d68e278083 move nsTime to its own file 2021-12-29 19:49:16 +02:00
dzaima
4af5f3d4a6 store Value* as gc roots 2021-11-28 21:56:01 +02:00
dzaima
4697b91b1e fix >2 repeated imports & error on cyclical importing 2021-11-26 00:25:11 +02:00
dzaima
ef230f8dc0 remove static from function that isn't 2021-10-15 12:08:48 +03:00
dzaima
b7f60ffb1c move GC tag resetting from alloc to another pass 2021-10-10 23:11:49 +03:00
dzaima
c00834cf15 move mm_free call into virtual function so dec is simpler 2021-07-30 04:40:56 +03:00
dzaima
1b31c88e4c use mm_heapUsed() instead of allocB 2021-07-11 22:45:08 +03:00
dzaima
08723a3c80 use TI macros everywhere 2021-07-06 19:22:45 +03:00
dzaima
96f3089410 proper i64 formatting, move openbsd hack up 2021-06-06 22:23:55 +03:00
dzaima
7e994dd913 modifiable defines 2021-06-06 16:50:18 +03:00
dzaima
16f379b6c7 fix gc/refc issues, set memory to invalid objects on free in debug 2021-05-30 01:55:59 +03:00
dzaima
1b89661308 inline objects 2021-05-28 01:03:29 +03:00
dzaima
b2b826be9b incremental compilation 2021-05-23 21:55:49 +03:00