Commit graph

348 commits

Author SHA1 Message Date
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
Justin Ethier
37bd321245 Remove dead code and clean up formatting 2018-07-18 13:31:02 -04:00
Justin Ethier
91c67aee8b Added comments around trace/alloc/clear colors 2018-07-18 13:14:45 -04:00
Justin Ethier
df27292e6d Cleanup and remove unneeded code 2018-07-17 22:02:03 -04:00
Justin Ethier
972e11b04f Fix for complex numbers 2018-07-17 15:34:31 -04:00
Justin Ethier
67c50608f0 Temporarily re-enabling 2018-07-17 13:18:59 -04:00
Justin Ethier
50eb431225 Fully-disable fixed-size heaps for now 2018-07-17 13:08:24 -04:00
Justin Ethier
d7fa754d1f Temporarily revert gc_alloc code to stabilize
The code crashes even with these changes reverted, so something else is clearly wrong.
2018-07-16 18:58:04 -04:00
Justin Ethier
c89a434bf9 Fixing up fixed-size heaps 2018-07-16 18:33:30 -04:00
Justin Ethier
7994354835 WIP: fixed-size heaps 2018-07-16 13:17:58 -04:00
Justin Ethier
1343490c9b Experimental change to fix GC crashes
I think the real problem may be that we mark globals before waiting for the mutators to transition to the new Mark color. If we wait until after a minor gc to update the mark color, there is a window where the mutator may sweep, and this is after globals have been marked. So the newly marked objects may be accidentally freed by sweep!
2018-07-14 21:23:28 -04:00
Justin Ethier
5216131309 Temporary (?) failsafe in gc_sweep
Also account for collector's mark color when sweeping old objects. Sucks to have to make 3 comparisons but its better than risking accidentally freeing a traced object!
2018-07-13 22:35:44 -04:00
Justin Ethier
38b7a04fa8 Fix memory leak 2018-07-10 17:31:31 -04:00
Justin Ethier
1319b10b73 Fix segfault 2018-07-09 18:01:50 -04:00
Justin Ethier
68ddb831bb Fix compiler error 2018-07-09 17:57:52 -04:00
Justin Ethier
35a8784236 Add diagnostics 2018-07-09 17:56:36 -04:00
Justin Ethier
0df28b5ddc Experimenting with alternative gc init 2018-07-09 13:38:51 -04:00
Justin Ethier
2cba2f42fc Clean up gc_log() 2018-07-05 13:41:47 -04:00
Justin Ethier
053ef0ada5 Added gc_log() 2018-07-05 13:24:00 -04:00
Justin Ethier
17c454f2ec Integrate gc-perf3-dev changes with master 2018-07-02 18:56:03 -04:00
Justin Ethier
7a6cf37a30 Cleanup trace section 2018-06-14 13:17:20 -04:00
Justin Ethier
49e06dce07 Cleanup comment 2018-06-12 16:08:02 -04:00
Justin Ethier
3cff2e1560 Tweaks for new locking 2018-06-12 16:05:59 -04:00
Justin Ethier
fa82aeb6a5 WIP: tweaking locking of GC trace 2018-06-12 15:54:51 -04:00
Justin Ethier
74d53eb334 WIP: remove locking from GC collector's trace 2018-06-11 18:58:33 -04:00
Justin Ethier
9e94d4ee46 Cut over to new mark buffer data structure 2018-06-11 13:30:02 -04:00
Justin Ethier
9dddfb882f Issue #55 - Adding more complex number support 2018-05-07 20:48:53 -04:00