Re: Job for someone: make a VM image for GHC development

Dear Simon, et al. I've looked around trying to pick up information on tiny installations of Linux. It seems most modern distributions think 200MB is a pretty barebone installation. There's a claim by someone that (s)he got a Tiny Gentoo installation into 5MB. I'll be looking into that this evening. Of the options given (installer vs. VM image), I have most faith in the VM image. From what I've seen, installers are still quite large (summed total of all downloads required) compared to a to-the-point installation. Could you be slightly more specific on what you want in the image for it to be a GHC development environment? I presume darcs is one. Also, I presume the GHC source tree isn't. Compiler-wise; do you want/need gcc on a system like this, if so, do you still want a binary GHC there? If a binary GHC is desired, do you want a bare minimum (w/o extralibs, possibly older version), the more elaborate (w/ extralibs), or the whole package (Haskell Platform)? Possibly the easiest VM image to maintain just has the minimum requirements to run emerge and a script that, on first boot of the image, emerges the haskell platform and darcs. This way, you don't need to update the VM image with updates of GHC (or updated dependencies of the GHC source tree on newer GHC versions). The upside is a very fast download of the image, but the downside is a very slow first boot of the image. Regards, Philip

Hi Philip, Thanks for looking into this! On 05/06/2009 08:46, Philip K.F. Hölzenspies wrote:
I've looked around trying to pick up information on tiny installations of Linux. It seems most modern distributions think 200MB is a pretty barebone installation. There's a claim by someone that (s)he got a Tiny Gentoo installation into 5MB. I'll be looking into that this evening. Of the options given (installer vs. VM image), I have most faith in the VM image. From what I've seen, installers are still quite large (summed total of all downloads required) compared to a to-the-point installation.
Could you be slightly more specific on what you want in the image for it to be a GHC development environment? I presume darcs is one. Also, I presume the GHC source tree isn't. Compiler-wise; do you want/need gcc on a system like this, if so, do you still want a binary GHC there? If a binary GHC is desired, do you want a bare minimum (w/o extralibs, possibly older version), the more elaborate (w/ extralibs), or the whole package (Haskell Platform)?
Possibly the easiest VM image to maintain just has the minimum requirements to run emerge and a script that, on first boot of the image, emerges the haskell platform and darcs. This way, you don't need to update the VM image with updates of GHC (or updated dependencies of the GHC source tree on newer GHC versions). The upside is a very fast download of the image, but the downside is a very slow first boot of the image.
So there are lots of different things you could do. When I posted my message I had in mind setting up a VM image that had everything you need to hack on GHC itself, but I wasn't exactly clear about that - "GHC development environment" could mean an environment for developing Haskell code with GHC, and that's what I think most people thought I was on about. Nevertheless, both are useful. Perhaps a generic Haskell development environment as a VM image would be the most useful, but I'm thinking in particular about lowering the barrier to entry for those who want to do casual hacking GHC itself or its libraries, and for that the VM image needs to have a GHC source tree (or two) set up and ready to build. There's no reason you can't do it all: have a VM image with the Haskell Platform, darcs, full documentation, a couple of GHC trees, and all the tools you need to build and hack on GHC. That would be useful for both types of users. Though the size might be a problem - we might have to use something like bittorrent as a distribution mechanism rather than just putting it up on haskell.org. The other way is, as you suggest, to build a script that would install all the tools on top of a barebones Linux install. And such a thing is almost a necessity if we want to keep rolling out updated VM images from time to time. So I think that's a great way to start. Given this script we can use it to build pre-installed VM images too. Cheers, Simon
participants (2)
-
Philip K.F. Hölzenspies
-
Simon Marlow