@haskellru

Страница 1501 из 1551
Abbath
05.10.2018
13:13:05
QCoreApplication.exec там
Какие-то свежие биндинги?

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
не свежий, давно уже вроде
>Fri Sep 7 вроде свежий

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
было бы странно если не из любой
Qt построен вокруг идеи, что весь GUI работает в главном треде, а для сложной работы запускай воркеров сам

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

Google
Yuriy
05.10.2018
13:23:35
т.к. у тебя после runUI нету контроля
Qt писали одни люди, runUI другие, нельзя быть уверенным, что они друг друга правильно поняли

Alexander
05.10.2018
13:23:45
+

Yuriy
05.10.2018
13:24:19
ну кроме как из других ты не можешь вызвать ниоткуда .exit()
почему же? из хэндлеров внутри exec можно

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
в части queued connection
а в чём проблема?

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);

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)

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

Denis
05.10.2018
14:58:22
Kirill
05.10.2018
14:58:39
локально

ему нужна папка dist как минимум к тому же

и оно ещё с кабалом выше 2.0 не дружит пока

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
да, не, просто идёшь и собираешь все

максимум на циклы проверяешь

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
более сложное

Страница 1501 из 1551