
Abbath
05.10.2018
13:13:05

Maxim
05.10.2018
13:13:20
qtah
не свежий, давно уже вроде

Yuriy
05.10.2018
13:15:51
qtah отлично работает, только сырой

Google

Yuriy
05.10.2018
13:16:33
QCoreApplication.exec надо прерывать соответствующими ему способами. qApp->exit или как там его

Abbath
05.10.2018
13:17:28

Alexander
05.10.2018
13:17:49

Maxim
05.10.2018
13:17:51
ну это последняя версия

Alexander
05.10.2018
13:17:59
я просто не знаю, что там есть, чего нету

Maxim
05.10.2018
13:18:15
ну там есть
но надо думать как прокинуть все куда надо...

Yuriy
05.10.2018
13:19:15
причём QCoreApplication.exit можно вызывать из любой нити, если я правильно помню. но лучше доку проверить

Alexander
05.10.2018
13:19:58
было бы странно если не из любой
т.к. у тебя после runUI нету контроля

Maxim
05.10.2018
13:21:15
ну предполагается, что ты вызовешь его в главном треде по клику кнопки, например

Yuriy
05.10.2018
13:22:56

Alexander
05.10.2018
13:23:20
ну кроме как из других ты не можешь вызвать ниоткуда .exit()

Google

Yuriy
05.10.2018
13:23:35

Alexander
05.10.2018
13:23:45
+

Yuriy
05.10.2018
13:24:19

Alexander
05.10.2018
13:24:34
ок, принято

Yuriy
05.10.2018
13:30:07
нефиг гадать, надо почитать доки. а в них не сказано, что thread-safe, значит, лучше не вызывать exit напрямую. более того, сказано, что лучше вызывать exit как слот по сигналу через QueuedConnection, таким образом гарантируется передача управления в нужную нить и корректное завешение других сигналов

Maxim
05.10.2018
13:30:41
ну вот этого я вряд ли могу добиться
(доки читал)

Yuriy
05.10.2018
13:31:23

Maxim
05.10.2018
13:31:45
в части queued connection

Yuriy
05.10.2018
13:33:05

Maxim
05.10.2018
13:33:22
ну так чтобы сделать connection, нужен сигнал

Yuriy
05.10.2018
13:33:22
не можешь вызвать connect?

Maxim
05.10.2018
13:33:30
а мне надо по эксепшену убить, а не по сигналу

Yuriy
05.10.2018
13:33:45
ну, есть хак без сигнала
QMetaObject::invokeMethod(app, "quit", Qt::QueuedConnection);

Maxim
05.10.2018
13:34:42
осталось посмотреть, есть ли QMO в кутахе :)

Yuriy
05.10.2018
13:35:16
и добавить, если нет

Alexander
05.10.2018
13:35:26

Maxim
05.10.2018
13:35:43

Google

Maxim
05.10.2018
13:35:51
(я в сентябре туда еще один пр пропихнул)

Alexander
05.10.2018
13:36:33
т.е. делаешь тред с exception handler и в finally прибиваешь тред
например:
lock <- newEmptyMVar ()
race (runUI) (takeMVar lock `finally` sendSignal)

Abbath
05.10.2018
13:41:50
@qnikst есть где норм гайд по new командам кабала?

Alexander
05.10.2018
13:43:12
на read-the-docs
https://cabal.readthedocs.io/en/latest/

Abbath
05.10.2018
13:43:54
Спасибо

A64m
05.10.2018
13:58:18
а на официальной кабальной странице до сих пор 2.0
у гхц наоборот, на официальной странице новый мануал а на рид зе докс тухлый
ну, это все же получше, чем у кабала
> Hi Oliver, unfortunately your form was misinterpreted and your talk was not recorded. We're very sorry about this, and are changing our procedures to avoid this happening in the future.
некоторые выступления были по недоразумению записаны, процедура будет изменена, все будет как в 2013

Denis
05.10.2018
14:25:42
https://haskell-code-explorer.mfix.io/
https://github.com/alexwl/haskell-code-explorer

A64m
05.10.2018
14:26:39
вчера еще тут ссылку оставлял

Pineapple
05.10.2018
14:26:55
А можно внутри *.cabal определиь собирается ли пакет GHC или GHCJS?
Можно if impl(ghcjs)

Denis
05.10.2018
14:30:59

A64m
05.10.2018
14:31:37
его же небось надо для этого билдить весь, так что не получится, я думаю
там ghc-апи используется вроде

Andrei
05.10.2018
14:32:19
да, надо билдить
видимо, только рядом с самим hackage

Google

Denis
05.10.2018
14:42:50
не могу понять как хоть локально для какого-то пакета запустить это

Andrei
05.10.2018
14:47:56
https://github.com/alexwl/haskell-code-explorer#indexing-source-code-of-a-cabal-package

Vasiliy
05.10.2018
14:52:26
а кто-нибудь знает, как вообще делаются вещи типа экселя?
ну т.е. как я себе это представляю: есть граф, который нужно разрешить, начиная от листьев. вершины графа это ячейки таблицы. реактивность не нужна, тк разрешить его нужно лишь единожды (данные графа никогда не меняются). т.е. "при разрешении" очередной ячейки нужен доступ ко всем уже разрешенным ячейкам. тут нужен какой-то хистоморфизм?
мб есть какое-то общеизвестное сокровенное знание, с которым нужно познакомиться и все станет понятно? я думаю решение это проблемы должно быть довольно широкоизвестным, задача такая изученная и распространенная

Denis
05.10.2018
14:53:30
вот что на место этого PATH?
haskell-code-indexer --package PATH --dist (stack path --dist-dir)

A64m
05.10.2018
14:56:53
вообще-то в экселе адреса ячеек вычисляемые

Vasiliy
05.10.2018
14:57:32
да, поэтому это не совсем эксель
дело в том, что таблица строится в настоящем экселе и с некоторой надстройкой, а мне нужно лишь отобразить результат, "разрешив" ячейки. в процессе резолва ячеек могут выполняться побочные эффекты в виде запросов ко внешним источникам данных

Kirill
05.10.2018
14:58:01

Denis
05.10.2018
14:58:22

Kirill
05.10.2018
14:58:39
локально
ему нужна папка dist как минимум к тому же
и оно ещё с кабалом выше 2.0 не дружит пока

Alexander
05.10.2018
15:00:09
там dependency solver описан

Vasiliy
05.10.2018
15:00:26
спасибо
нашел еще https://www.youtube.com/watch?v=BQVT6wiwCxM
попробую врубиться

Alexander
05.10.2018
15:03:39
есть статья PDF
там алгоритм подробно описан

Vasiliy
05.10.2018
15:05:33
ага, нашел, читаю

Denis
05.10.2018
15:05:34
https://www.microsoft.com/en-us/research/uploads/prod/2018/03/build-systems.pdf

Google

Alexander
05.10.2018
15:09:40
но это действительно нужно только для INDIRECT
без него key value ячеек с зависимостями да и пробежаться по нему
ну или другое представление графа и просто пройтись по нему

Vasiliy
05.10.2018
15:33:52
да, у меня ячейка может зависеть от ячейки, которая зависит от другой ячейки, которая зависит еще от N ячеек, и причем разрешать такой граф нужно в определенной последовательности, вероятно, решая сначала "алгебраические" ячейки (которые не зависят от внешних источников данных) итп. единственное, что облегчает задачу это отстутствие реактивности, но и это условие потом уберется, вроде как. возможно, мне стоит задуматься сейчас и об этом

Alexander
05.10.2018
15:37:08
да, не, просто идёшь и собираешь все
максимум на циклы проверяешь

Denis
05.10.2018
15:37:18
да, у меня ячейка может зависеть от ячейки, которая зависит от другой ячейки, которая зависит еще от N ячеек, и причем разрешать такой граф нужно в определенной последовательности, вероятно, решая сначала "алгебраические" ячейки (которые не зависят от внешних источников данных) итп. единственное, что облегчает задачу это отстутствие реактивности, но и это условие потом уберется, вроде как. возможно, мне стоит задуматься сейчас и об этом
так это обычное выражение, где есть связанные и свободные переменные

Alexander
05.10.2018
15:37:18
проблема в INDIRECT
это когда ты зависишь от ячейки являющейся результатом вычисления

Vasiliy
05.10.2018
15:37:44
да, у меня такое

Alexander
05.10.2018
15:37:47
там может возникать цикл или нестабильность
это единственная проблемная команда в excel
т.е. 5+INDIRECT(A3 & B5) например

Vasiliy
05.10.2018
15:38:41
а, блин, я не понял сначала

Alexander
05.10.2018
15:38:46
@PineappleZombie у нас с ней намучался
без этого все просто идёшь по графу и собираешь записимости

Denis
05.10.2018
15:39:57
@qnikst насколько я помню у Стефана Диля был проект похожий на excel, там тоже ячейки были

Vasiliy
05.10.2018
15:40:20
мне бы пример какой) я так понял что читать build systems la carte уже не актуально? там что-то более сложное описывается?

Alexander
05.10.2018
15:40:56
был
ну у нас 2/3 excel есть но это closed source

Александр
05.10.2018
15:41:18
...Тем временем Free-монады идут в блокчейн:
https://medium.com/@ENQBlockchain/why-haskell-eacb087f3adb

Alexander
05.10.2018
15:41:22
более сложное