Чтобы добавлять сообщения и комментарии, .

@agr:
agr

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

MoveFileEx exception: access denied.

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

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

@max630:
max630

failure: needed (>=0.1 && <0.3), not present in build plan (latest applicable is 0.2.0.3)

@qnikst:
qnikst

А уже же придумали как в стеке собрать ghc со своими патчами?

@segfault:
segfault

Вышел 1.2.0

@qnikst:
qnikst

КАК В ЭТОМ СТЕКЕ СДЕЛАТЬ КЛИН ЧТОБЫ ОН УДАЛИЛ СОБРАННЫЕ СИШНЫЕ ФАЙЛЫ АЗАЗАЗАЗАЗАЗА!

@qnikst:
qnikst

stack exec не поддерживает опцию --resolver?! ну и зачем он тогда нужен..

@Anatolych:
Anatolych

а вот как бы мне передать через стак кой-какие аргументы в hpc, например?
--test-arguments — оно про это или мимо?

@max630:
max630

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

@max630:
max630

у меня такое ощущение что os(windows) в кабальном файле не тру. Как-нибудь можно в стеке это отследить?

@qnikst:
qnikst

как объяснить стеку, что --ghc-options я хочу для одного пакета, а не для всего стека?

@qnikst:
qnikst

как в этом вашем stack setup использовать ghc с патчами, ну или чтобы он подцеплял ghc собраный мною и видимый в PATH

@max630:
max630

а можно ли мне попросить версию библиотеки отличную от той что есть в стакадже. И что из этого выйдет, например, если это будет process?

@dr-Chaos:
dr-Chaos

А кто как stack-ом собирает из vim-а?

@qnikst:
qnikst

а как этого куска софта (stack) можно попросить не стрипать мне исполняемый файл, у cabal-install было --disable-executable-stripping

@dr-Chaos:
dr-Chaos

Вот кстати по стеку вопрос. Когда фиксил тесты для 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. Полагаю что дело в путях, но всё равно какая-то хуйня.

@segfault:
segfault

Чтобы уменьшить потребление памяти ghci под stack удобно задать переменную
export GHCRTS="-M2000m"
значение подбираем эмпирически.

@segfault:
segfault

ghci сжирает больше 5гб памяти при заргузке проекта. При cabal такой хуйни не было..

@ocmanv:
ocmanv

Автодополнение в cabal у меня работало лучше.
Почему он показал мне флаги?

@max630:
max630

а как компилить один файл? как я понял, stack ghc не делает настройки для проекта (надо вручную прописывать -i и лишние пакеты видны)

@qnikst:
qnikst

а как в этом вашем stack научить --pedantic работать только для packages, а то он и для зависимостей его пытается использовать?

@qnikst:
qnikst

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

@max630:
max630

почему-то в индекс документации не пишутся имена доставленных пакетов:
Control.Monad --> base-4.8.1.0

Control.Monad.Catch

@L29Ah:
L29Ah

Почему вдруг всем стала нужна эта параша? У большинства хаскелистов в системе пакетного менеджера адекватного нету?

@qnikst:
qnikst

а у stack есть опция НЕ_ЖРИ_ОПЕРАТИВКУ_ГИГАБАЙТАМИ!!!! ?

@max630:
max630

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

Could not find module ‘Data.Set’
It is a member of the hidden package ‘containers-0.5.6.2@conta_LKCPrTJwOTOLk4OU37YmeN’.

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

@qnikst:
qnikst

а вот stack или cabal осилят сбилдить следующие зависимости:

A.cabal
library
...
executable test-stuff
build-depends: B

B.cabal
library
build-depends: A

т.е. в пакете A есть библиотека, и исполняемый файл зависящий от пакета B, зависящего от билиотеки A.

@qnikst:
qnikst

а как убедить stack писать вывод тестов в файлики, а не вываливать мне на экран?

@qnikst:
qnikst

А ещё этот кусок софта (stack) не умеет в build-type: custom, в котором используется враппер над тестами.

@qnikst:
qnikst

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

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

@dr-Chaos:
dr-Chaos

Бля как ghc-mod со стэком подружить?

@dr-Chaos:
dr-Chaos

За 1 день смог перескочит на пару релизов yesod, wai, persistent и т.п. Теперь осталось проверить.

@dr-Chaos:
dr-Chaos

пришло время перевести рабочее место на stack, само оно не перевёдтся.

@agr:
agr

Запиливал проект на 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
Два часа проходит, и не справляется.

@pimiento2:
pimiento2

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

@Zert:
Zert

Я правильно понимаю, что никакой интеграции емакса и стека ещё нет? Как мне, скажем, делать и обновлять TAGS в условиях использования stack?

@Zert:
Zert

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

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

@Zert:
Zert

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

@Zert:
Zert

Только на днях вышел lts-3.0, как уже есть lts-3.2. Как они такими темпами собираются LTS обеспечивать?

@dr-Chaos:
dr-Chaos

Блин, как правильно указать пути к бинарям? Т.е. есть у меня некий антовксий скрипт который делает tar.gz пакет. Если собирать кабалом — путь всегда один и проблем нету. Стек же туда пихает архитектуру и версию кабала. Можно конечно собирать stack build --copy-bins , а потом из stack path --local-bin-path копировать. Может есть ещё способы?

@Zert:
Zert

Реабилитирую stack. На линуксе всё заработало сразу, проблема линковки чисто на макоси. Ладно, пусть будет, посмотрю его получше.