Commit graph

376 commits

Author SHA1 Message Date
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
Justin Ethier
0ca396f8fa Add new string_type field 2017-10-20 16:29:47 +00:00
Justin Ethier
889ec5885e Removing "magic numbers" for GC heap size 2017-09-20 13:32:20 +00:00
Justin Ethier
8b3bf050e8 Added new members for in-memory I/O 2017-08-19 18:04:39 -04:00
Justin Ethier
4c5191f2b8 Added new read_len field for fread 2017-08-17 13:54:44 +00:00
Justin Ethier
24bfd89774 WIP 2017-08-12 18:15:02 -04:00
Justin Ethier
e9dc22a296 WIP 2017-08-11 13:40:40 +00:00
Justin Ethier
a9e0d86fea Add line/column numbers to port type 2017-08-11 10:13:39 +00:00
Justin Ethier
74eff82805 Added flags 2017-08-09 16:12:53 +00:00
Justin Ethier
0aa3437143 WIP 2017-07-29 20:27:43 -04:00
Justin Ethier
be9d68c3f1 Only preemtively grow small obj heaps 2017-07-28 21:33:28 -04:00
Justin Ethier
ed71f4f0de Experimenting with GC strategies for the "rest" heap 2017-07-27 14:07:44 +00:00
Justin Ethier
6e6a4239a4 Bug fixes 2017-07-21 13:39:55 +00:00
Justin Ethier
b8d2fda060 WIP 2017-07-21 13:03:54 +00:00
Justin Ethier
f0acc9c810 WIP 2017-07-20 18:57:27 -04:00
Justin Ethier
acb797e323 WIP - Experimenting with REST heap allocation 2017-07-20 17:46:08 +00:00
Justin Ethier
07df5b03c5 Debug output for sizes of allocated objs 2017-07-20 13:15:20 +00:00
Justin Ethier
eb4a4b9aff Consistent style 2017-07-19 17:54:08 -04:00
Justin Ethier
4011cdb601 Spelling fix 2017-07-19 16:36:05 +00:00
Justin Ethier
3fcd455189 Fixes to mark_stack_or_heap_obj
- Detect value types and return early
- Attempt to lock less often
2017-07-19 16:16:40 +00:00
Justin Ethier
4e5266a78d Do not gc_heap_align result of gc_allocated_bytes
This function already heap aligns it's return value so there is no need to use the alignment macro again.
2017-06-24 17:42:37 -04:00
Justin Ethier
e6d79fb63f Do a proper trace 2017-06-16 16:39:32 +00:00
Justin Ethier
c550b15f3a Issue #150 - Inefficient (but working) thread-join! 2017-06-17 01:36:47 -04:00