@haskellru

Страница 111 из 1551
Denis
29.08.2016
09:38:48
Если речь вот об это фигне: https://github.com/commercialhaskell/stack/issues/2534 То я ЗА.

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

Quet
29.08.2016
09:44:06
какие есть более удобные альтернативы?

Denis
29.08.2016
09:44:36
А кто-то или что-то заставляет прямо сейчас сделать выбор?

Google
Quet
29.08.2016
09:45:11
а когда? через 10 лет? )

Denis
29.08.2016
09:45:17
Раньше вон. стека не было. Но в линуксах не стремились что-то на cabal завязывать работу с пакетами хаскелвыми

Quet
29.08.2016
09:45:25
задачи как бы надо уже сейчас решать

Denis
29.08.2016
09:45:37
А они как бы не решаются никак иначе??

Quet
29.08.2016
09:45:53
ну я ж говорю -- какая более удобная альтернатива?

Denis
29.08.2016
09:46:31
Текущий вариант оставить. Такое мое мнение. Пока не допилят стек или не появится нечто более удобное

А то раньше был Cabal, который WriteOnly по факту был (один раз поставил пакеты и хрен удалишь, а часто и хрен обновишь), так и остался стек writeonly. Прогресса особого я не заметил. Да, чуть удобнее стало собирать окружение для софтины. И все.

Quet
29.08.2016
09:48:51
раньше было просто нельзя жить потом появились сендбоксы и жить стало можно хоть как-то

Denis
29.08.2016
09:48:57
К слову, в Cabal я мог посмотреть установленные версии пакетов. А в стеке что-то не нашел такой возможности

Quet
29.08.2016
09:49:03
со стеком стало прям сильно лучше

Quet
29.08.2016
09:52:03
да, версии в снапшоте стекеджа прибиты гвоздями

и это очень удобно

Google
Denis
29.08.2016
09:52:51
Вы знаете, я человек консервативный. Мне не импонирует идея переустанавливать весь тулчейн раз в полгода. Без разницы, о каком языке или наборе языков разработки идет речь. И также я понимаю, что в процессе поддержки проекта время от времени возникает необходимость ли желание обновлять этот самый тулчейн, обновлять версии используемых бибилиотек и т.д. А еще я понимаю, что по 1 гигу на каждый проект (как сейчас работает стек, причем только на одну версию lts), это слишком жирно, даже с учетом терабайтных жестких дисков.

Evgenij
29.08.2016
09:53:01
Да да - очень удобно и скорость сборки возрасла многократно

Quet
29.08.2016
09:53:32
ээ по гигу на проект это сендбоксы как раз

Denis
29.08.2016
09:53:35
Там в lts уже определенные версии
Ага, а переход на новую версию lts ручками, с чисткой старых сборок.

Охуенное удобство

Quet
29.08.2016
09:53:55
стек шарит между проектами библиотеки

Denis
29.08.2016
09:54:02
ээ по гигу на проект это сендбоксы как раз
Я заглядывал ради любопытства в папку стека.

Quet
29.08.2016
09:54:35
загляни в папку сендбокса кабала ещё

Evgenij
29.08.2016
09:54:42
Ничего не мешает в stack.yaml прописать то что нужно

Denis
29.08.2016
09:54:49
Не знаю, может это он в коммунистических ОС что-то шарит. В буржуйской винде все копирует.

Он мне никогда не нравился.

Quet
29.08.2016
09:55:56
в общем я конечно понимаю что консерватизм, по гигу на проект (о ужас) и все такое но говорить что кабал без сендбоксов лучше это какой-то запредельный неадекват )

Denis
29.08.2016
09:56:18
Дак хуже кабал. Я не спорю.

Quet
29.08.2016
09:56:24
а что лучше?

Evgenij
29.08.2016
09:56:25
Незнаю как все ,но я считаю стэк определенным прорывом - чтобы уменьшить боль)

Denis
29.08.2016
09:56:31
Но и то, что есть называть верхом удобства не согласен.

Quet
29.08.2016
09:57:27
ну ты ж понимаешь что это не абсолют? по сравнению со всеми другими вариантами - стек и правда верх удобства

Denis
29.08.2016
09:58:15
Типа синица в руках?

Quet
29.08.2016
09:58:22
если ты думаешь что все очень плохо - напиши свой стек с круассанами и танцовщицами

Google
Denis
29.08.2016
09:59:11
Просто мне непонятно это рвение. Жили-были двадцать лет и тут на тебе, срочно нужно что-то делать, у нас тут стек появился!

Quet
29.08.2016
09:59:21
я ж говорил - решать задачи надо вот сейчас, ждать 10 лет пока появится (если появится) что-то более лучшее какая-то так себе идея

хреново жили эти 20 лет потому что

Evgenij
29.08.2016
09:59:53
И кстати недавно чтото брал из гита хаскельное на пробу - в проекте нет стэк - попробовал сделать стэковским - стэк указал какая проблема - я просто в кабале версию немного либы поправил (что была в lst) и всё работает ))))

Denis
29.08.2016
10:00:12
выглядит как сдача проекта с оговорками, просто потому что сроки поджимают. ?

Quet
29.08.2016
10:00:40
я чёт перестал тебя понимать совсем

какие сроки, какие оговорки?

Denis
29.08.2016
10:00:58
А про какие задачи ты говоришь?

Неужели стек прямо сейчас покрывает все задачи на 100%? Или кто-то обещает, что в ближайшие год-два станет покрывать?

Лично мои задачи он не покрывает.

Quet
29.08.2016
10:02:45
ок, не пользуйся )

Quet
29.08.2016
10:02:51
напиши свой

Denis
29.08.2016
10:02:57
Да куда там не пользуйся!

Уже в репл через него ходить приходится. Просто потому что удобнее

Quet
29.08.2016
10:03:33
так все же удобнее? )))

Denis
29.08.2016
10:03:48
Так он все же далек от идеала ?

Quet
29.08.2016
10:03:55
"приходится потому что удобнее" это просто пять

утомил, извини )

Denis
29.08.2016
10:04:33
Ладно, работать надо

Google
Alexander
29.08.2016
10:39:24
стек шарит между проектами библиотеки
в результате GC невозможен

собираешь с profile потом без -2Гб места

=)

которое не освободить никак кроме полного удаления .stack-work и ~/.stack =)

Quet
29.08.2016
11:12:33
ну что такое 2гб... )

Aldar
29.08.2016
17:04:46
https://www.futurelearn.com/courses/functional-programming-haskell/1/welcome

Alexander
30.08.2016
15:56:41
можно и делать const начиная с какого-то момента

там главное про суть было

Admin
ERROR: S client not available

Maxim
30.08.2016
15:57:27
Сорри, у меня обновление поздно пришло, что это уже далеко в истории группы. Да, согласен

Anatolii
31.08.2016
18:28:17
Ребята, столкнулся с проблемой

есть вот таких 2 тайп класса и по инстансу для них

class (Monad m) => JiraClient m where jiraUser :: Int -> MaybeT (ExceptT MyErr m) JiraUser instance JiraClient (State (IntMap JiraUser)) where jiraUser id = do db <- get hoistMaybe $ lookup id db class (Monad m) => RedmineClient m where redmineUser :: Int -> MaybeT (ExceptT MyErr m) User instance RedmineClient (State (IntMap User)) where redmineUser id = do db <- get hoistMaybe $ lookup id db

и есть вот такая функция func :: (RedmineClient m, JiraClient m) => MaybeT (ExceptT MyErr m) String func = do u1 <- jiraUser 1 u2 <- redmineUser 2 return $ show u1 ++ show u2

для IO есть инстансы

и проблем с запуском нету

а вот как запустить с 2-мя разными State я пока не смог додуматься

я пробовал через StateT сделать

но тоже не смог

Alexander
31.08.2016
18:44:43
с мтл так не прокатит, с двумя StateT формально можно если лифты руками сделаешь

Google
Alexander
31.08.2016
18:45:10
можно посмотреть доклад кмета и про monad morphism и посмотреть не запилил ли он это

Anatolii
31.08.2016
18:45:13
лифты в func делать надо?

Alexander
31.08.2016
18:45:47
ну у тебя будет StateT внутри другого

Anatolii
31.08.2016
18:45:53
я понял

Alexander
31.08.2016
18:46:00
и для функций во внутреннем тебе придётся lift писать

Anatolii
31.08.2016
18:46:06
я просто делал StateT instance

для каждого из клиентов

и думал как-то это запустить получится

чтобы внутри func ничего не трогать

Alexander
31.08.2016
18:46:41
вообще были какие-то пакеты с проекциями или тегами

у roche и ещё у кого-то

Anatolii
31.08.2016
18:47:17
как вообще в хаскеле делают такие вещи? ну вот я хочу изолировать IO и протестировать функцию

ну внутри func могла быть более сложная логика

каким путем идут?

я наверное как-то не так пошел

Alexander
31.08.2016
18:48:34
2 стейта разных в mtl или что именно?

Anatolii
31.08.2016
18:49:18
ну смотри, я хочу написать функцию, которой нужны данные с двух разных сервисов

чтобы протестировать эту логику

мне надо как-то изолировать сервисы

ну в других языках делают интерфейсы

и делают тестовую реализацию

Страница 111 из 1551