Commit graph

470 commits

Author SHA1 Message Date
Justin Ethier
1e823c0d3f Issue #162 - Use platform-independent uintptr_t 2017-01-28 18:17:56 -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
54051ead86 Fixed up code so it builds now 2017-01-26 18:03:15 -05:00
Justin Ethier
ce0bffb31a WIP 2017-01-26 23:45:46 -05:00
Justin Ethier
0d651d4ff7 Starting the heap changes
This leaves everything as a mess at the moment, there are still a lot of changes that need to be made.
2017-01-25 18:57:38 -05:00
Justin Ethier
befbced21c More merges from gc-opt3-dev 2017-01-24 22:19:08 -05:00
Justin Ethier
b637d13783 Merge or the worthwhile changes from gc-opt3-dev 2017-01-24 21:52:12 -05:00
Justin Ethier
07500ce6d6 Properly store thread ID in thread objects
Also sketched out thread-join support but there are larger issues to consider to get that working.
2017-01-22 18:58:37 -05:00
Justin Ethier
33e55c3cce GC tweaks to avoid free/grow thrashing
Attempt to prevent thrashing the GC during earley benchmark by:

- Allowing a larger max page size
- Only freeing huge pages. This prevents thrashing where pages are freed only to be immediately reallocated when the heap is grown after sweep.

Longer term it may be necessary to allow freeing of pages by being more intelligent about things.
2017-01-12 14:37:48 +00:00
Justin Ethier
649e0eb5c8 Inline gc_mark_globals
Force inlining to attempt to improve performance
2017-01-11 17:54:49 -05:00
Justin Ethier
5823b37b5d WIP 2017-01-11 18:45:28 +00:00
Justin Ethier
5356b3e4a9 Remove unnecesary include 2017-01-11 22:17:26 -05:00
Justin Ethier
e78b336b78 Issue #102 - Pass data parameter to Cyc_display() 2016-12-22 00:14:53 -05:00
Justin Ethier
f60fed7344 Issue #102 - Added a data parameter to Cyc_write() 2016-12-21 23:47:39 -05:00
Justin Ethier
71aaf162c9 Allow Cyc-list to handle 0 args 2016-11-28 18:32:27 -05:00
Justin Ethier
5790716927 Added Cyc_list() 2016-11-28 18:11:36 -05:00
Justin Ethier
97fa0c2dbd WIP 2016-11-19 05:35:25 +00:00
Justin Ethier
391051ba7b GC performance improvements
- Increase page size
- Cache last page that had an allocation, and start from that page next time, if possible. This speeds up allocation on large heaps because we can avoid searching through the whole heap each time.
2016-11-13 16:54:57 -05:00
Justin Ethier
e636f40f99 Revert memq, memv, assq, assv back to primitives 2016-10-17 23:42:53 -04:00
Justin Ethier
54a47242bf Adding assoc/member C functions back 2016-10-15 17:57:46 -04:00
Justin Ethier
1326d0d5c2 Added fast mul/div 2016-10-14 18:07:00 -04:00
Justin Ethier
fa53f1225e Add fast numeric comparisons 2016-10-15 02:37:13 -04:00
Justin Ethier
bdd3edfe4f Added fast-sub 2016-10-14 23:19:09 -04:00
Justin Ethier
96c3893cb6 WIP, added notes 2016-10-14 04:26:14 -04:00
Justin Ethier
3e037950bf Testing Cyc_fast_sum and Cyc_fast_sub 2016-10-14 00:33:20 -04:00
Justin Ethier
6bd21b422c WIP for get-environment-variables 2016-09-28 23:55:33 -04:00
Justin Ethier
cc16ca8de2 Store environment information 2016-09-28 23:23:24 -04:00
Justin Ethier
33b96426d6 Bit set and unset 2016-09-23 23:46:39 -04:00
Justin Ethier
e51092c8c1 Added bitwise and/or 2016-09-23 22:40:26 -04:00
Justin Ethier
9a6da192e6 Issue #107 - Purge old code 2016-09-14 18:02:53 -04:00
Justin Ethier
c564db263a Added bytevector ports 2016-08-26 18:27:22 -04:00
Justin Ethier
25c4857eba Issue #57 - Added open-input-string 2016-08-26 23:22:13 -04:00
Justin Ethier
9fe2e1b90b Allocated memory port on heap 2016-08-26 03:51:42 -04:00
Justin Ethier
4aec9a341f Added mem-streams module 2016-08-25 23:38:34 -04:00
Justin Ethier
0d81c9be1b Added Cyc_check_proc 2016-08-05 23:30:53 -04:00
Justin Ethier
fd71dc336f Refactoring 2016-08-04 20:22:52 -04:00
Justin Ethier
560667eef6 Only use 96-byte object heap on 64-bit platforms 2016-08-03 03:23:16 -04:00
Justin Ethier
d9c27b7756 Added notes 2016-08-02 21:49:57 -04:00
Justin Ethier
918e78cb21 Added another size heap (96 bytes) 2016-08-01 18:48:58 -04:00
Justin Ethier
a034b85d25 Added notes 2016-08-02 03:32:37 -04:00
Justin Ethier
352203bd32 Added additional debugging 2016-08-02 01:34:32 -04:00
Justin Ethier
6a50eff1e0 Fix compilation of Cyc-compilation-environment 2016-07-29 17:36:23 -04:00
Justin Ethier
5eeef5d992 Added (Cyc-compilation-environment) 2016-07-30 03:12:17 -04:00
Justin Ethier
b96a9fcedd Added Cyc_compilation_environment() 2016-07-30 01:48:27 -04:00
Justin Ethier
129f02d70d Added safe cxr macros 2016-07-29 19:57:15 -04:00
Justin Ethier
fe65274c77 Added Cyc_car / Cyc_cdr 2016-07-28 23:34:03 -04:00
Justin Ethier
fa24f4db37 Unsafe cell functions 2016-07-25 23:26:43 -04:00
Justin Ethier
facaf608ae Define gc_collector_mark_gray as static
This is a commonly used function that the C compiler may be able to better optimize, such as inline, now that it is guaranteed to only be used within the gc.c module.
2016-07-25 21:46:30 -04:00
Justin Ethier
cfb3209648 Fixed compiler warning, replaced hexstr2int 2016-07-20 22:06:25 -04:00