Alexander
1. можно ли уменьшить жор памяти билдером - тут страницы на 3-4 флаша данных выделяются (mmap)
Alexander
2. что за хрень с V.foldr
Alexander
причем второй интереснее
Alexander
и oneShot и deadOcc бы кто рассказал
Dmitry
сейчас соберу стеком
Dmitry
не, ну почти: dmz@zen ~/tmp/bsfuck $ time ultimate/bin/ultimate < ./49zGQ6Zt.txt > /dev/null real 0m1.496s user 0m1.484s sys 0m0.008s dmz@zen ~/tmp/bsfuck $ time ./playground < ./49zGQ6Zt.txt > /dev/null real 0m1.445s user 0m1.400s sys 0m0.044s
Alexander
забавно
Alexander
в общем надо fast-builder до ума коммиты довести и запушить
Alexander
с векторами надо что-то делать.. жутко инлайнит лишнее
A64m
ну билдер-то без аллокаций не обойдется, так что только в мутабельный массив писать, как во всех остальных имплементациях
Alexander
хочу билдер, который обходится
Alexander
точнее хочу downstream который разрулит это
Alexander
ладно на сегодня все
Alexander
2 вопроса похоже остануться висеть в воздухе до следующего раза
a66ath
Vladislav
Failed to load interface for ‘Graphics.UI.Gtk’ Perhaps you meant Graphics.UI.GLFW (from GLFW-0.5.2.5) Graphics.UI.GLUT (from GLUT-2.7.0.12) почему-то не видит библиотеку, хотя установил. Кто сталкивался с такой проблемой?
Vladislav
/stat@combot
Combot
combot.org/chat/-1001043143583
Vladislav
/stat@combot
Combot
combot.org/chat/-1001043143583
Vladislav
а как проверить? Я только что установил, это не означает, что последняя версия? (установка прошла успешно)
Dmitry
#special у кого-то бомбануло: https://goo.gl/CkFjLa
Vladislav
в кабал-файл не дописал?
я через stack ставил... А что туда дописывать надо и как?
Vasiliy
в build-depends нужно дописать используемую библиотеку
Vladislav
с другими библиотеками все автоматом прописывалось, хм
Vasiliy
или, если ты тот самый чел, которому советовали использовать hpack, то зависимости надо дописывать в package.yaml
Vasiliy
автоматом если что и прописалось, то только то, что было в шаблоне, из которого ты проект сделал
Vladislav
автоматом если что и прописалось, то только то, что было в шаблоне, из которого ты проект сделал
у меня еще и проекта нет, просто либы прописал через импорт и попытался запустить в терминале этот файл
Vasiliy
а как запускаешь?
Alexander
#special смешной человек там отметился..
Vasiliy
репл перезапусти
Vladislav
репл перезапусти
сработало) Спасибо!
Dmitry
@qnikst никогда не угадаешь, от чего у кого-то бомбанет. вроде все повеселились, хорошо провели время, и даже с пользой. но всё равно кто-то недоволен
Евгений
Но ведь любая декартова категория симметрично-моноидальна
Dmitry
у меня даже у знакомого шарписта особо не бомбило от результатов, наоборот, развеял мои иллюзии, что моно настоящий исполняемый код генерирует
Anonymous
@iamweasel перефразируя старый еврейский анекдот: вот из-за таких индивидуумов, как процитированный, теорию потом и не любят.
Alexander
надо бы тоже блогопост haskell центричный сделать, чтобы выписать, что сработало, что нет, что хочется и открытые вопросы
Dmitry
давай, я уже устал от этой олимпиады
Anonymous
зачем seq два аргумента?
Alexander
а как ещё может быть?
Alexander
бывает ещё evaluate у него 1 агрумент
Alexander
а почему он вообще выполнится тогда?
Anonymous
или как id
Alexander
так же как и с id
Alexander
seq он что говорит?
Anonymous
Alexander
что a вычислится до WHNF тогда же когда и b вычислится до WHNF
Alexander
т.е. он создает дополнительную зависимость в графе вычислений
Alexander
т.е. например const (a `seq b) () не выполнит ни `a, ни b
Anonymous
ооооо
Alexander
есть подозрение, что case a `seq () of () -> ...` тоже нифига не выпонит, но тут я что-то не соображу
Aleksei (astynax)
Пользуй тройные кавычки, Люк
Alexander
*Main> foo foo () *Main> Leaving GHCi. qnikst@qwork ~ $ cat 20.hs import Debug.Trace foo = case (trace "foo" (5::Int)) `seq` () of () -> ()
Alexander
test `seq` bar
Alexander
это inl`ine код
Alexander
@astynax тройные кавычки не inline делают
Aleksei (astynax)
Test foo \`bar\`baz test
Alexander
блин по мотивав работы в #dev чятике n вопросов про вектора задал и ничего не ответили :/
Aleksei (astynax)
Отстойный тут "маркдаун"
Anonymous
т.е. он создает дополнительную зависимость в графе вычислений
а если у нас зависимость на статически известном значении
Alexander
@anarchostatist смотря что ты с ним делаешь
Anonymous
ничего
Alexander
case (trace "foo" (5::Int)) `seq` () of () -> ()
Alexander
выведет "foo"
Anonymous
м
Alexander
а вот`` let x = trace "foo" (5::Int) `seq ()`
Alexander
нет
Alexander
но если Bang добавишь let !x = то выведет
Alexander
в общем правило простое, если (даже уже статически известное, вычесленное, существующее в программе в одном экземпляре) смотришь до whnf то и аргумент seq выполняется
Alexander
для evaluate не нужен, т.к. у нас есть state token и зависимость по нему строится
Alexander
но он и evalute :: a -> IO a
Alexander
интересный force из deepseq
Alexander
у него тоже один агрумент
Alexander
но и гарантия у него совсем другая: когда ты вычисляешь значение до WHNF - оно вычислится до NF
Alexander
т.е. time $ pure force $ someio сделает не совсем то, что ожидаешь