9

Haskell プロジェクトが与えられた場合、依存関係のリスト全体を自動的に計算する方法はありますか? 依存するすべてのライブラリと、含まれているが必須ではないライブラリ。

4

1 に答える 1

8

コメントで述べたように、cabal-install はモジュール ルックアップ (GHCi など) を介してパッケージを推測することで既にこれを行っています (私は cabal-install 0.14.0 を使用しています)。実際のインテリジェンス wrt バージョンがないため、バージョンを、インストールしたものと一致するメジャー バージョンに設定するだけです。

Data.Vector以下では、私がベクター 0.9.* を使用しているとインポートして cabal-install が推測するダミー パッケージを作成しているのを見ることができます。

[tommd@mavlo blah]$ pwd
/tmp/blah
[tommd@mavlo blah]$ cat Data/Blah.hs 
module Data.Blah where

import Data.Vector
[tommd@mavlo blah]$ cabal init
Package name? [default: blah] 
...SNIP...
What does the package build:
   1) Library
   2) Executable
Your choice? 1
Include documentation on what each field means (y/n)? [default: n] 

Guessing dependencies...           <--- SEE, SEE! YAY!

Generating LICENSE...
Warning: unknown license type, you must put a copy in LICENSE yourself.
Generating Setup.hs...
Generating blah.cabal...

You may want to edit the .cabal file and add a Description field.
[tommd@mavlo blah]$ cat blah.cabal 
-- Initial blah.cabal generated by cabal init.  For further documentation, 
-- see http://haskell.org/cabal/users-guide/

name:                blah
version:             0.1.0.0
synopsis:            Sisponys
-- description:         
-- license:             
license-file:        LICENSE
author:              Me
maintainer:          No@No.No
-- copyright:           
-- category:            
build-type:          Simple
cabal-version:       >=1.8

library
  exposed-modules:     Data.Blah
  -- other-modules:       
  build-depends:       base ==4.5.*, vector ==0.9.*    <-- SEE?? SEE! YIPPEE!!
于 2012-05-17T05:05:29.757 に答える