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
Justin Ethier
64be028166
Added gc_is_mutator_active()
2017-06-17 01:01:59 -04:00
Justin Ethier
5c1048bfe0
Avoid unnecessary call to gc_allocated_bytes
2017-06-12 17:57:47 -04:00
Justin Ethier
d02437a0c5
Reorder types in gc_move/gc_copy
...
Attempt to speed things up by moving more commonly-used objects up, and lesser-used ones down.
2017-06-11 16:57:38 -04:00
Justin Ethier
27970524c5
Generalization of globals_changed thread param
2017-06-09 17:17:01 +00:00
Justin Ethier
ea2550a882
Issue #199 - More efficient memory usage
...
Only use a single int on the heap to store the number of huge heap allocations. There is no need to track allocations on the other heaps, at least at this time.
2017-05-10 10:12:25 +00:00