Alex
Народ, а как указывать конкретную версию в кабале и в stack.yaml?
Alex
Мне выдает parse error
Alex
На версию
Alex
49:13:
unexpected all digits in portion of unqualified component name
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
А мне нужно будет тянуть все зависимости которые есть?
Cheese
Alex
Потому, что теперь у меня ошибка что нужно указать wxcore
Cheese
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
попробуй
Cheese
Alex
Качает старый ghc
Alex
Сейчас посмотрим
Cheese
ну, не такой уж старый
Alex
У меня еще такой вопрос, тяжело ли haskell линковать в С++?
Alex
Он же компилится в бинарник
Alex
По идее должно быть норм
Cheese
если кто-то за тебя не написал байндинг, то нелегко
Cheese
в Хаскель встроен интерфейс вызова процедур из C, если из можешь экспортировать extern "C", дело сильно упрощается
Alex
ЕСТЬ
Alex
Билдится
Alex
Спасибо большое:)
Kirill
плюс есть inline-c
Alex
Возможно мне не придется линковать хаскель в плюсы
Kirill
а, в другую сторону, тут inline-c мимо
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
Kirill
@al_bl выше пример - втыкаем сишку прям в хаскельные сырцы
Alex
Спасибо всем
Yurii
Новый лайф-коддинг от Едварда
https://youtu.be/StmmK1a1Bm0
Aleksei (astynax)
Забавное:
flip flip flip ~ (flip ){4,}