Commit graph

349 commits

Author SHA1 Message Date
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
Justin Ethier
95e15dd3c2 Issue #199 - Initiate GC using huge GC alloc count
Free space does not work for huge heaps since often they are allocated on demand as a full page at a time. But if more than X huge pages have been allocated, it is probably a good time to initiate a major GC.
2017-05-09 23:01:44 +00:00
Justin Ethier
0d3ae68f87 Reorganize allocated_bytes to try to speed it up 2017-04-29 07:01:06 +00:00
Justin Ethier
3f75e8d231 Mark objects when collector cooperates
When the collector cooperates for a mutator it needs to mark any heap-collected objects that are stored within the mutator's data object. This prevents problems where these objects (which are essentially per-thread global roots) are incorrectly collected.
2017-03-16 14:07:36 +00:00
Justin Ethier
3b932ebfc5 WIP 2017-02-28 18:27:48 -05:00
Justin Ethier
b9253bb1d8 Added the rest of the docstrings 2017-02-28 00:07:31 -05:00
Justin Ethier
0dcbd5ecbb Added function docstrings 2017-02-27 22:23:57 -05:00
Justin Ethier
46ab172708 Added docs 2017-02-25 22:14:42 -05:00
Justin Ethier
4cfd1f06d8 Specify (void) 2017-02-24 12:59:20 -05:00
Justin Ethier
80290db8d5 Get rid of remaining sources of bignum leaks 2017-02-17 14:46:10 +00:00
Justin Ethier
876c1f0420 Cleanup, added gc_alloc_bignum() 2017-02-17 13:22:46 +00:00
Justin Ethier
b9c8d2abf4 WIP for libtommath 2017-02-08 18:33:20 -05:00
Justin Ethier
f58a44ebd0 At least for now, revert previous change
Only issue at the moment is compiler warnings on x86, which is not the primary target platform
2017-01-31 15:14:15 +00:00
Justin Ethier
2733a08f55 Fix compiler warnings on 32-bit x86 2017-02-01 00:45:14 -05:00
Justin Ethier
2b04c3b253 Set gc_cont and num args prior to blocking
This change shouldn't hurt anything and guarantees the collector thread is not trying to use gc_cont before it is set properly.
2017-01-30 14:24:57 +00:00
Justin Ethier
1e823c0d3f Issue #162 - Use platform-independent uintptr_t 2017-01-28 18:17:56 -05:00
Justin Ethier
981700af38 Remove errant semicolon 2017-01-28 17:54:35 -05:00
Justin Ethier
38ad580d33 Check return value of gc_heap_free() 2017-01-28 01:29:29 -05:00
Justin Ethier
5a25611934 Added to trace 2017-01-28 00:07:09 -05:00
Justin Ethier
8fa1bccd78 Finish heap merging, use separate heap locks 2017-01-28 00:01:01 -05:00
Justin Ethier
e30ff16b3d Added heap merge functions 2017-01-27 22:37:55 -05:00
Justin Ethier
8b530989ee Expose TODO for cleaning up old threads 2017-01-26 18:55:10 -05:00
Justin Ethier
54051ead86 Fixed up code so it builds now 2017-01-26 18:03:15 -05:00