diff --git a/docs/Garbage-Collector.md b/docs/Garbage-Collector.md index 1b52d204..59e0ec7b 100644 --- a/docs/Garbage-Collector.md +++ b/docs/Garbage-Collector.md @@ -317,7 +317,7 @@ Ultimately, a garbage collector is tricky to implement and the focus must primar - [Baby's First Garbage Collector](http://journal.stuffwithstuff.com/2013/12/08/babys-first-garbage-collector/), by Bob Nystrom - [Chibi-Scheme](https://github.com/ashinn/chibi-scheme) - [CHICKEN internals: the garbage collector](http://www.more-magic.net/posts/internals-gc.html), by Peter Bex -- [CONS Should Not CONS Its Arguments, Part II: Cheney on the M.T.A.](http://www.pipeline.com/~hbaker1/CheneyMTA.html), by Henry Baker +- [CONS Should Not CONS Its Arguments, Part II: Cheney on the M.T.A.](https://github.com/justinethier/cyclone/raw/master/docs/research-papers/CheneyMTA.pdf), by Henry Baker - Fragmentation Tolerant Real Time Garbage Collection (PhD Dissertation), by Filip Pizlo - [The Garbage Collection Handbook: The Art of Automatic Memory Management](http://gchandbook.org/), by Antony Hosking, Eliot Moss, and Richard Jones - Implementing an on-the-fly garbage collector for Java, by Domani et al diff --git a/docs/User-Manual.md b/docs/User-Manual.md index 5a7fa557..aa2da506 100644 --- a/docs/User-Manual.md +++ b/docs/User-Manual.md @@ -21,7 +21,7 @@ # Introduction -Cyclone is an experimental Scheme-to-C compiler that uses a variant of the [Cheney on the MTA](http://www.pipeline.com/~hbaker1/CheneyMTA.html) technique to implement full tail recursion, continuations, generational garbage collection, and native threads. +Cyclone is an experimental Scheme-to-C compiler that uses a variant of the [Cheney on the MTA](https://github.com/justinethier/cyclone/raw/master/docs/research-papers/CheneyMTA.pdf) technique to implement full tail recursion, continuations, generational garbage collection, and native threads. Cyclone works by converting a Scheme program to continuation passing style and compiling each continuation to a C function. At runtime these functions never return and are allowed to fill up the stack until they trigger a minor garbage collection. Live stack objects are then copied to the heap and `longjmp` is used to return to the beginning of the stack. This is the same technique proposed by Henry Baker (Cheney on the MTA) and implemented first by CHICKEN Scheme. The difference is that our compiler allows multiple native threads, each with their own stack. A tracing garbage collector is used to manage the second-generation heap and perform major collections without "stopping the world". @@ -224,7 +224,7 @@ Cyclone is available under the [MIT license](http://www.opensource.org/licenses/ # References and Further Reading -- [CONS Should Not CONS Its Arguments, Part II: Cheney on the M.T.A.](http://www.pipeline.com/~hbaker1/CheneyMTA.html), by Henry Baker +- [CONS Should Not CONS Its Arguments, Part II: Cheney on the M.T.A.](https://github.com/justinethier/cyclone/raw/master/docs/research-papers/CheneyMTA.pdf), by Henry Baker - [CHICKEN Scheme](http://www.call-cc.org/) - [Chibi Scheme](https://github.com/ashinn/chibi-scheme) - [Compiling Scheme to C with closure conversion](http://matt.might.net/articles/compiling-scheme-to-c/), by Matt Might diff --git a/docs/Writing-the-Cyclone-Scheme-Compiler-Revised-2017.md b/docs/Writing-the-Cyclone-Scheme-Compiler-Revised-2017.md index 988f55bd..eaa3fce1 100644 --- a/docs/Writing-the-Cyclone-Scheme-Compiler-Revised-2017.md +++ b/docs/Writing-the-Cyclone-Scheme-Compiler-Revised-2017.md @@ -201,7 +201,7 @@ The C compiler is invoked to generate machine code for the Scheme module, and to ## Garbage Collector ### Background: Cheney on the MTA -A runtime based on Henry Baker's paper [CONS Should Not CONS Its Arguments, Part II: Cheney on the M.T.A.](http://www.pipeline.com/~hbaker1/CheneyMTA.html) was used as it allows for fast code that meets all of the fundamental requirements for a Scheme runtime: tail calls, garbage collection, and continuations. +A runtime based on Henry Baker's paper [CONS Should Not CONS Its Arguments, Part II: Cheney on the M.T.A.](https://github.com/justinethier/cyclone/raw/master/docs/research-papers/CheneyMTA.pdf) was used as it allows for fast code that meets all of the fundamental requirements for a Scheme runtime: tail calls, garbage collection, and continuations. Baker explains how it works: @@ -460,7 +460,7 @@ Want to give Cyclone a try? Install a copy using [cyclone-bootstrap](https://git ## References -1. [CONS Should Not CONS Its Arguments, Part II: Cheney on the M.T.A.](http://www.pipeline.com/~hbaker1/CheneyMTA.html), by Henry Baker +1. [CONS Should Not CONS Its Arguments, Part II: Cheney on the M.T.A.](https://github.com/justinethier/cyclone/raw/master/docs/research-papers/CheneyMTA.pdf), by Henry Baker 2. [CHICKEN Scheme](http://www.call-cc.org/) 3. [CHICKEN Scheme - Internals](https://wiki.call-cc.org/Internals) 4. [Chibi Scheme](https://github.com/ashinn/chibi-scheme) diff --git a/docs/Writing-the-Cyclone-Scheme-Compiler.md b/docs/Writing-the-Cyclone-Scheme-Compiler.md index 75a9d8e9..49bc6250 100644 --- a/docs/Writing-the-Cyclone-Scheme-Compiler.md +++ b/docs/Writing-the-Cyclone-Scheme-Compiler.md @@ -72,7 +72,7 @@ During this phase C code is sometimes returned for later use instead of being ou The C code is carefully generated so that a Scheme library (`.sld` file) is compiled into a C module. Functions and variables exported from the library become C globals in the generated code. ## C Runtime -A runtime based on Henry Baker's paper [CONS Should Not CONS Its Arguments, Part II: Cheney on the M.T.A.](http://www.pipeline.com/~hbaker1/CheneyMTA.html) was used as it allows for fast code that meets all of the fundamental requirements for a Scheme runtime: tail calls, garbage collection, and continuations. +A runtime based on Henry Baker's paper [CONS Should Not CONS Its Arguments, Part II: Cheney on the M.T.A.](https://github.com/justinethier/cyclone/raw/master/docs/research-papers/CheneyMTA.pdf) was used as it allows for fast code that meets all of the fundamental requirements for a Scheme runtime: tail calls, garbage collection, and continuations. Baker explains how it works: @@ -165,7 +165,7 @@ Want to give Cyclone a try? Install a copy using [cyclone-bootstrap](https://git ## References -- [CONS Should Not CONS Its Arguments, Part II: Cheney on the M.T.A.](http://www.pipeline.com/~hbaker1/CheneyMTA.html), by Henry Baker +- [CONS Should Not CONS Its Arguments, Part II: Cheney on the M.T.A.](https://github.com/justinethier/cyclone/raw/master/docs/research-papers/CheneyMTA.pdf), by Henry Baker - [CHICKEN Scheme](http://www.call-cc.org/) - [Chibi Scheme](https://github.com/ashinn/chibi-scheme) - [Compiling Scheme to C with closure conversion](http://matt.might.net/articles/compiling-scheme-to-c/), by Matt Might