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