CPC (Continuation Passing C) is a programming language designed for writing concurrent systems. The CPC programmer manipulates very lightweight threads, choosing whether they should be cooperatively or preemptively scheduled at any given point; the CPC program is then processed by the CPC translator, which produces highly efficient event-loop code. This approach gives the best both worlds: the relative convenience of programming with threads, and the low memory usage of event-loop code. The semantics of CPC is defined as a source-to-source translation from CPC into plain C using a technique known as conversion into Continuation Passing Style. The current implementation of CPC has been used to write Hekate, a BitTorrent seeder designed to handle millions of simultaneous torrents and tens of thousands of simultaneously connected peers.
|Licenses||MIT/X BSD Revised|
|Operating Systems||Linux Mac OS X (untested)|
Release Notes: This release improves build and installation.
Release Notes: This release adds an almost-stable API and a decent wrapper script.
Release Notes: This release fixes compilation issues with Ocaml 3.12. It fixes compilation issues with flexlink (Windows).
Release Notes: Initial public release.