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
Danila Matveev
Vladislav
а как проверить? Я только что установил, это не означает, что последняя версия? (установка прошла успешно)
Vasiliy
Dmitry
#special у кого-то бомбануло: https://goo.gl/CkFjLa
Vasiliy
в build-depends нужно дописать используемую библиотеку
Vladislav
с другими библиотеками все автоматом прописывалось, хм
Vasiliy
или, если ты тот самый чел, которому советовали использовать hpack, то зависимости надо дописывать в package.yaml
Vasiliy
автоматом если что и прописалось, то только то, что было в шаблоне, из которого ты проект сделал
Vladislav
Vasiliy
а как запускаешь?
Alexander
#special смешной человек там отметился..
Vladislav
Vasiliy
репл перезапусти
Dmitry
@qnikst никогда не угадаешь, от чего у кого-то бомбанет. вроде все повеселились, хорошо провели время, и даже с пользой. но всё равно кто-то недоволен
Евгений
Но ведь любая декартова категория симметрично-моноидальна
Dmitry
у меня даже у знакомого шарписта особо не бомбило от результатов, наоборот, развеял мои иллюзии, что моно настоящий исполняемый код генерирует
Anonymous
@iamweasel перефразируя старый еврейский анекдот: вот из-за таких индивидуумов, как процитированный, теорию потом и не любят.
Alexander
надо бы тоже блогопост haskell центричный сделать, чтобы выписать, что сработало, что нет, что хочется и открытые вопросы
Dmitry
давай, я уже устал от этой олимпиады
Anonymous
зачем seq два аргумента?
Alexander
а как ещё может быть?
Alexander
бывает ещё evaluate у него 1 агрумент
Anonymous
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 сделает не совсем то, что ожидаешь