finding the dependecies of cabal packages

Simon Marlow simonmar at
Mon Aug 1 07:09:21 EDT 2005

On 01 August 2005 11:31, Krasimir Angelov wrote:

> Visual Haskell works quite well with hooks.

Hmm, I'm not sure it does.  The hooks are only run when building the
project, not when interactively editing the source code.  We can't
discover what hooks are being used, because they are embedded in the
Setup.lhs script.

If we knew what the hooks were, then we could run them from VS (security
issues aside).  It's not entirely clear when to run the
preBuild/postBuild hooks given that we're essentially building
continuously, but I'm sure doing something simple will work most of the

> We are already using hooks
> in order to build Visual Haskell itself. In Visual C++ projects you
> can specify a sequence of shell commands which can be executed at
> specified point in the build process. In Visual Haskell you can use
> Cabal hooks to perform the same actions but the hooks approach is more
> flexible.
> The only limitation of Visual Haskell is that it can work only with
> the simple build architecture. It can be extended with the makefile
> based system but the drawback will be that we will lose the project
> editing features, interactive type checking and all other advanced
> features. The situation is the same with the Makefile based Visual C++
> projects. Visual C++ provides only basic support for Makefiles.
> Cheers,
>   Krasimir
> On 8/1/05, Simon Marlow <simonmar at> wrote:
>> On 29 July 2005 21:18, Duncan Coutts wrote:
>>> However an IDE wants even more. It wants to be able to rebuild
>>> individual files quickly (so dependency tracking is required and
>>> linear build scripts are out). It will want to provide a GUI
>>> interface for changing build system parameters (which means that the
>>> build system has to be declarative, not scripted). And no doubt
>>> there are other things too. 
>>> The point is that fulfilling these requirements might be possible
>>> for some imagined future version of the "simple" build system,
>>> however if the Cabal interface is extended to stipulate these same
>>> features then it would exclude most other build system
>>> implementations. 
>> My feeling is that the requirements for incremental building should
>> be part of the simple build system.
>> It's not quite true now, because we allow arbitrary hooks into the
>> simple build system.  So tools like Visual Haskell only work
>> properly if you don't use hooks.  This is one reason why being more
>> explicit about whether a package uses hooks or not would be useful.
>> Cheers,
>>        Simon
>> _______________________________________________
>> Libraries mailing list
>> Libraries at

More information about the Libraries mailing list