Yorick Hardy
028f52c8ec
gc: prepare heap objects for sweeping
...
Also introduce a global variable to track whether merged
heaps need to be swept.
Partial work towards addressing issue #534 .
2025-01-03 00:55:06 +02:00
Yorick Hardy
cd4125bb97
types.h: make gc_alloc_pair public
...
This will be used to create the thread context.
Partial work towards addressing issue #534 .
2025-01-03 00:51:02 +02:00
Yorick Hardy
db6956e5aa
srfi-18: do a minor gc when terminating a thread
...
This ensures that any objects which are part of the
thread context are transferred to the heap.
Partial work towards addressing issue #534 .
2025-01-03 00:48:45 +02:00
Yorick Hardy
dd2b5c1174
srfi-18: add a slot for thread context in the thread object
...
Partial work towards addressing issue #534 .
2025-01-03 00:45:52 +02:00
Yorick Hardy
8e2d76fbce
runtime: small (cosmetic) simplification
2025-01-02 14:06:44 +02:00
Yorick Hardy
5b590698bd
gc: remove accidental double counting
2025-01-02 14:00:39 +02:00
Yorick Hardy
b755b40ee8
types: update forward declaration of gc_heap_merge()
...
Partial work towards addressing issue #534 .
2024-12-31 11:50:39 +02:00
Yorick Hardy
20e1a14222
gc: oops, forgot the "freed" count (again)
...
Partial work towards addressing issue #534 .
2024-12-31 11:48:49 +02:00
Yorick Hardy
fb334d1e89
gc: oops, forgot the "freed" count
...
Partial work towards addressing issue #534 .
2024-12-31 11:46:29 +02:00
Yorick Hardy
546eb76861
gc: free empty pages in gc_heap_merge()
...
Moving the code from gc_merge_all_heaps to gc_heap_merge removes
special handling of the start of the list and is (hopefully)
easier to read.
Partial work towards addressing issue #534 .
2024-12-31 11:40:10 +02:00
Yorick Hardy
48b95db3d2
gc: revert adding STAGE_FORCING
...
Use gc_start_major_collection() instead. Partial work towards
addressing issue #534 .
2024-11-18 22:00:48 +02:00
Yorick Hardy
41ac00d6be
srfi-18: thread-terminate! takes a thread as argument
2024-11-17 23:07:42 +02:00
Yorick Hardy
20fc3c6646
gc: free unused parts of the heap before merging
...
When a thread exits, the heap is merged into the main thread.
Before doing so, free any unused parts of the heap to reduce
memory usage. Attempts to partially address issue #534 .
2024-11-15 23:14:21 +02:00
Yorick Hardy
bf9dda2fed
srfi-18: call Cyc_end_thread on thread exits
...
This ensures that the collector has a chance to run whenever
a thread exits. Attempts to partially address issue #534 .
2024-11-15 23:11:21 +02:00
Yorick Hardy
955695f554
runtime: force the garbage collector to run when a thread exits
...
This is a first attempt to improve the memory usage reported in
issue #534 .
2024-11-15 23:02:55 +02:00
Yorick Hardy
d8aa289af4
gc: add a function to force the collector to run
...
This requires adding a "forced" stage for the collector,
which is the initial stage for a forced collection.
Thereafter, the collector continues to the usual stages
of collection.
2024-11-15 22:59:46 +02:00
Justin Ethier
86cfbeb72b
Remove gcc 14 job for now since its not in ubuntu yet
2024-09-25 19:38:38 -07:00
Justin Ethier
49f1599107
Fix syntax
2024-09-25 19:33:38 -07:00
Justin Ethier
520eafabac
Try with gcc 14
2024-09-25 19:31:41 -07:00
Justin Ethier
95f4557ec9
Add latest change
2024-09-25 19:28:43 -07:00
Sören Tempel
26d0e1f9e5
Fix open_memstream/fmemopen feature detection with GCC >= 14 ( #544 )
...
GCC 14 has enabled various warnings as errors by default, e.g.
-Wimplicit-function-declaration. This causes the current feature
detection code for `open_memstream(3)` and `fmemopen(3)` to fail
with GCC 14.
This commit restores compatibility with GCC 14 in this regard.
Note that it may also be beneficial to pass a feature test macro
such as -D_POSIX_C_SOURCE. See the feature test macro requirements
for open_memstream(3)` and `fmemopen(3)`.
2024-09-25 22:27:14 -04:00
Justin Ethier
45686f6c86
Issue 522 - Add unit test framework for C runtime ( #545 )
...
* WIP - C unit testing stubs
* Get test-lib to compile and run
* Add test-lib to CI
* Use cflags for test-lib
* Build runtime library
* Fix typo
* Break into separate CI tasks
* Cleanup
* Add example tests for non-CPS
* Include -g option for test-lib
* Add CI to build C runtime
Can expand into scheme at some point, this is a first step.
* Use latest upload workflow
2024-09-24 21:57:33 -04:00
Justin Ethier
645683937f
Merge pull request #539 from justinethier/issue-537-apply-in-icyc
...
Issue 537 apply in icyc
2024-05-21 21:59:37 -04:00
Justin Ethier
65fa16cce7
Issue #537 - Add tests
2024-05-21 18:58:49 -07:00
Justin Ethier
bb6b3eafed
Issue #537 - Document bug fix
2024-05-21 18:54:17 -07:00
Justin Ethier
06219634e9
Issue #537 - Add useful comments
2024-05-21 18:41:41 -07:00
Justin Ethier
1ce4979658
Testing fix for issue #537
2024-05-20 19:31:38 -07:00
Justin Ethier
6b556d3a7a
Merge pull request #538 from justinethier/issue-534-tail-call-fixes
...
Issue 534 tail call fixes
2024-04-24 21:54:55 -04:00
Justin Ethier
8e74c0409e
Add code change back
2024-04-22 18:32:06 -07:00
Justin Ethier
0a062177f7
Issue #534 - Bug fix for beta exp bug
...
Perform full scanning of function application list to ensure self-recursive calls are found. This prevents infinite loops in the beta expansion code when compiling simple recursive calls.
2024-04-02 18:54:15 -07:00
Justin Ethier
59096d9dc2
Merge pull request #533 from justinethier/issue-530-2
...
Resolve Issue 530
2024-03-14 22:43:32 -04:00
Justin Ethier
82b0f9f3e2
Cleanup
2024-03-14 19:42:42 -07:00
Justin Ethier
07e747a08f
Revise doc for issue #530
2024-03-14 18:58:29 -07:00
Justin Ethier
0ea2457db6
Issue #530 - Adding more tests
2024-03-14 18:57:09 -07:00
Justin Ethier
92de62ce14
Issue #530 - Document changes
2024-03-13 19:33:00 -07:00
Justin Ethier
29b4c77922
Cleanup
2024-03-13 19:32:15 -07:00
Justin Ethier
6068b30ded
Issue #530 - Handle parsing of +i / -i
2024-03-13 19:31:58 -07:00
Justin Ethier
1f76d474f7
Document fixes to sqrt
2024-03-12 19:25:23 -07:00
Justin Ethier
512e962a9b
Add more sqrt tests
2024-03-12 19:22:09 -07:00
Justin Ethier
887e1e5aa9
Return fixnum if sqrt(fixnum) is an exact int
2024-03-12 19:06:54 -07:00
Justin Ethier
32af1bcd05
Removing top-level sqrt
...
This isn't good enough, there are going to be bootstrap compilation problems undoing this...
2024-03-11 19:29:54 -07:00
Justin Ethier
a2568d8589
Allow inline sqrt
2024-03-11 19:29:44 -07:00
Justin Ethier
fa6213b907
Issue #530 - First cut at improving sqrt
...
Improving sqrt to properly handle negative parameter values
2024-03-11 19:19:12 -07:00
Justin Ethier
37b39693ed
Bump to 0.37.0
2024-03-05 17:54:06 -08:00
Justin Ethier
eb53b0fb16
Document PR fix
2024-03-05 17:53:43 -08:00
Justin Ethier
16a4323d4a
Merge branch 'master' of github.com:justinethier/cyclone
2024-03-05 17:52:53 -08:00
Justin Ethier
706f7ef2a8
Merge pull request #528 from yorickhardy/master
...
Define *ai-v4mapped* to zero on platforms where AI_V4MAPPED is undefined
2024-03-05 20:51:54 -05:00
Justin Ethier
a53f42d082
Merge branch 'master' of github.com:justinethier/cyclone
2024-03-05 17:48:26 -08:00
Yorick Hardy
bb3df95d13
Define *ai-v4mapped* to zero on platforms where AI_V4MAPPED is undefined.
...
This change defines *ai-v4mapped* to zero when AI_V4MAPPED is undefined
and similarly for *ai-all* (similar to other patches). This allows
(srfi 106) to be available on NetBSD and other platforms without
AI_V4MAPPED and is the recommended behaviour by the author of SRFI-106:
https://srfi-email.schemers.org/srfi-106/msg/2762553/
2024-03-05 22:18:44 +02:00
Justin Ethier
a6aa16de52
Added WASM release instructions
2024-02-19 22:44:02 -05:00