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
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