Учитывая проект Haskell, есть способ автоматически вычислить весь список зависимостей? Все библиотеки, от которых он зависит, а также библиотеки, которые были включены, но не требуются.Зависимости автоматического отображения для проекта
ответ
Как я уже сказал в комментариях, cabal-install уже делает это (я использую cabal-install 0.14.0), угадывая пакеты через модульный поиск (например, GHCi). У него нет никакого реального интеллекта w.r.t. версии, поэтому он просто устанавливает версию в соответствие с основной версией того, что вы установили.
Ниже вы можете увидеть, как я делаю фиктивный пакет, который импортирует Data.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!!
Я использую 'cabal-install version 0.10.2'. Это версия, которая поставляется в комплекте с платформой Haskell, поэтому я думаю, что это недавняя функциональность. –
@ VladtheImpala Думаю, вам нужен последний выпуск 0.14.0. Он включает в себя различные усовершенствования 'cabal init'. –
- 1. Зависимости проекта CMAKE
- 2. Как оптимизировать код для автоматического отображения?
- 3. Настройка автоматического отображения макета для клавиатуры
- 4. Yeoman зависимости для проекта AngularJS
- 5. Есть ли настройка конфигурации для автоматического отображения вывода консоли jenkins
- 6. CMake: Зависимости внешнего проекта
- 7. Зависимости проекта Eclipse
- 8. Проблема зависимости проекта XCode
- 9. Eclipse - Maven не добавляет зависимостей для автоматического создания проекта
- 10. Зависимости веб-проекта Eclipse
- 11. C#: зависимость зависимости зависимости при создании проекта
- 12. зависимости от проекта Haskell
- 13. Проект проекта зависимости Maven
- 14. Зависимости от проекта Java
- 15. Зависимости от проекта проекта WIx не строятся
- 16. Как иметь различные зависимости проекта для каждой конфигурации проекта?
- 17. Как загрузить зависимости проекта проекта android для пользовательской папки?
- 18. Не удалось разрешить зависимости для проекта maven
- 19. Maven не смог разрешить зависимости для проекта
- 20. Нерешенные Зависимости для новой игры 2.0 проекта
- 21. Не удалось разрешить зависимости для проекта
- 22. Динамически вытягивать зависимости для углового проекта
- 23. Как определить зависимости для проекта VB6?
- 24. Каковы ОЧЕНЬ основные зависимости для проекта JSF?
- 25. Соберите все зависимости rpm для развертывания проекта
- 26. Зависимости для проекта VC++ CLR 2012
- 27. Области зависимости Maven для многомодульного проекта
- 28. Автоматически загружать зависимости для проекта haskell?
- 29. Ширины автоматического размера DataGridView без отображения сетки
- 30. Результаты автоматического отображения с использованием json
Cabal пытается выяснить зависимости при запуске 'cabal init'. Это какая-то функциональность, о которой вы думали? –
На какой стадии? Я использовал init init, и он не нашел никаких зависимостей. –
Какой этап? На сцене, где вы написали код и готовы к каскадированию проекта (создайте файл .cabal). Достаточно новая версия cabal будет читать модули и попытаться вывести зависимости. –