Software |
I will keep uploading pieces of code I wrote, they are mostly OCaml or F# related.
A large part of my research work contributes to the evolving of OcamlP3l system, a skeleton-based parallel programming system written in, and for, OCaml. The essence of a skeleton system is that it provides a set of typical parallel structures as higher-order constructors (or say skeletons, patterns, combinators etc.), and the programmers create their parallel application simply by the instantiation of these well-know forms (with plain sequential routines describing the sequential portions of the application), as well as their composition (to form nested parallel structure). Compared with traditional approaches, skeletons provide a higher-level and structured way to program parallel applications with much less effort, cleaner semantics and better reliability. A highlight of OcamlP3l is that the three back-ends based on different kinds of semantics, namely sequential, graphical and parallel, make it possible to debug an applications in one way (preferably sequentially and graphically), and execute it in another (esp. in parallel). Other benefits include the possibility of mixing sequential and parallel computation, skeleton specializing, color based load balancing mechanics etc.
The current version of OcamlP3l as well as all its document is provided through its website. A next generation of the system, which is a total rewritten of current system to gain full extensibility, is currently in development.
| Website: | homepage at INRIA |
coThreads is a concurrent/parallel programming library for OCaml. It enhances the Threads library of the standard OCaml distribution in both dimensions:
| Website: | homepage at sourceforge |
| project page at sourceforge |
patch for an enhanced OCaml toplevel
| Description: | README changelog |
| Version: | 3.09 (2007.03.12), 3.10 (2007.08.27), 3.11 (2009.04.22) |
| Download: | read the README first for instructions |
| for OCaml 3.09: patch, executable, debian packages (i386) | |
| for OCaml 3.10: patch, executable, debian packages (i386), win32 files (mingw, i386) | |
| for OCaml 3.11: patch | |
| Repository: | browse |
a runtime value printer for OCaml, extremely experimental at the moment, use at your own risk.
| Description: | README |
| Version: | 0.01 |
| Download: | vprint_0.01.tar.gz |
| Repository: | browse, darcs URI |
| Documentation: | manual |
a weak hash table library for OCaml, with an interface compatible with the standard Hashtbl library.
| Description: | README |
| Version: | 0.02 |
| Download: | weaktbl_0.02.tar.gz |
| Repository: | browse, darcs URI |
| Documentation: | manual |
a high-level combinatorial dataflow programming library based upon destructive lazy streams.
| Description: | README |
| Version: | 0.01 |
| Download: | sdflow_0.01.tar.gz |
| Repository: | browse, darcs URI |
| Documentation: | manual |
a toy implementation of Landin’s SECD machine in OCaml
| Description: | README |
| Version: | 0.01 |
| Download: | secd_0.01.tar.gz |
| Repository: | browse, darcs URI |
| Documentation: | manual |
OCaml syntax extension (via camlp4) for opening modules in current scope
| Description: | README |
| Version: | 0.02 |
| Download: | pa_scope_0.02.tar.gz |
| Repository: | browse, darcs URI |
OCaml syntax extension (via camlp4) simulating F#’s “use” binding syntax
| Description: | README |
| Version: | 0.01 |
| Download: | pa_use_0.01.tar.gz |
| Repository: | browse, darcs URI |
OCaml syntax extension (via camlp4) backporting F#’s computation expression
| Description: | README |
| Version: | 0.01 |
| Download: | pa_cexp_0.01.tar.gz |
| Repository: | browse, darcs URI |
OCaml syntax extension (via camlp4) for handling exceptions in scope of bindings
| Description: | README |
| Version: | 0.01 |
| Download: | pa_trybind_0.01.tar.gz |
| Repository: | browse, darcs URI |
a user-space STM library for OCaml, Google Summer of Code 2007 project. It’s now obsoleted by coThreads.
| Description: | README |
| Download: | stmlib-0.01.tar.gz |
This document was translated from LATEX by HEVEA.