Denis
у меня реально проблема возникала с тем что емакс медленно буфферит *haskell-compilation* буфер, там когда type mismatch на несколько тысяч строк, приходится ждать прилично, пока можно будет к следующей ошибке перейти
Leonid 🦇
хорошо хоть сорцы не удаляет
Vitaly
Это было
Vitaly
https://twitter.com/bos31337/status/116372971509121025
Leonid 🦇
легендарная история
A64m
> I've wanted linear types for so long, but even I don't want them in GHC
Alexander
Остин на реддите забавно написал
A64m
загадочная душа программиста, конечно
Alexander
с несуществующими цитатами
A64m
чего у него бомбануло-то так?
Alexander
у него вечно бомбит
Alexander
от чего-то втехасе, от убера от трампа от гхц
A64m
причем на реддите один из первых комментариев был обычным восторженным, что ну вот мол, сейчас будем игры на линейном хаскеле писать, а на нелинейном скриптовать, а другой, естественно, с вопросом. на который есть ответ в статьте
A64m
скоро я буду на каждый комментарий на реддите уже реагировать как Остин на линейный хаскель
Dmitrii
@qnikst а далеко еще до заверщения книжки в которую ты контрибиш?
Я тоже помогаю с этой книжкой. И так как neongreen и int_index вместе со мной получили спонсирование на написание книжки от нашего великодушного работодателя, то дело со следующей недели ускорится в разы, и книжку можно будет ожидать относительно скоро.
Andrei
https://twitter.com/bos31337/status/116372971509121025
Нормальное расширение получилось бы, зря в баги записали
Denis
заширение скорее
A64m
надо сказать, что хаскель на WSL в 1709 тормозит сильно меньше. если в 1703 хаскельная программа сновым рантаймом чуть ли не минуту стартовала, то теперь где-то секунды на три подтормаживает
Alexander
@A64m_qb0 а huge pages support кстати нужно ghc отключать или при сборке программы можно?
A64m
при сборке ghc
Alexander
:/
Alexander
@A64m_qb0 а какие опции конкретно?
Alexander
а то я даже не знаю тут или в гиттере искать
A64m
вроде ./configure —disable-large-address-space
Alexander
спасибо
a66ath
Сергей
Есть ли известные способы в хаскеле собрать консольную командную строку из списка аргументов [String] -> String ? Чтобы параметры с пробелами и ключи вида "--flag" корректно заэнкодились
Aleksei (astynax)
А зачем? Если нужно вызывать внешнуюю команду, то обычно список строк и передают
Aleksei (astynax)
А вообще всегда можно сделать concat ["--flag=", show "f\"o\"o", "--bar=", show 42] как минимум кавычки заэкранируются
Сергей
мне нужно вызвать lxc-attach -n contname -- bash "консольная команда"
Alexander
консольная команда это обычно [String] а не String
Alexander
если ты не через shell запускаешь, а ты не через shell запускаешь обычно
Aleksei (astynax)
https://hackage.haskell.org/package/process-1.6.2.0/docs/System-Process.html
Aleksei (astynax)
proc :: FilePath -> [String] -> CreateProcess
Alexander
т.е. ты будешь делать proc "lxc-attach" ["-n","contname", "--", "bash", "консольная команда"]{}
Сергей
да, про proc ясно, но нужно команду передать в команду как целую строку
Сергей
да
Alexander
intercatale " " ?
Aleksei (astynax)
Не, тогда пробельчики всё сломают
Alexander
вообще не видел либ на эту тему
Alexander
нет же
Alexander
он про "консольная команда"
Сергей
сначала как-то нужно заквотить некоторые параметры как Алексей показал, но автоматом
Aleksei (astynax)
intercalate " ", это unwords :)
Alexander
для эскейпинга что-то было
Aleksei (astynax)
show? :)
Сергей
тоже нет, к сожалению
Сергей
и ещё нужно чтобы пайпы не сломали её
Aleksei (astynax)
Пайпы внутри двойных кавычек трактуются, как символы $ echo "foo > bar" foo > bar
Alexander
translateInternal
Alexander
@astynax не уверен, что show все как надо сделает
Aleksei (astynax)
show сэкранирует двойные кавычки. Вот юникоды попортить могёт
Alexander
угу и ещё кавычек добавит вокруг флагов
Alexander
в общем в Process есть функция translateInternal
Alexander
и она вроде экспортирована
Aleksei (astynax)
Ну так не всё надо шовать, а только значения флагов :)
Alexander
translate
Aleksei (astynax)
> show "блебле" "\"\\1073\\1083\\1077\\1073\\1083\\1077\"" эта проблема почище, чем лишние кавычки
Alexander
а флаги как угадывать будешь?
Alexander
по наличию - первым символом?
Aleksei (astynax)
Я бы взял либу форматирования строк тупо :)
Alexander
есть хотя бы одна причина не использовать метод из process?
Aleksei (astynax)
format ("--flag=" %s% " --verbose --level=" %s% "...") (f, l)
Сергей
в моём случае, то, что надо: translateInternal
Alexander
то, что выше работает только если ты значешь строку а у тебя не [String]
Alexander
впрочем я не знаю изначальную задачу
Сергей
идея рабочая в translateInternal: — goodChar is a pessimistic predicate, such that if an argument is — non-empty and only contains goodChars, then there is no need to — do any quoting or escaping
Сергей
Спасибо
Denis
new-build c freeze файлами работает?
Denis
надо как-то кабализировать стековый проект с кучей пакетов
Алексей
Там, вроде new-freeze
Алексей
Но я не пользовался
Alexander
вроде в последнем научили
Alexander
он офигенный cabal.project.config делает
Alexander
с флагами и прочими блекджеками
Leonid 🦇
new-build это nix для бедных.
A64m
а как никс поддерживает хаскельные пакеты? Можно там зависеть от двух хаскелепакетов одной версии, которые зависят от других пакетов разных версий?