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