Haskell Cabal v2 и Песочница - PullRequest
       13

Haskell Cabal v2 и Песочница

2 голосов
/ 07 октября 2019

Нам сообщили, что теперь это унаследованный режим для управления пользовательской изолированной программной средой:

cabal init sandbox
cabal install <some stuff>

, который позже загружается на ваше усмотрение с использованием

cabal exec bash

Вопрос: Каким образом эквивалентная операция выполняется с использованием новой реализации Cabal?

Документация (в ее нынешнем виде) очень загадочна с примером нулевого использования. Это было бы полезно для облегчения миграции.

В настоящее время рассматривается Cabal 2.4.0.0 с GHC 8.6.5.

1 Ответ

2 голосов
/ 07 октября 2019

Песочниц нет. Вы можете установить пакеты, и они окажутся в кабинете пользователя, используя v2-install и v2-install --lib. Давайте использовать cabal для установки нескольких пакетов:

cabal v2-udpate
cabal v2-install --lib generic-trie containers

Теперь мы можем загрузить модули из этих пакетов в GHCi:

ghci
> import Data.GenericTrie
> import Data.Map

Почему это работает? Поскольку cabal v2-install --lib изменяет среду по умолчанию, на которую GHCi смотрит для загрузки пакетов. Этот файл находится по адресу .ghc/x86_64-linux-8.6.5/environments/default.

Вы можете в любое время удалить файл среды, чтобы начать в основном заново. Это удобно, если cabal сообщает вам, что у некоторого набора пакетов есть конфликтующие зависимости с предыдущими пакетами. Думайте об этом как о глобальном магазине, а только как о указателях на сборки в стиле nix, так что сносить и переделывать дешево.

...