Commit graph

374 commits

Author SHA1 Message Date
Justin Ethier
62b05528a2 Issue #471 - Ensure atomics are properly traced 2021-07-28 22:39:18 -04:00
Justin Ethier
543ce4f4be Initiate major GC after a huge heap allocation
This allows us to reclaim the memory faster and keep memory usage lower.
2021-07-28 21:57:48 -04:00
Justin Ethier
da718dcac3 Fix off-by-one error with non-closure GC arg 2021-07-23 15:46:42 -04:00
Justin Ethier
e9ebfb8dcb Use new calling convention 2021-02-21 21:40:39 -05:00
Justin Ethier
c3075a6396 Added record_tag 2020-12-20 22:39:28 -05:00
Justin Ethier
9eb67e28e8 Issue #82 - Clean up 2020-06-17 22:54:08 -04:00
Justin Ethier
cf6ccc25d9 Issue #377 2020-05-18 18:18:33 -04:00
Justin Ethier
479e880b30 Allow optional collection of opaque pointers 2020-03-05 13:26:17 -05:00
Justin Ethier
648b14571c Log block size 2020-02-06 13:15:51 -05:00
Justin Ethier
2878138fd7 Add more logging 2020-02-05 18:08:44 -05:00
Justin Ethier
d051b81d80 Added more GC trace logging 2020-02-05 17:55:24 -05:00
Justin Ethier
81a3cf9c2f Additional HRT logging 2020-02-05 12:59:33 -05:00
Justin Ethier
3eaa2331d2 Avoid compiler warning 2019-11-14 15:10:56 -05:00
Justin Ethier
caf1dc23ef Keep track of heap page when growing the heap 2019-11-06 17:18:47 -05:00
Justin Ethier
26b426c307 Mark internal functions as static 2019-11-06 12:16:21 -05:00
Justin Ethier
e0388e892a Cleanup: Removed dead code, added comments 2019-11-04 14:10:46 -05:00
Justin Ethier
1551c9a8b7 Fix spelling 2019-10-09 17:47:55 -04:00
Justin Ethier
f7e6c11108 Port gc_is_stack_obj to a macro
This avoids function calls and can improve performance in extreme cases.
2019-09-26 17:24:27 -04:00
Justin Ethier
cdbf81c56a Forgot to lock for new_mutators 2019-06-11 15:54:12 -04:00
Justin Ethier
d1dbd7fae9 Issue #320 - Track threads that have not yet run
This allows (thread-join!) to be able to wait on these new threads
2019-06-10 13:16:39 -04:00
Justin Ethier
2202b3844f Mark child of atomic_type during tracing 2019-05-30 18:10:40 -04:00
Justin Ethier
d3e679fd03 Added atomic_type 2019-05-29 18:53:53 -04:00
Justin Ethier
4bc8bf1899 Copy immutable fields 2019-04-30 18:43:04 -04:00
Justin Ethier
3706647583 Refactoring 2019-03-21 17:16:21 -04:00
Justin Ethier
102244be21 Issue #304 - gc_copy_obj must to populate bignums
Even without bignums in the nursery we still need this code in place since gc_alloc calls it, and otherwise all of the callers would need to ensure bignums are properly initialized. There may be an opportunity here for optimization, but let's make sure everything works first!
2019-02-18 12:09:31 -05:00
Justin Ethier
e4085b2f1e Cleanup garbage chars 2018-11-29 17:59:01 -05:00
Justin Ethier
2ff11b1ace Experimental: remove unnecessary bignum code 2018-11-09 10:57:11 -05:00
Justin Ethier
b69f4f7233 Prevent segfault on ARM 2018-10-02 18:59:33 -04:00
Justin Ethier
388759853d Add docs 2018-08-24 12:52:23 -04:00
Justin Ethier
92a0160383 Simplify logic to match gc_sweep 2018-08-06 22:35:07 -04:00
Justin Ethier
2045df4932 Cleanup 2018-08-06 21:28:34 -04:00
Justin Ethier
79e21b64e0 Revise header comments 2018-08-08 17:25:06 -04:00
Justin Ethier
f0f071d3e2 Staging debug line 2018-08-08 12:19:16 -04:00
Justin Ethier
40c73203ce Issue #270 - Working through a solution 2018-08-06 20:15:06 -04:00
Justin Ethier
386e208eb8 Revert previous changed
noticed an intermittent crash running read1
2018-08-06 14:48:37 -04:00
Justin Ethier
219cdf2d66 Unify remaining/p math in gc_sweep_fixed_size 2018-08-06 13:58:16 -04:00
Justin Ethier
e383b45381 Do a better job of flagging free fixed-size pages 2018-08-03 13:24:57 -04:00
Justin Ethier
f8b409a8b9 Convert empty fixed-size page to bump&pop 2018-08-03 10:17:56 -04:00
Justin Ethier
e78a3e29bf Remove printf 2018-08-02 17:33:17 -04:00
Justin Ethier
c82223d0f4 Account for unswept heaps from last cycle 2018-08-02 17:45:01 -04:00
Justin Ethier
68a26e507b WIP, trying to cache unswept counts accurately 2018-08-02 13:46:25 -04:00
Justin Ethier
bb52f8db40 Issue #267 - Update free_size when sweeping bump&pop 2018-08-01 18:23:53 -04:00
Justin Ethier
6274eb2652 WIP 2018-08-01 16:58:14 -04:00
Justin Ethier
3ff33cbcb8 WIP - debugging cache of unswept count 2018-08-01 13:38:55 -04:00
Justin Ethier
ebc3247aa7 Remove unused code 2018-07-31 22:54:39 -04:00
Justin Ethier
7631607d87 Experimental tweaks 2018-07-31 13:42:50 -04:00
Justin Ethier
3369214c30 Cache number of unswept pages 2018-07-31 13:17:32 -04:00
Justin Ethier
dc89fbbc56 Added GC_COLLECT_UNDER_UNSWEPT_HEAP_COUNT
Also increased threshold from 2 to 3, to be a bit more aggresive with starting major GC's
2018-07-27 12:19:46 -04:00
Justin Ethier
da31b83e66 Remove dead comment 2018-07-26 17:44:39 -04:00
Justin Ethier
a2073b7803 Renamed member variable to "is_unswept" 2018-07-25 18:33:47 -04:00