to post messages and comments.

Stack под Windows 7 x64 до сих пор работает.. кхм.. интересно, если ему надо подгрузить что-нибудь, например, msys, или ghc отличной версии.

MoveFileEx exception: access denied.

Обходится это легко:

1. Run cmd as Administrator
2. Close explorer.exe.
3. stack ...

ну хорошо, я сделал как в #2832570/25 спасибо. Как мне загрузить модуль теста в ghci? stack ghci ругается ""Could not find module ‘Test.HUnit’. It is a member of the hidden package ‘HUnit..." Надо как-то сказать ему чтобы он тестовый список пакетов использовал.

Вот кстати по стеку вопрос. Когда фиксил тесты для fast-logger-а увидел забавную штуку.
Запускаю stack test . И для wai-logger он выдаёт замечательные ошибки про System.Posix . Выясняется что в cabal файле. используется.
if os(windows)
   Cpp-Options: -DWINDOWS

И почему-то при сборке тестов этот флаг либы не учитывается, добавление этого флага тестам ничего не даёт. 

А сами тесты сделаны с помощью doctest:
-- $setup
-- >>> :set -XOverloadedStrings
-- >>> import Network.Wai.Test

он ругается что нет такого модуля. Добавление его в зависимости stack и cabal ничего не даёт.

Собственно у меня 2 вопроса:
1. Фиксится встроенным в GHC mingw32_HOST_OS , но как всё таки stack заставить нормально обрабатывать Cpp-Options.
2. Полагаю что дело в путях, но всё равно какая-то хуйня.

а это cabal-library или stack не умеет работать с файлами, у меня периодически VM-ка прибивается OOM-киллером пока stack там что-то собирает (при кабал-инсталл такого не было), так вот с вероятностью практически 1, он убивает свою базу пакетов, что меня очень печалит.

попробовал поиграться с второтегом. Проект собиратеся, всё ок, но stack ghci не видит пакаджей: выдаётся много сообщений типа:

Could not find module ‘Data.Set’
It is a member of the hidden package ‘[email protected]_LKCPrTJwOTOLk4OU37YmeN’.

что может быть не так?

как этому стеку объяснить откуда брать все песочницы?

я хочу собирать тесты обычно, а запускать их: sudo stack test package
вместо того, чтобы взять их и тупо запустить стек пытается мне выкачать и скачать ghc и собрать все зависимости

Запиливал проект на ghc-7.10.1.
Думаю, а попробую.
Собираю проект с stack.
stack init --solver # честно выкачивает 7.10.1
stack build
Два часа проходит, и не справляется.

Качаю 7.10.2.
rm -rf stack
Пересобираю stack.
Пересобираю проект cabal + ghc-7.10.2.
Думаю, а попробую.
Собираю проект с stack.
stack init --solver
stack build
Два часа проходит, и не справляется.

*Стэк возможно реализовать при помощи связанных списков (linked lists) или при помощи массива переменной длины (resizable array). При использовании связанных списков, необходимо хранить только указатель на начало списка. При вставке нового элемента мы сохраняем копию первого элемента в "oldfirst", создаём новый элемент под именем "first" и его указателем на следующий элемент делаем "oldfirst". Если использовать расширяемые массивы, то встаёт вопрос с изменением длины массива. При изменении длины на каждую вставку (push) мы получим квадратичное время вставки в стэк. Увеличивать массив надо вдвое, если массив уже заполнен. Во избежание такого явления как "биение" (thrashing), когда мы при уменьшении размера (делая pop) массива вдвое урезаем его так же вдвое, а затем добавляем новый элемент и так по кругу — в результате размер массива изменяется при каждой вставке или удалении туда-сюда; уменьшать размер массива вдвое следует лишь когда он заполнен на четверть от своей длины.
Время работы стэка на linked lists всегда константно, на resizable arrays будет асимптотически константно, за исключением O(N) для случаев увеличения/уменьшения массива и переноса оригинальных данных в новый массив.
*Очередь легко реализовать на связанном списке, если мы сохраняем указатели на начало и конец списка. Очередь поддерживает операции unqueue — вставить в начало очереди и dequeue — вынуть из конца очереди. Реализация очереди на массиве не такая простая как реализация стэка на массиве, по причине того, что очередь изменяется с обоих концов.

При сборке пишет:
The program 'alex' is required but it could not be found.

Его действительно в PATH нет, но он указан в cabal-файле. По идее stack должен его собрать и использовать. Почему не так?

ghc-cabal:
/home/mtreskin/.stack/programs/x86_64-linux/ghc-7.10.2/lib/ghc-7.10.2/Cabal_96aI7pZyaxU3dsgngOxbdK/.copyFile2025503991738076217.tmp:
resource exhausted
ghc.mk:918: recipe for target 'install_packages' failed
make[1]: *** [install_packages] Error 1
Makefile:24: recipe for target 'install' failed
make: *** [install] Error 2

это ещё что такое? проявляется на линуксе при установке lts-3.2