Commit graph

430 commits

Author SHA1 Message Date
Justin Ethier
104ee22b5f Starting immediate int conversion
Also rewrote numeric computation functions to generate via a C macro
2016-03-14 22:07:28 -04:00
Justin Ethier
6376a0eb2c Qualify logging as verbose 2016-03-02 21:25:05 -05:00
Justin Ethier
64e0255d69 Minor GC's happen all the time - logging is verbose 2016-03-02 21:23:15 -05:00
Justin Ethier
dc19539bff Tweak GC debugging 2016-02-24 22:30:40 -05:00
Justin Ethier
76c84ad29e Added optional arg to string->number 2016-02-23 00:06:45 -05:00
Justin Ethier
46e15ceffc Added bin/oct/hex string->integer conversions 2016-02-19 21:59:10 -05:00
Justin Ethier
41ff5a149b Fix (closure) casting in closcall macros 2016-02-18 22:30:10 -05:00
Justin Ethier
c98e186172 Relocated mutex primitives to srfi 18 lib 2016-02-16 23:51:28 -05:00
Justin Ethier
8fdd2c46ba Added condition variable type 2016-02-16 01:09:02 -05:00
Justin Ethier
730434bb14 Added header comment block. 2016-02-14 22:35:04 -05:00
Justin Ethier
bf561a66e1 Allow Cyc_apply to receive 0 scheme args 2016-02-11 21:05:37 -05:00
Justin Ethier
4ec87c20c8 Removed unused code 2016-02-05 19:41:59 -05:00
Justin Ethier
88f5d29930 Experimental changes 2016-02-04 23:40:59 -05:00
Justin Ethier
88784bb5ff Will need to quote objects before evaling them 2016-02-03 22:54:41 -05:00
Justin Ethier
4dc2e78ce8 Correct format specifier for float 2016-01-24 21:41:35 -05:00
Justin Ethier
dcf4bfafcf Cleanup of blocked/runnable api 2016-01-21 21:36:55 -05:00
Justin Ethier
76bbca68e5 Cyc-minor-gc is now part of (srfi 18)
It makes more sense here than as a primitive, since threading is the only place you would need to trigger this from application code.
2016-01-18 22:40:59 -05:00
Justin Ethier
1e71ff3fd3 Move thread-sleep! to 18.sld 2016-01-18 22:18:39 -05:00
Justin Ethier
40bcf2d5dc Added comments 2016-01-17 00:09:01 -05:00
Justin Ethier
ea45546c62 Experimenting with explicit heap copying 2016-01-15 22:43:21 -05:00
Justin Ethier
f0cd203a5c WIP 2016-01-14 23:03:30 -05:00
Justin Ethier
2019b84149 Removed dead code 2016-01-11 22:39:37 -05:00
Justin Ethier
37672f0b7a Use thread data to hold exception stack 2016-01-11 22:14:53 -05:00
Justin Ethier
a9d575d3a9 Removed Cyc_current_exception_handler2 2016-01-12 03:29:10 -05:00
Justin Ethier
02317f940d Transitioning away from Cyc_current_exception_handler2 2016-01-12 03:26:55 -05:00
Justin Ethier
87c266a44a Adding exception stack to thread data 2016-01-12 03:21:36 -05:00
Justin Ethier
4d2b59966c Bug fixes, comments 2016-01-05 19:14:31 -05:00
Justin Ethier
e28951a8d5 Move the mutation table into thread data. 2016-01-04 22:54:23 -05:00
Justin Ethier
d2cbfaf217 Cleanup TODO 2016-01-03 22:57:13 -05:00
Justin Ethier
a889d6fb6f Refactoring
Renamed cyc_start_thread to cyc_start_trampoline to be more clear about what the function actually does.
2016-01-03 22:56:34 -05:00
Justin Ethier
ef61c578c5 Build-out of mutex lock/unlock 2016-01-03 00:02:19 -05:00
Justin Ethier
9402805af3 Mutex stubs 2016-01-02 22:13:45 -05:00
Justin Ethier
36752be311 Stubs for mutex functions 2016-01-02 21:56:36 -05:00
Justin Ethier
71af17d7e7 Use atomic operations from libck 2015-12-29 22:05:07 -05:00
Justin Ethier
eaa0481f40 Added Cyc-minor-gc 2015-12-27 23:16:58 -05:00
Justin Ethier
deae1693d5 Updated header comments 2015-12-23 23:02:38 -05:00
Justin Ethier
eaac66ab37 WIP 2015-12-23 22:09:10 -05:00
Justin Ethier
c09dc43dde First crack at gc_mutator_thread_runnable 2015-12-23 22:34:11 -05:00
Justin Ethier
8aefcbfd13 New mutator signatures 2015-12-22 22:39:51 -05:00
Justin Ethier
247b09fc88 Store cont before mutator is blocked 2015-12-22 22:19:04 -05:00
Justin Ethier
309e35c69b Added cont argument to blocking I/O functions 2015-12-22 21:57:00 -05:00
Justin Ethier
f0b992335e Separate cooperation/longjmp from core minor GC 2015-12-23 03:02:52 -05:00
Justin Ethier
9a9b3cc640 Let GC know a thread is (potentially) blocking 2015-12-22 22:24:11 -05:00
Justin Ethier
9de27c2f98 Use a lock to synchronize writes to symbol table 2015-12-21 23:06:10 -05:00
Justin Ethier
be13df2abb Perform deferred free of thread data
Mark a mutator's thread as old when a thread is terminated, and free it at a later time. This is done to prevent race conditions with the collector thread, which could be in the middle of working with a thread's data.
2015-12-21 22:57:36 -05:00
Justin Ethier
c41e80a6ae Prove GC is cooperating w/blocked thread 2015-12-21 22:30:25 -05:00
Justin Ethier
ac9b197803 Remove dead code 2015-12-21 21:34:35 -05:00
Justin Ethier
a5fefda485 WIP - thread cleanup 2015-12-20 22:48:22 -05:00
Justin Ethier
6463b2bf06 Trigger GC prior to thread exit 2015-12-20 21:59:40 -05:00
Justin Ethier
5e4ab77f33 Fix overflow issues with thread-sleep! 2015-12-19 23:25:27 -05:00