Alexander
в смысле итераций? если таблиц немного джойнится, то можно прикинуть cost для всех вариантов
Alexander
если много (типа 10+), то всякие эвристики нужны уже
Alexander
в итоге можешь делать JOIN для A и B, а в ON у тебя будут C и D
звучит странно, это уже другой какой-то джойн :)
Misha
в смысле итераций? если таблиц немного джойнится, то можно прикинуть cost для всех вариантов
Я потерялся. Что перебираем? У нас всегда дерево left-deep или right-deep. EDIT: посмотрел еще раз слайды, понял
Alexander
ну не, возможно твое замечание и справедливо
Misha
Я сижу и туплю и не могу понять какая там асимптотика :/
Alexander
но даже если перебираются не все возможные варианты, то большое количество
Alexander
это отвечая на твой первый вопрос про то, будет ли оптимайзер джойнить А и С - вполне себе будет
Alexander
Я сижу и туплю и не могу понять какая там асимптотика :/
асимптотика в плане количества вариантов? в http://www.benjaminnevarez.com/2010/06/optimizing-join-orders как раз указано
Алексей
websockets?
Aleksei (astynax)
https://hackage.haskell.org/package/websockets https://hackage.haskell.org/package/wai-websockets
Aleksei (astynax)
Зечем websocket вместо очереди, если можно просто socket взять?
Alexander
@volhovm у вас в universum случаем нету join . atomically . asum а если есть, то как обозвали?
Alexander
а то у нас достаточно часто встречается такой паттерн, а как обозвать непонятно
Dmitrii
@qnikst Такого случайно нет. atomically — это из STM? Не знаю, встречается ли у нас часто такой паттерн...
Alexander
да
Alexander
это когда есть stm, который возвращает какой-нить IO, который выполнить
Alexander
да = из STM
Vladislav
А что делает asum в данном случае?
Alexander
выбирает из транзакций
Alexander
asum [stmAction1, stmAction2, ..]
Alexander
оно работает как stmAction1 orElse stmAction2 orElse retry
Alexander
можно конечно asum не втаскивать и только join atomically оставить
Kirill
@qnikst а что есть universum в данном случае?
Alexander
очередное prelude/base done right
Alexander
(это не пренебрежительный комментарий был если что)
A64m
> Reimagined approach for Foldable type hierarchy. Forbids usages of length function and similar over Maybe and other potentially unsafe data types. It was proposed to use -XTypeApplication for such cases. But this approach is not robust enough because programmers are human and can easily forget to do this. ясно понятно
A64m
class Container t => NontrivialContainer t
Alexander
обозвал runSTM и runSTMs
Kirill
кстати, никто не в курсе, чего lts-стакана под 8.2 так всё и нету?
Aleksei (astynax)
Там баги :) Мы попробовали на Nightly с 8.2.1 пересесть, теперь вот расхлёбываем - пишем багрепорты, вот это всё
Aleksei (astynax)
Баги компилера
A64m
что, больше, чем обычно в .1 ?
Aleksei (astynax)
Достаточно одного, но блокирующего
A64m
ну т.е. как обычно
Alexander
у нас пока что попалось - неблокирующее
A64m
@astynax а что там такого страшного в этот раз? В .2 RC1 еще есть?
A64m
сам-то я и не пробовал еще на 8.2 переходить
Dmitry
Shadowed dependencies на пустом месте ещё выпадают?
Alexander
мы в RecordWildcards на что-то наткнулись
Alexander
или чем-то близком
A64m
RecordWildcards урезали же
Aleksei (astynax)
Shadowed dependencies на пустом месте ещё выпадают?
Это да, точечный clean временно помогает
Зигохистоморфный
RecordWildcards урезали же
что там урезали?
A64m
захват на топлевеле точно урезали, может еще что
A64m
https://ghc.haskell.org/trac/ghc/ticket/14347
Зигохистоморфный
ну я это не юзал, больше в функциях, чтобы не париться с PM
Leonid 🦇
I don't think anyone is using record wildcards in this bizarre way, so I don't expect any fallout.
A64m
ЕМНИП Леннарт говорил, что использование для энкодинга модулей у этой фичи штатное
A64m
но то, что эту фичу так и не стали в таком качестве использовать - это факт, конечно
A64m
хотя ее переодически "открывают", Гонзалес сколько-то лет назад, а недавно вот и SPJ
A64m
в парадигме "первокалассный модуль" это поведение вовсе не странное, непервоклассные модули тоже позволяют реэкспортить топлевел-значения.
Cheese
Check out @crazy_fizruk’s Tweet: https://twitter.com/crazy_fizruk/status/918868614257762304?s=09
Cheese
Check out @skillsmatter’s Tweet: https://twitter.com/skillsmatter/status/918833954718912512?s=09
Denis
Алкоголики! Тунеядцы!
Зигохистоморфный
https://github.com/gluon-lang/gluon
Влод
зачем язык на расте? (ну хотя это не вопрос, понятно что у автора видимо не было выбора) в чём embeddable? апи на расте? https://github.com/gluon-lang/gluon/blob/master/vm/src/gc.rs вот это разве что оправдывает раст. конечно полно ансейфов, но в целом наверное не хуже чем на плюсах
A64m
очевидно затем, что проще скриптовать приложение скриптом, имплементация которого написана на том же языке, что и скриптуемое приложение
Alexander
-не очевидно
Misha
Поддерживаю, не совсем очевидно.
Влод
дада апи может быть не только для раста
Влод
проще только делать такой скриптовый язык
Anonymous
ок
Anonymous
давай зададим вопрос зачем не на расте?
A64m
делать как раз не проще
Alexander
чятик про раст через 2 кабинета налево
A64m
проще на каком-нибудь высокоуровневом языке скрипты имплементировать
A64m
там же наверное забанят, если что-то не то про раст сказать?
Anonymous
проще на каком-нибудь высокоуровневом языке скрипты имплементировать
особенно просто когда нет возможности работать с памятью
Влод
давай зададим вопрос зачем не на расте?
чистая задача, без сильного требования к перфомансу, без жёстких требований по памяти если бы я писал, то наверное хаскель компилятор в ллвм и виртуальная машина например на расте
A64m
Зачем рботать с памятью, чтоб парсер тайпчекер и т.д. писать?
A64m
а интересный рантайм для такого языка все равно не написать, ему же нельзя будет объекты в куче двигать, чтоб быстрый интероп был.
Anonymous
Anonymous
вот даже gc непонятно как имплементировать
A64m
@vlastachu ну вот кто-нибудь захочет свой сиди эджектор на расте скриптовать этим скриптом на хаскеле, и ему придется с хаскельным тулингом трахаться
A64m
@anarchostatist ну так я же отдельно обговорил, что рантайм у скрипта будет просто его все равно на чем писать
A64m
и непонятно, какие доводы против того чтоб писать все кроме рантайма на высокоуровневом языке?