[Haskell-cafe] Best practice for embedding files in a GHC-compiled tool?

Alfonso Acosta alfonso.acosta at gmail.com
Thu Feb 28 17:55:34 EST 2008

A bit late, sorry, but you could use this:


On Thu, Feb 7, 2008 at 5:29 AM, Dave Bayer <bayer at cpw.math.columbia.edu> wrote:
> What is the best way to embed an arbitrary file in a Haskell program?
>  I would like to use GHC to compile command-line tools to be used with
>  OS X. I want the tool to be a single file, not a package or a
>  directory, that makes no assumptions about what else is present. For
>  example, it should be able to run as part of an OS X install disk.
>  I want this tool to be "self reproducing" in the sense that one of its
>  options causes it to output its own documentation and source code. I
>  want this data to be stored as a compressed file within the tool
>  binary itself.
>  The distribution model I'm imagining here is where one writes a
>  program anonymously, that isn't hosted anywhere but is passed from
>  user to user because it is useful, and eventually reaches another user
>  who wants to modify the code. Assume that intermediate users will care
>  less about this, and will try to delete anything that they can. That
>  rules out storing the data in a separate file. Think of the M.I.T.
>  game "Core Wars" from the dawn of the computer age. I'm looking for a
>  strategy here that will be evolutionarily successful in a fairly
>  hostile environment.
>  In other words, I want to be able to write in Haskell, without losing
>  the automatic distribution of source code enjoyed by interpreted
>  languages. No one deletes the source code for a Perl script, because
>  by doing so they're killing the program.
>  There must be some library I'm overlooking that would make this very
>  easy. All I can think of is to use Template Haskell to read a
>  compressed tar file into a Haskell variable. Is that what one does, or
>  is there a better way?
>  Thanks in advance,
>  Dave
>  _______________________________________________
>  Haskell-Cafe mailing list
>  Haskell-Cafe at haskell.org
>  http://www.haskell.org/mailman/listinfo/haskell-cafe

More information about the Haskell-Cafe mailing list