2012-05-17 22 views
9

Với dự án Haskell, có cách nào để tự động tính toán toàn bộ danh sách phụ thuộc không? Tất cả các thư viện nó phụ thuộc vào cũng như các thư viện đã được đưa vào nhưng không bắt buộc.Tự động liệt kê các phụ thuộc cho một dự án

+0

Cabal không tìm ra phụ thuộc khi bạn chạy 'cabal init'. Đó có phải là loại chức năng mà bạn đang nghĩ đến không? –

+0

Ở giai đoạn nào? Tôi đã sử dụng init cabal và nó không tìm ra bất kỳ phụ thuộc nào. –

+1

Giai đoạn nào? Giai đoạn mà bạn đã viết một số mã và sẵn sàng để cabalize dự án của bạn (tạo một tệp .cabal). Một phiên bản mới đầy đủ của cabal sẽ đọc các mô-đun và cố gắng suy ra các phụ thuộc. –

Trả lời

8

Như tôi đã nói trong phần bình luận, cài đặt cabal đã thực hiện điều này (tôi đang sử dụng cabal-install 0.14.0) bằng cách đoán các gói thông qua tra cứu mô-đun (như GHCi). Nó không có bất kỳ trí thông minh thực sự nào. phiên bản để nó chỉ đặt phiên bản cho phù hợp với phiên bản chính của những gì bạn đã cài đặt.

Dưới đây bạn có thể thấy tôi tạo gói giả mạo nhập Data.Vector và trình cài đặt cabal-install Tôi đang sử dụng vector 0.9. *.

[[email protected] blah]$ pwd 
/tmp/blah 
[[email protected] blah]$ cat Data/Blah.hs 
module Data.Blah where 

import Data.Vector 
[[email protected] 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. 
[[email protected] 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:   [email protected] 
-- 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!! 
+0

Tôi đang sử dụng 'cabal-install version 0.10.2'. Đó là phiên bản được đóng gói cùng với nền tảng Haskell, vì vậy tôi đoán đây là chức năng gần đây. –

+0

@VladtheImpala Tôi đoán bạn cần bản phát hành mới nhất 0.14.0. Nó bao gồm các cải tiến 'cabal init' khác nhau. –

Các vấn đề liên quan