Maxim
а вроде ещё живой https://github.com/deech/fltkhs был, никто не пользовался?
> feels like it has polymorphic dispatch, meaning a single function dispatches to the right implementation based on the type of widget it is given. Блин, как же мне этого не хватает
Alex
Народ, а как указывать конкретную версию в кабале и в stack.yaml?
Alex
Мне выдает parse error
Alex
На версию
Alex
49:13: unexpected all digits in portion of unqualified component name
Maxim
Оно говорит пиши wx-0.92.3.0
Так вот прямо как тут, так и указывай
Maxim
extra-deps: - wx-...
Alex
У меня extra-deps это список
Cheese
всё правильно
Alex
В комментах так во всяком случае
Cheese
дефисом отмечается элемент списка
Aleksei (astynax)
обычный yaml-список extra-deps: - foo-0.1.0.2 - bar-4.5.1
Alex
Ага
Alex
Понял
Aleksei (astynax)
В комментах там [] - это тот же список, только в JSON-синтаксисе
Alex
Теперь у меня две ошибки
Alex
Одна это парс эррор в кабале
Alex
вторая в стаке
Aleksei (astynax)
В .cabal не нужно версию указывать вообще
Cheese
покажи текст ошибок, что ли
Alex
Теперь одна
Alex
Aeson exception: Error in $['extra-deps']: failed to parse field 'extra-deps': expected [a], encountered String
Aleksei (astynax)
-
Alex
extra-deps: -wx-0.92.3.0
Alex
Вот на это
Aleksei (astynax)
пробел после первого -
Alex
Есть
Aleksei (astynax)
Стоит почитать уже синтаксис YaML
Aleksei (astynax)
extra-deps: - wx-0.92.3.0
Cheese
можно было просто скопировать из ошибки и вставить в конфиг
Alex
Ребята
Alex
А мне нужно будет тянуть все зависимости которые есть?
Alex
Потому, что теперь у меня ошибка что нужно указать wxcore
Cheese
это только для некоторых пакетов, которых нет в Стэкадже
Aleksei (astynax)
Для неснапшотовых пакетов придётся добавлять в extra-deps то, что попросит stack
Alex
Мне нужно добавить эту библиотеку в стак и в кабал, верно?
Cheese
только в stack.yaml
Cheese
в .cabal добавишь, если ты её напрямую используешь
Cheese
кабалфайл управляет сборкой твоего бинарника, stack.yaml описывает сборочное окружение в целом, грубо говоря
Alex
Мне кажется я делаю что-то не так. Я добавил wx в кабал, wx в стак, wxcore в стак, теперь wxcore говорит что мне следует добавить еще зависимостей — wxc и wxdirect. У меня есть подозрения что и они потянут какие-то зависимости?
Cheese
вероятно, это последние
Cheese
допиши эти 2 строчки и посмотри
Cheese
просто ниша GUI на Хаскеле проработана довольно поверхностно, поэтому приходится кое-где пару строчек дописывать
Alex
Cabal-2.0.1.1 from stack configuration does not match >=1.23 && <1.25 (latest matching version is 1.24.2.0)
Alex
Вот это похоже плохо
Alex
Или нет?*
Cheese
покажи полностью вывод
Alex
Error: While constructing the build plan, the following exceptions were encountered: In the dependencies for wxc-0.92.3.0: Cabal-2.0.1.1 from stack configuration does not match >=1.23 && <1.25 (latest matching version is 1.24.2.0) needed due to mtrs-0.1.0.0 -> wxc-0.92.3.0 In the dependencies for wxdirect-0.92.3.0: process-1.6.1.0 from stack configuration does not match >=1.1 && <1.5 (latest matching version is 1.4.3.0) needed due to mtrs-0.1.0.0 -> wxdirect-0.92.3.0
Cheese
упс. в снапшоте более свежий Cabal, чем поддерживает wxc
Cheese
@astynax, спасай
Cheese
и process
Cheese
можно взять более старый lts, наверно
Alex
Может попробывать другую гуишную либу?
Cheese
попробуй
Alex
Качает старый ghc
Alex
Сейчас посмотрим
Cheese
ну, не такой уж старый
Alex
У меня еще такой вопрос, тяжело ли haskell линковать в С++?
Alex
Он же компилится в бинарник
Alex
По идее должно быть норм
Cheese
если кто-то за тебя не написал байндинг, то нелегко
Cheese
в Хаскель встроен интерфейс вызова процедур из C, если из можешь экспортировать extern "C", дело сильно упрощается
Alex
ЕСТЬ
Alex
Билдится
Alex
Спасибо большое:)
Kirill
плюс есть inline-c
Alex
Возможно мне не придется линковать хаскель в плюсы
Kirill
а, в другую сторону, тут inline-c мимо
Cheese
плюс есть inline-c
ах да, плюс inline-cpp
Alex
Что это все такое?
Kirill
но онож inline в смысле для втыкания в хаскель
Kirill
main :: IO () main = do x <- [C.block| int { // Read and sum 5 integers int i, sum = 0, tmp; for (i = 0; i < 5; i++) { scanf("%d", &tmp); sum += tmp; } return sum; } |] print x
Cheese
Возможно мне не придется линковать хаскель в плюсы
у Хаскеля тоже есть экспорт в сишном формате, но там больше геморроя, потому что сишно-плюсплюсные сборщики более тупые
Kirill
@al_bl выше пример - втыкаем сишку прям в хаскельные сырцы
Alex
Спасибо всем
Yurii
Новый лайф-коддинг от Едварда https://youtu.be/StmmK1a1Bm0
Aleksei (astynax)
Забавное: flip flip flip ~ (flip ){4,}