mirror of
https://github.com/justinethier/cyclone.git
synced 2025-07-11 23:07:36 +02:00
Added new subsection
This commit is contained in:
parent
ca5b0c8e80
commit
6736f55137
1 changed files with 6 additions and 3 deletions
|
@ -25,6 +25,7 @@ In addition, developing [Husk Scheme](http://justinethier.github.io/husk-scheme)
|
|||
- [Garbage Collector](#garbage-collector)
|
||||
- [Background: Cheney on the MTA](#background-cheney-on-the-mta)
|
||||
- [Cyclone's Hybrid Collector](#cyclones-hybrid-collector)
|
||||
- [Developing the New Collector](#developing-the-new-collector)
|
||||
- [Heap Data Structures](#heap-data-structures)
|
||||
- [C Runtime](#c-runtime)
|
||||
- [Data Types](#data-types)
|
||||
|
@ -234,7 +235,11 @@ Under Cyclone's runtime each thread contains its own stack that is used for priv
|
|||
|
||||
Heap objects are not relocated, making it easier for the runtime to support native threads. In addition major GC uses a collector thread that executes asynchronously so application threads can continue to run concurrently even during collections.
|
||||
|
||||
It took a long time to research and plan out all of this before it could be implemented. There was a noticeable lull in Github contributions during that time:
|
||||
More details are available in a separate [Garbage Collector](Garbage-Collector.md) document.
|
||||
|
||||
### Developing the New Collector
|
||||
|
||||
It took a long time to research and plan out the new GC before it could be implemented. There was a noticeable lull in Github contributions during that time:
|
||||
|
||||
<img src="images/cyclone-contribs.png">
|
||||
|
||||
|
@ -248,8 +253,6 @@ The actual development consisted of several distinct phases:
|
|||
- Phase 5 - Required the pthreads library, and stood Cyclone back up using new GC algorithm.
|
||||
- Phase 6 - Added SRFI 18 to support multiple application threads.
|
||||
|
||||
More details are available in a separate [Garbage Collector](Garbage-Collector.md) document.
|
||||
|
||||
### Heap Data Structures
|
||||
|
||||
Cyclone allocates heap data one page at a time. Each page is several megabytes in size and can store multiple Scheme objects. Cyclone will start with a small initial page size and gradually allocate larger pages using the Fibonnaci Sequence until reaching a maximum size.
|
||||
|
|
Loading…
Add table
Reference in a new issue