Commit graph

327 commits

Author SHA1 Message Date
Justin Ethier
4110c6a4e1 New container for mutator threads 2015-12-18 22:05:37 -05:00
Justin Ethier
4e9bd1ea02 Added GC thread state, and notes 2015-12-18 23:49:32 -05:00
Justin Ethier
e57688a774 Added thread start/end functions to runtime 2015-12-17 22:45:45 -05:00
Justin Ethier
dfed77639a Adding thread application stubs 2015-12-15 22:58:15 -05:00
Justin Ethier
ff18c50aac Cleanup all thread data members 2015-12-14 21:30:51 -05:00
Justin Ethier
d8a96d17b7 Added header comment 2015-12-11 21:16:17 -05:00
Justin Ethier
29e6cb38e9 Tweaked GC thresholds 2015-12-10 21:48:19 -05:00
Justin Ethier
be9a07551e Added notes 2015-12-10 23:13:40 -05:00
Justin Ethier
ded3f76cc8 Scheduling of GC 2015-12-10 23:11:22 -05:00
Justin Ethier
5fa6f19418 Adding stubs for collector scheduling 2015-12-09 22:55:46 -05:00
Justin Ethier
de0c19e1cd Keep track of the amount of free space in the heap 2015-12-09 22:46:00 -05:00
Justin Ethier
15ac239d2f Mark current continuation during GC coop
Mark both current cont (gc_cont + args) as well as all moved objects during cooperation. Trying to prevent cases of valid objects being collected when they should have been part of the continuation chain (IE, parens in read:parse).
2015-12-09 23:38:15 -05:00
Justin Ethier
ce500fff3e Removed dead code and errant gc_mark_gray 2015-12-08 22:49:20 -05:00
Justin Ethier
a5dcb6c6a2 Potential debug tracing 2015-12-09 02:59:25 -05:00
Justin Ethier
9199bf512a Separate debug printing in gc_mut_cooperate 2015-12-08 21:42:18 -05:00
Justin Ethier
6ad9e6098f Removed hacky gc_stack functions 2015-12-08 21:37:01 -05:00
Justin Ethier
33447ebc57 New write barrier implementation 2015-12-07 22:34:29 -05:00
Justin Ethier
598c981ecb Adding an experimental safety check 2015-12-08 03:02:30 -05:00
Justin Ethier
c4554c5af6 Added notes 2015-12-07 23:29:51 -05:00
Justin Ethier
5818ffc0eb Temporarily reverting gc_stack change 2015-12-07 22:54:54 -05:00
Justin Ethier
e994d4aa76 Do thread locking outside of gc_mark_gray
Changed the locking to attempt to avoid race conditions where not all of the heap objects have been moved prior to the collector staring to process them.
2015-12-07 22:02:38 -05:00
Justin Ethier
9ded782a06 New approach to stack graying from write barrier 2015-12-06 22:37:08 -05:00
Justin Ethier
3d0d966e6d Changed GC cooperation
Mark all objects moved to the heap, instead of just the typical roots.
2015-12-05 22:44:06 -05:00
Justin Ethier
17fbd853c7 Added note 2015-12-04 22:31:31 -05:00
Justin Ethier
09f4a638cf Added notes 2015-12-05 02:55:28 -05:00
Justin Ethier
ef0571b45e Move verbose output to stderr to make runtime logging easier 2015-12-03 23:14:18 -05:00
Justin Ethier
ea6167b90b Fixed debug statements 2015-12-03 02:51:58 -05:00
Justin Ethier
f6e14ef3a8 Added debugging 2015-12-01 22:34:39 -05:00
Justin Ethier
c70a69c202 WIP 2015-12-01 22:41:11 -05:00
Justin Ethier
52f0868d24 Selectively compile debug traces 2015-11-30 21:40:16 -05:00
Justin Ethier
e29633f2b2 Fixed off-by-one error WRT last read/write 2015-12-01 03:07:34 -05:00
Justin Ethier
ae46e39c45 Added TODO 2015-12-01 00:22:54 -05:00
Justin Ethier
7276eea773 Added debugging 2015-11-30 23:00:30 -05:00
Justin Ethier
b5849e10ed Added debug traces 2015-11-26 22:45:22 -05:00
Justin Ethier
604eb682c5 Trace object graph used to mark 2015-11-26 01:52:42 -05:00
Justin Ethier
c8d82f899f Debug alloc info 2015-11-26 00:15:43 -05:00
Justin Ethier
a257423999 More debugging 2015-11-25 23:54:16 -05:00
Justin Ethier
e95eeb8732 Record marking 2015-11-25 23:51:13 -05:00
Justin Ethier
ff1fc10a90 Added debug statements 2015-11-25 23:46:50 -05:00
Justin Ethier
6ad6f6e254 Added debug traces 2015-11-25 02:58:05 -05:00
Justin Ethier
3e7877b402 Working around mark-free-list problem for now, need to revisit this. 2015-11-24 23:09:49 -05:00
Justin Ethier
469cfa4c08 Debugging - how could gc_sweep/p be a value type? 2015-11-21 02:57:32 -05:00
Justin Ethier
d13327cfd4 Debugging 2015-11-21 02:14:57 -05:00
Justin Ethier
f5c60589b0 Debugging 2015-11-21 01:45:23 -05:00
Justin Ethier
b4659a563a WIP 2015-11-19 23:00:41 -05:00
Justin Ethier
2215807a7c WIP, need to get sweep (trace?) working 2015-11-19 21:18:52 -05:00
Justin Ethier
91e018c78b Testing in isolation without gc_sweep enabled 2015-11-20 02:56:59 -05:00
Justin Ethier
8945773e1c Added notes 2015-11-19 23:09:27 -05:00
Justin Ethier
8bf20a05b5 Copy objects into heap while we have the heap lock
Attempting to prevent issues with unitialized memory. Unfortunately this is not the primary cause of the errors.
2015-11-19 23:00:53 -05:00
Justin Ethier
173e1ca407 At least for now, exit on error so we can try to track them down 2015-11-19 02:57:32 -05:00