@haskellru

Страница 362 из 1551
Misha
23.08.2017
23:06:47
круто

Alexander
24.08.2017
05:03:49
как выше если множество открыто, если закрыто, то можно и как ты написал

data Request a where R1 :: x1 -> Request x1 R2 :: x2 -> Request x2 foo :: Request x -> x foo (R1 y) = ... foo (R2 y) = ...

если добавить к foo INLINE, или даже Rules то с ненулевым шансом будет статически разрулено, но гарантий нет

Google
Alexander
24.08.2017
07:48:02
https://mobile.twitter.com/InputOutputHK/status/900275171793272834 s/provably/probably/ (trollface.jpg)

Alexander
24.08.2017
08:26:01
я не читал, не знаю, ребята из Serokel говорят, что да

Mikhail Subbotin
24.08.2017
08:26:25
Misha
24.08.2017
08:27:30
Yuriy
24.08.2017
08:33:30
если бы было доказано, написали бы "proved"

а "provable" — это "в теории можно доказать, но мы не смогли"

Yuriy
24.08.2017
08:37:27
шучу. как я понял аннотацию, они доказали, что если построить протокол указанным способом, то можно будет доказать его устойчивость к некоторым видам атак

Alexander
24.08.2017
08:50:25
да

я тоже так понял

Alex
24.08.2017
12:39:33
Check out @cyberglot's Tweet: https://twitter.com/cyberglot/status/900418418167492612?s=09

Alexander
25.08.2017
07:41:51
Google
Alexander
25.08.2017
07:42:17
ну так не в фокусе

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

Donat
25.08.2017
07:44:51
то есть idris это на грани педофилии?

Alexander
25.08.2017
07:45:49
ну язык пока слишком мелкий, может вырастет когда-нибудь

ну не ребёнок конечно уже, но все ещё не хм.. как это сказать, в общем вы поняли

Donat
25.08.2017
07:46:50
ах, теперь ясно о чём

Evgeny
25.08.2017
07:47:13
не в возрасте согласия, штоле?

:)

Donat
25.08.2017
09:01:51
"There is a function which directly answers the initial question, namely, unsafePerformIO . It is however not intended for conveniently getting rid of the IO constructor. It must only be used to wrap IO functions that behave like non-IO functions" что может быть IO like non-IO?

Alexander
25.08.2017
09:06:40
генерация top-level мутабельной переменной

чтение из окружения

Index
25.08.2017
09:08:14
Ой мда

Как раз это весьма questionable практики.

Alexander
25.08.2017
09:09:15
я не говорю, что так делать хорошо

но это единственный способ сделать так, если оно нужно

а бывает нужно

+ чтение из памяти, если доказано, data dependency достаточно

Index
25.08.2017
09:10:54
> behave like non-IO functions Вопрос был так проставлен. Самый простой пример -- какие-нибудь вызовы FFI-методов в библиотеках. Еще классический пример -- мемоизацию добавить через мутабельную структуру.

Или использование рандомности в детерменированных алгоритмах (случайный выбор pivot для quicksort, например)

Alexander
25.08.2017
09:15:59
да, это примеры получше

Google
Alexander
25.08.2017
09:18:03
впрочем для FFI unsafePerformIO не нужно, можно сразу чистую привязку генерировать

если мне память не изменяет

Donat
25.08.2017
09:19:55
обожаю этот чат :3

Alexander
25.08.2017
09:20:59
впрочем unsafePerformIO делает гораздо больше, чем стирает IO

она ещё локи делает чтобы действие было выполнено не более 1 раза

есть unsafeDupablePerformIO без локов, достаточно безопасное, но действие может более одного раза выполнится, если 2 трада решили использовать значение примерно одновременно

а можно просто взять с паттерн-матчнуть по IO, (или inlineIO) но это очень опасная штука

там нету data-dependency и учитывая float-out могут получаться смешные вещи

типа алиасинг все singleton bytestrings

как было когда-то

Yuriy
25.08.2017
09:29:39
а напомните, в какой-то библиотеке был смешной синоним для unsafeInterleaveIO

что-то на тему "адскиОпасноеIO"

Alexander
25.08.2017
09:31:09
bytestring

собственно то, что я описал это оно и есть

Yuriy
25.08.2017
09:35:21
да, accursedUnutterablePerformIO

http://hackage.haskell.org/package/bytestring-0.10.8.2/docs/src/Data.ByteString.Internal.html#line-564

лавкрафтовщина

Denis
25.08.2017
09:56:40
@qnikst Привет. А запись твоего и остальных докладов будет?)

Alexander
25.08.2017
09:57:04
маловероятно, нужно организатором спрашивать

Denis
25.08.2017
09:59:21
ну тогда хоть потом слайдами поделишься?)

Google
Alexander
25.08.2017
10:00:44
да

надо бы их сделать

до конца

от начала

Dmitry
25.08.2017
10:02:31
@qnikst А про что ты будешь рассказывать больше и подробней из того, что я на прошлом митапе в своём выступлении про конкурретное программирование рассказывал? Просто интересно :)

Alexander
25.08.2017
10:02:46
дык followup =)

а то мне тогда пришлось много поговорить, возможно часть было не обязательно

больше про внутренние вещи и паттерны

Index
25.08.2017
10:04:05
впрочем для FFI unsafePerformIO не нужно, можно сразу чистую привязку генерировать
А это более тонкий вопрос. Вот я использую биндинги к GTK, там методы справедливо в IO, потому что это мутабельные сеттеры. Но если я создаю новый объект, то могу проставить ему этими сеттерами значения и получить нечто иммутабельное

Условно иммутабельное, потому что нет freeze, но все равно

Alexander
25.08.2017
10:05:11
вот юзейс выше это примерно как создание глобальной мутабельной переменной по безопасности

Index
25.08.2017
10:05:25
Ну да.

Хотя был бы freeze, было бы нормально.

Leonid
25.08.2017
10:24:35
Есть видос с доклада Чакраварти с креативных использованием unsafePerformIO и reallyUnsafePtrEquality в FFI

https://www.youtube.com/watch?v=H_z4NKvxf1U

Alexander
25.08.2017
10:30:21
блин, его так тяжело слушать

Denis
25.08.2017
10:36:55
а какая в хаскелль либа реализует Communicating sequential processes

Alexander
25.08.2017
10:37:51
была там пачка, щас поищу

Denis
25.08.2017
10:38:52
ну я нашел только chp интрересно вообще этот паттерн еще используется?

Vasiliy
25.08.2017
10:39:34
дык async + tchan

Google
Denis
25.08.2017
10:40:20
ну либа от Марлоу конечно вне конкуренции

Alexander
25.08.2017
10:40:24
там невозможны некоторые паттерны CSP

примитивы т.е.

Leonid
25.08.2017
10:41:25
@qnikst там в описании ссылка на бумагу

Vasiliy
25.08.2017
10:41:48
я csp только в go видел, вроде, ничего необычного там нет

Alexander
25.08.2017
10:42:14
https://github.com/syallop/Join-Language

во какая штука есть

Vasiliy
25.08.2017
10:42:30
закрываемые каналы ограниченного размера в библиотеках для сабжа есть

Denis
25.08.2017
10:42:57
https://github.com/syallop/Join-Language
ну про join pattern я знаю, но мне кажется это немного не про csp

а не) вроде это не про join patterns

Alexander
25.08.2017
10:47:28
да

а вообще зачем тебе CSP?

Denis
25.08.2017
10:55:03
Ну хаскель это тот язык для которого нет ничего невозможного)

Alexander
25.08.2017
10:55:14
а как обзывался крипто метод, который на основе своего приватного ключа и чужого публичного позволял делать общий секрет?

ну ты можешь все примитивы заенкодить в haskell , в общем-то проблем нет

Denis
25.08.2017
10:57:42
Кстати может у кого-то есть книга вроде называется implement modern compiler in ML

Alexander
25.08.2017
11:15:38
allocation area на пару ТБ и падать с OOM?

Denis
25.08.2017
11:18:34
Невозможно выключить GC
сборщик мусора?)

Index
25.08.2017
11:18:57
Да

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