The Haskell Lightweight Virtual Machine (or, informally, the HaLVM) is a port of the GHC runtime system for Haskell to barebones Xen. This means that Haskell programs written for the HaLVM run natively on Xen, without any intervening operating system, which allows them to boot quickly and use very little space.
The HaLVM is released under a non-restrictive BSD3 license. If you are using the HaLVM for something in your work, please email us at halvm@galois.com! We would very much love to hear about it.
Latest News
- Mar 29th, 2012: WARNING WARNING WARNING The HaLVM repository is in the process of MOVING. We will keep the one on code.galois.com up for as long as possible, but be prepared for downtimes and outages. We apologize for any problems you may experience.
- Mar 15th, 2012: HaLVM now supports 64-bit execution, runs fine on stock Fedora 16. Yay! Please see the download and install information for further information on the Download and Install page.
- Nov 30th, 2010: Initial release of the HaLVM!
Why did you build the HaLVM?
Galois began development of this technology in 2006, as a mechanism by which to prototype basic operating system structures and test their behavior. Since that time, we have used it internally in several different projects to explore interesting design spaces in that area. Because HaLVMs run directly on Xen, there is no artificial kernel-land / user-land barrier imposed by an intervening OS when writing very low-level code. On the other hand, because Haskell is such a high-level language, refactoring multiple components into a single component (or vice versa!) is simple and easy.
How to I get the HaLVM?
Please see our instructions for downloading and installing the HaLVM.
Please consider signing up on the `halvm-devel` mailing list!
What do I do with it? What can I do with it?
Why not start with reading up on developing with the HaLVM.
How mature is the HaLVM?
Prior to this release of the HaLVM, the bulk of its testing has come through using it to prototype lightweight Xen domains, coupled with a somewhat substantial test suite. Bear in mind that there are many possible variables in these kinds of systems, and our testing has necessarily been quite specific. Thus, it is possible, if not likely, that you will hit an edge case of the HaLVM or a combination of tools that will not work for you. Please see the list of supported systems for more information.
If you would like to report a problem you have found, please file a bug report (if you don't have an account, use the username 'guest' with the same as the password) and we will try to look into it or (even better!) submit a patch. (You will want to sign up for the mailing list first, though.)
How can I get involved?
We are always looking for ways to improve the HaLVM, either through new features or bug fixes. If you would like to get involved, please see our guidelines for contribution.
