@haskellru

Страница 1487 из 1551
Alexander
26.09.2018
07:40:44
класть структурированные данные в namespace странно

вообще namespace и environment по функциональности пересекаются там

Google
Pineapple
26.09.2018
07:41:34
Там очень просты данные. Типа какая подсистема

Alexander
26.09.2018
07:41:38
в общем-то это tagged dsl

в namespace - да подсистемы

ещё мне нужно теги, типа user, workbook, session, transactionid

Александр
26.09.2018
07:42:29
Да, мне вот интересно насколько это применимо к другим рантаймам (более конкретно, JVM)
Для Clojure, думаю, проблем не будет, она динамическая. Для других языков можно, в принципе, хранить текст на исходном языке, а потом, наверное, его компилировать перед запуском. Или даже хранить байт-код

Alexander
26.09.2018
07:42:31
чтобы можно было искать по логам в разных программах и разные срезы

Anton
26.09.2018
07:42:55
Для llvm бекендов нет проблем с байткодом

Хаскелль через ghc api тоже можно в байткод прогнать

Alexander
26.09.2018
07:43:24
> lua /me triggered
нужен простой (для случайного программиста) встраиваемый, интерпретируемый язык, с возможностью динамического обновления

Anton
26.09.2018
07:43:31
Меня всегда останавливало, что непонятно какие вообще там оптимизации остаются

Alexander
26.09.2018
07:43:36
для записи не очень больших скриптов

есть что получше?

Google
Anton
26.09.2018
07:43:51
есть ещё angel script, он поприятнее

Alexander
26.09.2018
07:43:59
для людей которые знают питон и си

Anton
26.09.2018
07:44:08
есть наноси

Anton
26.09.2018
07:44:33
с песочницей, чтобы сегфолты не делали

Александр
26.09.2018
07:45:05
Anton
26.09.2018
07:45:31
мапа static pointer на функции, как я понял

Alexander
26.09.2018
07:46:01
да просто мапа функций

идеально чтобы язык поддерживал call with CC

Anton
26.09.2018
07:46:28
это накладывает ограничение, что на всём кластере должен быть один бинарь?

Alexander
26.09.2018
07:46:40
т.е. чтобы я мог вызвать внешний код и он бы вернул продолжение

на самом деле нет

старое решение без static pointer - не накладывает

Anton
26.09.2018
07:47:15
там строки были?

Alexander
26.09.2018
07:47:15
но безопаснее с одним

да

сейчас там кстати выбор можно строка, можно поинтер

Anton
26.09.2018
07:48:08
Мне это сильно напоминает soap или просто сервант уже

Alexander
26.09.2018
07:48:32
ну когда это делали выбора не было

Google
Alexander
26.09.2018
07:48:45
но смысл в том, что так можно хранить и сериализовать вещи

в любом языке

free monad тоже можно заделать, но в других языках как-то tagless подход выглядит проще

а для сериализации переводить tagless в tagged

@VividDesires с другой стороны я не думаю, что я когда-нибудь вернусь к тому проекту

:/

Anton
26.09.2018
07:52:09
А ведь хаскелл идеально подходит для скриптования, так как есть проверка на чистоту

Но адекватных средств интеграции так и нет

Alexander
26.09.2018
07:52:50
меня искренне бесит какй интерфейс там заделали

там интерфейс для стейтмашинок, и их внутренность и переходы торчат наружу

Anton
26.09.2018
07:53:57
А как по-другому? Компилить скрипт в стейтмашинки?

Alexander
26.09.2018
07:54:31
да

Anton
26.09.2018
07:56:51
увы, пока даже не представляю как такой скрипт бы выглядел

Alexander
26.09.2018
07:57:12
как обычная программа на Haskell

Александр
26.09.2018
07:57:26
Я делал доклад на fprog spb. Там был язык для стейт-машин в виде скриптов

(По факту)

Alexander
26.09.2018
07:57:41
там было так же плохо как у нас

(или хуже)

Anton
26.09.2018
07:57:45
Есть ссылочка?

Alexander
26.09.2018
07:57:50
(или лучше)

Google
Alexander
26.09.2018
07:57:54
но не принципиально

я после этого думал сделать доклад про то, как у нас сделано

Александр
26.09.2018
07:58:33
Сделай

Есть ссылочка?
Есть: https://www.youtube.com/watch?v=DhG00dyAN9g Код здесь: https://github.com/graninas/transition-graph/blob/d29535f72eda7f1e54c6083fe809ce2ab814b72c/test/TransitionGraphSpec.hs#L28 Но конкретно у этой штуки очень узкая специализация.

Если бы я хотел составлять eDSL для стейт-машины, я бы по-другому сделал.

Alexander
26.09.2018
08:06:44
наш DSL сейчас IP другой фирмы, к сожалению

Anton
26.09.2018
08:08:51
Минусы аутсорса :c

A64m
26.09.2018
08:37:14
слайд из презентации СПЖ по состоянию гхц ————————————— GHC 8.8 линейные типы изменения в ллвм бекенде мутабельные объекты ————————————— ну да, нуда

Admin
ERROR: S client not available

A64m
26.09.2018
08:38:27
видимо хотят какую-то еще фичу раскрутить чтоб ждали следующие пять лет в каждой версии "потому что сказали же, что будет", а то рекорды после того как пять раз обманули уже не ждут

> A PhD candidate asked me yesterday, innocently "so when we have conferences, it is to present & talk about the work we are researching. I don't understand...what is it that they talk about at developer conferences?" про то, как типы не натягиваются на кровь адама и ноосферу

Iva
26.09.2018
09:04:45
Вещи о которых девы разговаривают, в прочем то понятны и концептуально нового вклада в науку теоретическую не несут. При всём, это не отменяет их полезности

Есть: https://www.youtube.com/watch?v=DhG00dyAN9g Код здесь: https://github.com/graninas/transition-graph/blob/d29535f72eda7f1e54c6083fe809ce2ab814b72c/test/TransitionGraphSpec.hs#L28 Но конкретно у этой штуки очень узкая специализация.

Вот был бы ты раньшн

Александр
26.09.2018
09:10:28
Я был раньше :(

alexknvl
26.09.2018
10:02:34
Я был раньше :(
33 минуты, Exists какой-то очень стрёмный. data Exists f where Exists :: f a -> Exists f mkExists :: forall f a. f a -> Exists f mkExists = Exists runExists :: forall f r. (forall a. f a -> r) -> (Exists f -> r) runExists f (Exists x) = f x

kana
26.09.2018
10:05:55
foreign import data Exists :: (Type -> Type) -> Type mkExists :: forall f a. f a -> Exists f mkExists = unsafeCoerce runExists :: forall f r. (forall a. f a -> r) -> Exists f -> r runExists = unsafeCoerce вот такой еще можно

alexknvl
26.09.2018
10:06:55
а зачем unsafeCoerce?

Pineapple
26.09.2018
10:07:50
Тут нельзя unsafeCoerce

Google
kana
26.09.2018
10:07:55
там по моему была пурса

alexknvl
26.09.2018
10:08:07
а в пурсе зачем?

kana
26.09.2018
10:08:09
в пурсе не описать data Exist выше

только unsafe

alexknvl
26.09.2018
10:08:23
там нет GADTs?

kana
26.09.2018
10:09:06
нет

alexknvl
26.09.2018
10:11:00
TIL

data Exists f = Exists (forall z. (forall r. f r -> z) -> z) mkExists :: forall f a. f a -> Exists f mkExists x = Exists (\f -> f x) runExists :: forall f r. (forall a. f a -> r) -> (Exists f -> r) runExists f (Exists x) = x f так работает

Terminator
26.09.2018
11:56:30
@emilmirza будет жить. Поприветствуем!

Emil
26.09.2018
12:01:26
@emilmirza будет жить. Поприветствуем!
Я даже почти испугался. Привет всем

Andrew
26.09.2018
12:02:20
Хай!

kana
26.09.2018
12:10:55
Ты как-то смержил тип на хаскеле и функции с пурсы

Александр
26.09.2018
12:16:28
Не копипаста
https://github.com/graninas/transition-graph/blob/d1d5126bfc475e8e2b795f12140258ff726e1f00/src/Data/Exists.hs https://github.com/purescript/purescript-exists/blob/master/src/Data/Exists.purs Найди десять отличий.

Pineapple
26.09.2018
12:17:58
Но ведь unsafeCoerce там небезопасен

Александр
26.09.2018
12:18:51
Обсуждайте, если хотите, но я на этом остановлюсь

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