Why is there a cabal file at all?

Isaac Jones ijones at syntaxpolice.org
Fri Jan 12 16:55:21 EST 2007


"Conal Elliott" <conal at conal.net> writes:

> On 1/10/07, Isaac Jones <ijones at syntaxpolice.org> wrote:
>
>> ...
>> Remember: Cabal isn't only the build infrastructure, it's also the
>> metadata format that tools like Hackage use. If you decide to combine data
>> and code, you will no longer be able to manipulate the data with another
>> tool.
>>
>
> I'm worried and confused about this conclusion. I want to address my
> confusion first, and maybe the worry will be handled.
>
> By "data" vs "code", I'm guessing you mean simple first-order values, and
> mainly strings, vs everything else (especially functions). But I wonder if
> instead you mean any Haskell value (including functions) vs the content of a
> .hs file?

I'm not sure what you mean here.  What I'm talking about is that if
you have a programatic way of producing the package description, then
you no longer have a way of "reading" that package description from
another tool.

> Maybe I'd have a firmer grasp of this issue if I could had in mind an
> example of such a metadata-manipulating tool. Would someone please suggest
> one?

Visual Haskell, HackageDB, cabal2rpm, and dh_haskell are all tools
that read the .cabal file and perform operations based on the package
metadata.  These tools would have to be Haskell interpreters if they
wanted to read a .hs file and derive the package description from
that.

peace,

  isaac


More information about the cabal-devel mailing list