A64m
Leonid 🦇
A64m
Leonid 🦇
Sr
Andrey
вот и я не хочу никс. платформу категорически не рекомендуете? только стек?
Andrey
Так то платформа это тот же кабал с гуем имхо. И на ней задачи любой серьезности можно решать, если стак не использовать
Andrey
Алексанрд не юзает его, насколько я знаю, например
A64m
переходим к тому зачем использовать кабал
A64m
если хочется делать что-то как раньше, или наоборот если хочется попробовать новые фичи, которые нормально не доделаны
A64m
(кабал - это два разных тула в одном сейчас)
Andrey
ок, с платформой я уже наигрался, буду пробовать ставить стак
Andrey
где у вас канал для новичков? чтобы здесь не мешать обсуждать важные вопросы, хочу дойти от стоящего стака до запуска кода из файла (интерпретации и компиляции) и установки пакетов
A64m
можно спрашивать здесь
Евгений
Про установку на мак точно лучше здесь
Andrey
сделал
brew install haskell-stack
stack setup
бдсмский емакс стоит. как мне создавать файлы, компилить их (или запускать в интерпретаторе) и подгружать пакеты?
A64m
надо именно файлы, создавать проекты не вариант?
Andrey
ghci my-file ?
A64m
stack repl my-file
Andrey
ну у меня файл будет в папке, в подпапках другие файлы (ака модули или как они тут называются), буду их импортить в файле и компилять файл. может это называется проект?
A64m
ну для проекта надо еще кабал и стек файлы
Andrey
про репл спасибо, как компилить погуглю. и как пакеты скачивать тоже наверное есть инфа
A64m
они сами скачаются, если используются
A64m
т.е. если в кабал файле прописаны, например
Andrey
кабал-файл, стек файл… с платформой было проще - кабал апдейт/кабал инсталл/компиле
A64m
ну похожие рабочие процессы может как-то можно восстановить, но они не типичные, так что тут тяжелее будет ответы получать
Andrey
я готов мучиться с новыми рабочими процессами, мне бы их только пройти один раз. напрмер сейчас хочется запустить скомпилированный экзешник из одного имеющегося файла кода с подгрузкой нужных либ и импортов
A64m
в смысле, весь собственный код в одном файле?
A64m
для такого даже и кабал файла создавать не надо, в принципе
Andrey
ну надо же с чего-то начать. как первый пример
Зигохистоморфный
Rename this channel to "Haskell blah" :D
A64m
тут вопрос в том, надо освоить более универсальный процесс с проектами, или "скриптовой" когда один файл
Andrey
в идеале конечно и то и другое, но для начала мне кажется логичным с одного файла
A64m
попробовать в первой строчке файла такой во комментарий сделать
-- stack --resolver lts-11.12 script
и потом запустить его командой stack file.hs
если все используемые пакеты в этом срезе есть - то все должно сработать
A64m
ничего минимальнее этого мне пока в голову не приходит
Andrey
Haskell stack repl test
Warning: Some targets (test) are not local packages, and so cannot be directly loaded.
Haskell stack test
Error parsing targets: The specified targets matched no packages.
Perhaps you need to run 'stack init'?
Andrey
stack init хочет кабал или ямл-файлы. предлагает сделать нью. но это создание нового проекта, я так понимаю.
A64m
да
A64m
эта ошибка после какой команды появляется?
Andrey
первая - после stack repl test, вторая - после stack test с дописанным в начале файла тем что вы предлагали
A64m
а ну, значит не все пакеты в срезе есть
Andrey
да я файл сделал
main = print 123
какие пакеты ему нужны?
A64m
хм. тогда что-то не то, такого быть не должно
A64m
а, файл именно тест называется, не тест.хс?
A64m
может из-за этого проблема
Andrey
без расширения, да. мне говорили что это на убогой винде расширения важны, а на нормальных ос пофигу
Andrey
щас расширю )
Andrey
фигасе, оно работает
Andrey
добавил нужный кот в файл, либы и пакеты оно само подтягивает. как теперь скомпилировать (то, что на маке является аналогом экзешника) и запустить это нечто?
Hermann
anyone know angular?
Andrey
нагуглил как создавать новый проект, билдить и запускать. только при билде не может найти часть модулей которые импортирую. их надо указывать в файлах конфигов проекта?
Andrey
какие буквы надо написать в билд-депенденси секцию кабал-файла проекта чтобы работало, к примеру, Data.Time?
A64m
соотвествующие пакеты, т.е. time вероятно
Aleksei (astynax)
Aleksei (astynax)
минимальный самодостаточный скрипт. Запускать через stack Foo.hs
Aleksei (astynax)
Если нужны пакеты, то дописываются к stack-комменту в виде
--package=text --package=lens
A64m
A64m
там дальше вопрос как такой скрипт компилить в бинарник
Andrey
спасибо, дописал руками в кабал-файл нужные имена пакетов (их еще и узнавать надо по имени либы импорта как-то), оно мне сказало что кабал-файл править руками не комильфо и надо через паккадж.ямл, но сбилдило и запустило таки
Aleksei (astynax)
компилить бинарник без создания проекта можно так: stack ghc Foo.hs
Зигохистоморфный
Andrey
о, пасиб. а то я уж думал на каждый чих проект создавать придется
A64m
Aleksei (astynax)
есть "сделать исполняемым", т.е. "добавить shebang и выставить право на исполнение"
Andrey
ну на первое время вроде хватит возможностей для поигрушек, еще раз спасибо. если что, буду спрашивать
Aleksei (astynax)
А если явно указать в ком.строке?
Aleksei (astynax)
stack --resolver=foo ghc bar.hs так, я имею в виду
A64m
ну так должно
Aleksei (astynax)
Вообще компилить вне проекта - такая себе идея. Либо уж надо тогда "глобальный проект" пользовать и все скрипты с тем же ресолвером писать в шапке
A64m
ну если использовать для всего один ресолвер из дефолтного проекта, то и в шапке скриптов ничего писать не надо
A64m
таким образом вообще можно вот это старое поведение кабала воспроизвести польностью, инсталить пакеты
cabal repl --package foobar
A64m
после этого он уже в кеше пакетов будет
Leonid 🦇
> FPCONF.Haskell — конференция для хаскелистов и сочувствующих!
уже обсуждали?
Cheese
это откуда?
Leonid 🦇
fpconf.ru
Leonid 🦇
даже дата есть - Москва, 15 августа 2018