@haskellru

Страница 1508 из 1551
Alexander
10.10.2018
09:20:41
например CanThrow 'Bla

Dmitry
10.10.2018
09:20:58
@chshersh, тут @VividDesires спрашивает про servant-generic, можешь про опыт рассказать
Опыт очень приятный ? По сути, мы разбиваем API по иерархии на большие части, а затем каждую часть уточняем. У нас при этом еще иерархия модулей копирует иерархию API. Да, nested endpoints через вложенные типы данных.

сваггер вроде работает, но надо проверить
Работает без проблем, мы используем swagger

Google
Alexander
10.10.2018
09:22:30
а сервант умеет в рамл?

Alexander
10.10.2018
09:24:05
типы внутри эндпойнтов не влияют
т.е. я могу любое MyFoo :> "bart" :> MYVerb La кодировать?

Anton
10.10.2018
09:24:14
да

Alexander
10.10.2018
09:24:21
а норм тогда

а сервант умеет в рамл?
сервант расширяемый

при этом пользовательском уровне, в этом фишка

Anton
10.10.2018
09:24:57
servant-generic отвечает только за преобразование servant types <=> структура

Alexander
10.10.2018
09:27:07
а понял, как оно работает

Leonid
10.10.2018
09:27:22
сколько нужно времени и памяти для servant-generic?

Alexander
10.10.2018
10:19:51
https://ghc.haskell.org/trac/ghc/wiki/Performance/Tests

CC @A64m_qb0 никто не хочет поконтрибьютить с предложениями?

хотя не там просто хотят формат текущей поменять

т.е. останется бестолковым

Google
A64m
10.10.2018
10:24:59
они хотят, чтоб изменения ничего не значащих измерений было проще анализировать

Alexander
10.10.2018
10:26:36
да

чего-то сегодня бекендсикрета мало

: (

Александр
10.10.2018
10:48:22
В ООП-языках ОО-интерфейсы тоже для всех одни, только у кого-то получается правильно и понятно, а у кого-то - мессиво.

kana
10.10.2018
10:49:23
Так тут дело не в выборе фри/фт

Сигнатуры команд одни и те же будут

Ты сначала дизайнишь дсл, а потом пишешь команды во фри или в тайпкласс

Александр
10.10.2018
10:50:19
Меня в чате вообще понимают? Я выше написал, что синтаксис я и так знаю. Я хочу на практику применения посмотреть.

kana
10.10.2018
10:51:15
То есть тебя интересует не мощность ФТ, а разница в скиле людей дизайнить дсл, которые используют ФТ и людей, кто использует ФМ?

Александр
10.10.2018
10:51:26
И на конкретный вопрос получить из кода ответ: как производится разделение на интерфейсную часть и на то, что должно быть скрыто в имплементации (в рантайме)

Скилл людей мне все равно какой. Хоть анонимно, хоть как

kana
10.10.2018
10:52:11
Тогда мне не понятно, что ты спрашиваешь, потому что ответ: так же, как и в фри

Alexander
10.10.2018
10:52:16
я просто не знаю какой показательный кусок я могу показать

который поместится в разумные рамки

kana
10.10.2018
10:52:48
Мб проще было бы, если бы ты дал пример на фри и попросил сделать то же самое на фт Потому что у вопроса две части: синтаксис и дизайн дсл. Синтаксис ты знаешь, дизайн дсл тебя не волнует, так в чем вопрос

Alexander
10.10.2018
10:52:51
тем более, что как верно сказал kama "Те же самые, что для функтора фри монады"

kana
10.10.2018
10:54:35
О, я как к компу доберусь, попробую, если там немного

Google
Александр
10.10.2018
10:55:07
Не знаю, у меня - не сильно много кода

Alexander
10.10.2018
10:55:11
я не очень понимаю этой задачи, если честно, реализовать stm на уровне библиотеки не используя входящие в язык примитивы?

Александр
10.10.2018
10:55:20
Конечно

Пусть даже получится тормознутая STM

Alexander
10.10.2018
10:55:29
что можно использовать?

Александр
10.10.2018
10:55:43
MVar можно

Alexander
10.10.2018
10:55:48
должна ли быть конкрурентность нативной?

IORef можно?

Александр
10.10.2018
10:55:53
IORef, если хочется

Да все, кроме оригинального STM

Oleg
10.10.2018
10:56:26
Я просил сделать STM на FT уже. @odomontois , как там с этим дело, кстати?
Я как обычно забил и вместо этого занимался чем-то интересным

Александр
10.10.2018
10:56:27
Потому что иначе задача становится крайне тривиальной

Alexander
10.10.2018
10:56:32
т.е. ты в своём решении не poor man concurrency делал?

Oleg
10.10.2018
10:56:39
Навроде спорить про ЯП в жерке

Александр
10.10.2018
10:57:01
т.е. ты в своём решении не poor man concurrency делал?
Нет, там совсем даже не poor man concurrency

Alexander
10.10.2018
10:57:30
хорошо

так, ещё вопрос, а зачем там нужно FT решение?

т.е. какие возможности обобщения и дополнительных реализаций предполагаются?

Александр
10.10.2018
10:59:48
так, ещё вопрос, а зачем там нужно FT решение?
Ну, я думаю, будет полезно для общего развития. Сравнивать оба подхода на одной задаче

т.е. какие возможности обобщения и дополнительных реализаций предполагаются?
Не очень понял вопрос. Обобщение, по сути, не требуется. Минимум - работа с TVar, retry.

Google
Alexander
10.10.2018
11:00:52
я не знаю зачем решать такую задачу, а почему не иметь простую newtype STM = SMT (ST RealWorld a) data TVar readTVar writeTVar

для этого не нужно ни FT ни Free

Александр
10.10.2018
11:01:25
Интересный вариант

Но про retry я не представляю, что тут должно быть

Alexander
10.10.2018
11:01:47
эти ребята нужны если ты хочешь обобщать и иметь различные имплементации исполнителя

это то, как реализовано STM в RTS

т.е. фишка обощения в том, что ты можешь использовать не STM а Foo

или подменить интерпретатор твоего языка

например он отладку начнет писать автоматом

или поменяет правила разрешения конфликтов

Александр
10.10.2018
11:03:11
эти ребята нужны если ты хочешь обобщать и иметь различные имплементации исполнителя
Не только. Скажем, мой подход позволяет написать минимальную STM там, где нет нативно подерживаемой, и при этом рантайм будет совсем маленьким. Да, тормознутей в 6 раз, но в том же C++ вообще с STM плохо

Обобщение - это только часть задач FT / Free

Alexander
10.10.2018
11:03:48
я не вижу зачем для этого нужно обобщение

Александр
10.10.2018
11:04:13
Борьба со сложностью ПО - еще одна часть задач. Иной подход к имплементации (не интерфейсу) - третья

Oleg
10.10.2018
11:04:23
И делать часть промежуточных действий Unwrapped

Александр
10.10.2018
11:04:38
я думал про разные режимы транзакций
В моей библиотеке можно даже разные рантаймы для больших моделей и маленьких

Alexander
10.10.2018
11:04:40
твой интерфейс это твой модуль

Александр
10.10.2018
11:05:06
твой интерфейс это твой модуль
Мой интерфейс - это далеко не всегда модуль, и утверждать такое - значит, отбрасывать другие способы дизайна

Alexander
10.10.2018
11:05:32
я не согласен с этим утверждением

Google
Александр
10.10.2018
11:05:40
Вариантов создания функциональных интерфейсов довольно много на текущий момент. FT, Free, ReaderT паттерн

Alexander
10.10.2018
11:05:47
т.к. какой бы способ дизайна ты не предложил он укладывается

Александр
10.10.2018
11:05:50
И еще есть ряд

Alexander
10.10.2018
11:07:04
вышепредложенные укладываются

Александр
10.10.2018
11:07:11
Оно, может, и укладывается, но это нифига не единственно возможная практика.

Alexander
10.10.2018
11:07:16
возможно неукладывающиеся скрываются в "и другие"№

Александр
10.10.2018
11:07:17
Я ж говорю, покажи мне свои интерфейсы

Kirill
10.10.2018
11:07:19
@graninas а чем http://hackage.haskell.org/package/concurrency-1.6.1.0/docs/Control-Monad-STM-Class.html не FT?

при том, что тут вот как раз реальная есть задача и применение

в рамках dejafu как минимум

Александр
10.10.2018
11:08:24
@graninas а чем http://hackage.haskell.org/package/concurrency-1.6.1.0/docs/Control-Monad-STM-Class.html не FT?
Оно, может, и FT, но использует нативную имплементацию, так? Не показатель

Alexander
10.10.2018
11:08:25
это FT

Kirill
10.10.2018
11:08:41
не использует

Александр
10.10.2018
11:08:55
не использует
Как тогда оно работает?

Alexander
10.10.2018
11:09:11
смысл FT и Free в том, что интерпретатор можно менять

они ничего не говорят про интепретатор и его реализацию

Kirill
10.10.2018
11:09:28
дак тут и есть это

хочешь нативный stm - есть на нём

а в тестах - своя имплементация

Александр
10.10.2018
11:10:37
смысл FT и Free в том, что интерпретатор можно менять
Смысл совсем в другом. Что можно абстрагировать и убирать сложность. Эффективно разделять на интерфейс и имплементацию. Менять или не менять интерпретатор - дело десятое. У меня может быть только 1 потенциальный интерпретатор, но если мне нужно разделить мой код на интерфейс и имплементацию, я все равно буду это использовать

Kirill
10.10.2018
11:10:43
http://hackage.haskell.org/package/dejafu-1.11.0.3/docs/Test-DejaFu-Conc-Internal-STM.html

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