
Nikolay
29.05.2017
11:04:08
Они вроде отказались от рефлексии и quotations в тайп провайдерах
re-architect the fundamental F# compiler API used by type providers to no longer use any F# quotations or any extensible reflection (inheriting from Type/MethodInfo/FieldInfo/... types). While this would be architecturally cleaner and more independent in many ways, it is also a big undertaking, and would require significant corresponding changes to the ProvidedTypes programming model for authoring type providers. This model uses extensible reflection in many places, e.g. here and here

Roman
29.05.2017
11:04:47

Evgeniy
29.05.2017
11:11:46
@Dolfik Кто отказался?

Google

Nikolay
29.05.2017
11:12:33
https://github.com/Microsoft/visualfsharp/issues/1496#issuecomment-244315047

Pawel
29.05.2017
11:13:10

Roman
29.05.2017
11:13:44
Оп, упру эти проблемки в доклад про провайдеры типов ?

Evgeniy
29.05.2017
11:14:07
@Dolfik Это просто обсуждение возможных вариантов.

Nikolay
29.05.2017
11:14:38
Он имеет ввиду мы можем типа либо ждать 2.0, либо перепилить без использования этой дичи

Evgeniy
29.05.2017
11:15:09
Да.

Nikolay
29.05.2017
11:15:27
Но с другой стороны, типа получится круче и чище :)

Evgeniy
29.05.2017
11:15:45
Или не получится. Для этого нужны руки, а их нет. :)

Nikolay
29.05.2017
11:16:14
Вон @neftedollar предлагал вчера тайп провайдеры под кор портировать)

Vasily
29.05.2017
11:20:15
Код интересный. fparsec, вот это вот все...

Roman
29.05.2017
11:21:51

Google

Roman
29.05.2017
11:22:46

Nikolay
29.05.2017
11:23:30

Vasily
29.05.2017
11:24:38

Roman
29.05.2017
11:25:24
Принял, тоже поюзаю, спасибо
Еще выше писали про BSONTypeProvider , как мне кажется монго очень хорошая аналитическая бд, если бы можно было по jsonSchema верифицировать BSON, то возможно было бы можно опрашивать монгу, есть мысли на этот счет?

Roman
29.05.2017
11:26:43

Roman
29.05.2017
11:27:46

Vasily
29.05.2017
11:28:38
Хммм... читаю тут код SqlCommandProvider

Roman
29.05.2017
11:28:48
Звучит как интересное демо! Посмотрю

Vasily
29.05.2017
11:28:50
Они очень прикольно валидируют набор параметров
Через хранимку

Roman
29.05.2017
11:32:19

Vasily
29.05.2017
11:32:37
sys.sp_describe_undeclared_parameters
Точнее, эта хранимка дает список недообъявленных, как я понял
А для остального у них TSqlParser

Evgeniy
29.05.2017
11:33:56
@nevoroman Вот бы кто PythonProvider оживил. :)
https://github.com/fsprojects/FSharp.Interop.PythonProvider

Roman
29.05.2017
11:34:11

Vasily
29.05.2017
11:34:11
Оживи, я в питоне ничего не понимаю :)

Roman
29.05.2017
11:36:05
Собственно, я им сейчас и занимаюсь :)

Roman
29.05.2017
11:36:31

Nikolay
29.05.2017
11:36:42
А в соль питон провайдера?

Google

Nikolay
29.05.2017
11:37:01
Я бы за Json провайдер был благодарен)

Roman
29.05.2017
11:37:09

Vasily
29.05.2017
11:37:13
А вот TSqlParser штука интересная.

Roman
29.05.2017
11:37:15
В миллионе питоновских ds либ?
Все то же самое, что и с R провайдером

Roman
29.05.2017
11:37:55

Roman
29.05.2017
11:38:19
Пока что "занимаюсь" заключается в том, что я ковыряю уже имеющееся
На выходных только начал

Roman
29.05.2017
11:38:40

Roman
29.05.2017
11:39:00
Но как займусь развитием - буду коммитить в уже имеющийся репозиторий. Ну или форкну

Vasily
29.05.2017
11:39:06

Nikolay
29.05.2017
11:39:31

Vasily
29.05.2017
11:42:24
Ну пока нет, как я понимаю

Anton
29.05.2017
11:44:00
@nevoroman вот да, интересно было бы наладить мост между монгой и F# через тайп провайдер. Выше я кидал. Оно как-бы близко к монге, но нет коннекшена и т.д.
http://visemet.github.io/FSharp.Data.Bson/library/BsonProvider.html
@neftedollar интересная мысль по поводу js, fable и mongoDB. Стоит задуматься об этом.
А, ну и да. Интересно послушать про то, как эти првайдеры работают, с чем их едят и как написать свой.
@nevoroman Я смотрел твой доклад и такой "Эээ, ок, тайп провайдер это круто, очень круто... Но как оно вообще работает 0_о. Как ему удаётся делать эти типы налету."


Roman
29.05.2017
11:50:30
А, ну и да. Интересно послушать про то, как эти првайдеры работают, с чем их едят и как написать свой.
Ну примерно про это и планируется доклад. А с отдельными провайдерами планирую поковыряться для добавления практичности кейсам, да и вообще более глубокого погружения в проблему.
В том докладе да, так оно и вышло. Потому что объяснять механику работы можно либо быстро и тогда все равно непонятно, либо долго и тогда в тайминг не влезает, плюс грузит. Так что в общеобзорном докладе обошёлся описанием в формате "пуф, и магия!"

Anton
29.05.2017
11:51:58
@nevoroman угу, понимаю, время. Сам недавно в универе на докладе по .net evolution был. Дали всего 10 минут, успел только до 4.5 расказать и в безумно сокращенной форме. =(

Roman
29.05.2017
11:53:26
А тайппровайдеры могут не генририровать типы, а генерировать только ф-ции? Например хочу сделать тайппровайдер из LaTeX формул в исполняемые F# ф-ции, такое возможно?

Google

Anton
29.05.2017
11:54:04
О, а это интересно! Нарисовал формул, и используешь в коде. Удобно!

Roman
29.05.2017
11:56:39

Roman
29.05.2017
11:57:01
Ух. Пока не знаю, но скоро разберусь. Займешься - опенсорсь и зови помогать, полезная штука выйдет.

Roman
29.05.2017
11:57:44

Vasily
29.05.2017
11:58:36

Roman
29.05.2017
11:59:39

Anton
29.05.2017
12:02:00
стоооп, что-то с latex помню @fvnever делал.
там что-то связано с wpf и LaTeX было
Может он что подкинет из своих наработок на эту тему.

Vasily
29.05.2017
12:02:47
Там скорее задача отображения

Evgeniy
29.05.2017
12:04:58
@neftedollar Ты можешь генерировать типы с методами.

Roman
29.05.2017
12:05:45
@nevoroman тут подсказывают ещё про olap кубы. Вернусь к компу посмотрю есть ли уже такие тайппровайдеры

Roman
29.05.2017
12:13:41
Угу, записал

Vasily
29.05.2017
12:14:24
Есть еще извращения типа OdataProvider, но он неюзабелен
Т.к. не поддерживает аутентификацию

Evgeniy
29.05.2017
12:15:04
@neftedollar Внутри методов можно составлять любые выражения с помощью Expr.
Не очень приятная работа.

Roman
29.05.2017
12:15:35

Google

Nikolay
29.05.2017
12:19:12
А тайп провайдеры это магия фшарп компилятора онли?
В сишарпе нет такого?

Vasily
29.05.2017
12:19:50
Нет, в с# нет. Ближайший аналог, по идее - t4
Т.е. кодогенерация

Anton
29.05.2017
12:21:59
@Dolfik с языка стащил :D
А есть тайпПровайдеры в хаскеле и скалле ?

Friedrich
29.05.2017
12:23:35

Evgeniy
29.05.2017
12:24:05
@the_RAMZAY Есть прототипы. Но в скале и хаскеле есть вещи покруче — макросы.

Friedrich
29.05.2017
12:24:09
А, ну и, если кто не видел, wpf-math: https://github.com/ForNeVeR/wpf-math (LaTeX-формулы рендерит в WPF)

Roman
29.05.2017
12:24:32

Anton
29.05.2017
12:24:32
@gsomix круче? Куда уж круче уже? Оно ещё кофе готовить умеет с круасанами ?

Evgeniy
29.05.2017
12:24:45
@fvnever Ты хотел сказать, парсер LaTeX на F#.

Friedrich
29.05.2017
12:24:55

Evgeniy
29.05.2017
12:25:05
@fvnever Предлагаю поправить сообщение. :)

Igor
29.05.2017
12:25:06
А можно как-то использовать переменные окружения при импоритирование библиотек через #r?

Friedrich
29.05.2017
12:25:28

Evgeniy
29.05.2017
12:25:31
@fvnever Или там только тесты?

Friedrich
29.05.2017
12:26:00
Там только прослойка на F#. Алекс ещё в 2010 году был уже Ъ и педалил на F#, когда я ещё в детский сад ходил :)

Anton
29.05.2017
12:26:17
@fvnever кстати, а что по поводу игры? Как оно вообще пишется то ? А то я не малейшего представление - как с этим работать =)

Roman
29.05.2017
12:26:37