
Vasily
09.10.2017
14:49:12
Если внимательно посмотреть на ProvidedTypes.fs, то там квотейшны, да

Nikolay
09.10.2017
14:49:30
Я в квотейшенах не очень

Friedrich
09.10.2017
14:49:34
Но никто не знает, какую функцию они там выполняют!

Nikolay
09.10.2017
14:49:43
Ими можно генерировать реальные типы?

Google

Friedrich
09.10.2017
14:49:56
Нет, это же всего лишь квотейшены.

Nikolay
09.10.2017
14:50:10
Ну точнее типы, которые были бы видны автодополнением

Friedrich
09.10.2017
14:50:37
Ок, чёрт его знает. Кажется, да?

Evgeniy
09.10.2017
14:50:49
Квотейшены не про типы.

Friedrich
09.10.2017
14:50:55
Ну, все эти SQL- и XML-провайдеры же Erased, но они умеют генерировать типы.
Псевдотипы.

Nikolay
09.10.2017
14:51:12
Грубо говоря, можем ли мы сделать имитацию string interpolation на квотейшинах?
Ааа, взрыв мозга

Friedrich
09.10.2017
14:51:44
Ок, я не знаю, как ответить на этот вопрос. Самому интересно.

Nikolay
09.10.2017
14:52:00
Можно в слаке задать вопрос

Vasily
09.10.2017
14:53:50
Кстати, коллеги. А Рослин под net core работает?

Friedrich
09.10.2017
14:53:52
Там никто тоже ничо не знает ?

Google

Evgeniy
09.10.2017
14:54:06

Nikolay
09.10.2017
14:54:12
Как работает автодополнение в Erased провайдерах

Vasily
09.10.2017
14:54:22

Evgeniy
09.10.2017
14:56:26

Nikolay
09.10.2017
14:56:56

Vasily
09.10.2017
14:57:23
В erased скорее всего тоже генерится сборка
Но на компиляции типы убиваются
Надо смотреть на obj папку по идее

Nikolay
09.10.2017
14:58:14

Evgeniy
09.10.2017
14:58:37

Nikolay
09.10.2017
14:58:40
Чтобы проклятому C# не досталось? :)
Окей
А почему тогда Erased работают под кором, а Generative - нет?

Evgeniy
09.10.2017
14:59:07
Какие-нибудь бесконечные типы.

Nikolay
09.10.2017
14:59:31
Я так и не услышал ответа :)

Evgeniy
09.10.2017
14:59:33
Никакой IL для типов на самом деле в итоге не генерируется.

Nikolay
09.10.2017
14:59:47
Как работает автодополнение в Erased провайдерах

Evgeniy
09.10.2017
14:59:57

Google

Evgeniy
09.10.2017
15:00:01
Здесь никто не знает.

Friedrich
09.10.2017
15:00:06

Nikolay
09.10.2017
15:00:12
Бесполезные

Evgeniy
09.10.2017
15:00:14
Я ничего не знаю.

Friedrich
09.10.2017
15:00:18
В смысле, да, IL не генерируется, но и сборка тоже не генерируется.

Evgeniy
09.10.2017
15:00:31
Мне неинтересно.

Friedrich
09.10.2017
15:00:42
Потому что, чтоб передать сборку компилятору, у нас только один способ: сформировать массив байтиков.
Очевидно, что в Erased этого не делается.

Vasily
09.10.2017
15:01:49

Friedrich
09.10.2017
15:02:14

Vasily
09.10.2017
15:02:22
Можно генерить исходник
И подсовывать его компилятору

Nikolay
09.10.2017
15:02:42
Кто-то говорил, что это работает через Emit, и я бы придерживался этой версии
Но мне интересно, как тогда работает автодополнение

Friedrich
09.10.2017
15:02:59
Давайте сэмплы посмотрим: https://github.com/fsprojects/FSharp.TypeProviders.SDK/blob/master/examples/ErasedWithConstructor.fsx

Nikolay
09.10.2017
15:03:14
Вы смотрите, а я домой пошёл :)

Vasily
09.10.2017
15:03:24

Friedrich
09.10.2017
15:04:54
Ок, я сдаюсь, я ничего там не понял.

Google

Vasily
09.10.2017
15:09:20
А там оч прикольно
Особенно тут : https://github.com/fsprojects/FSharp.TypeProviders.SDK/blob/master/src/ProvidedTypesContext.fs
интересный там трюк
По факту замена типов из одной сборки типами из другой
На компиляции
Условно, метаданные над метаданными
https://github.com/fsprojects/FSharp.TypeProviders.SDK/blob/master/src/ProvidedTypesContext.fs#L149
И вот это интересно : https://github.com/fsprojects/FSharp.TypeProviders.SDK/blob/master/src/ProvidedTypesContext.fs#L252
https://github.com/fsprojects/FSharp.TypeProviders.SDK/blob/master/src/ProvidedTypesContext.fs#L326-L330
Походу, там делается design-time сборка
Через которую идет intellisense
код в целом понятный, но нужно время, чтобы его изучить

Roman
09.10.2017
16:55:58

Friedrich
09.10.2017
16:56:37

Roman
09.10.2017
16:58:46
Ну, нужна будет помощь - пишите. Проще в личку :)

Friedrich
09.10.2017
17:01:31
Ага, спасибо :)

Anna
09.10.2017
17:11:09
Господа. Раз уж я собралась замахнуться на перевод, у меня тут возник несколько глупый вопрос. По-английски я худо-бедно понимаю, но по-русски ничего не читала почти по F#. Я не знаю, какие есть устоявшиеся русские термины для разных понятий и фич (ну тот же Value Restriction я не знаю, как по-русски называют). Я могу попробовать сама это всё придумать, но тогда у тех, кто будет потом читать, вернее всего кровь пойдёт из глаз, а мне будет очень стыдно. Где всё это добро посмотреть? Может, есть хорошие переводы книг на русский (про глоссарий я чот боюсь спрашивать)?

Nikolay
09.10.2017
17:12:31

Anna
09.10.2017
17:12:38
я тогда вам надоем :)

Nikolay
09.10.2017
17:12:57
И вообще, я предлагал создать "справочник", но чёт не как-то не заладилось

Google

Anna
09.10.2017
17:13:12
видимо, придётся мне заняться в процессе

Nikolay
09.10.2017
17:13:36

Evgeniy
09.10.2017
17:17:12
Но, например, value restriction там нет.
Я предлагаю все спорные термины пока не переводить, мы в процессе ревью обсудим и выберем годный вариант.

Anna
09.10.2017
17:18:05
есть подозрение, что для этого термина нет русского аналога

Evgeniy
09.10.2017
17:19:12
Вики предлагает самое простое "ограничение на значения".
Можно на этой странице найти по "value restriction".
https://ru.wikipedia.org/wiki/Параметрический_полиморфизм
В качестве оффтопа, примерно от этих же авторов есть статья про модули в ML.
https://ru.wikipedia.org/wiki/Язык_модулей_ML
Мне очень нравятся обе статьи.

Anna
09.10.2017
17:23:02
Отлично, спасибо!
первая ссылка у меня прямо аж открыта во вкладках, вот я невнимательная

Friedrich
09.10.2017
17:43:29
@Dolfik о, Кевин заинтересовался нашими идеями :)

Nikolay
09.10.2017
17:44:11
Опа, круто :)

Friedrich
09.10.2017
17:45:08
Ну, теперь точно надо будет допиливать прототип до рабочего состояния.
Я, пожалуй, пойду спать, а завтра продолжим.


Roman
09.10.2017
17:52:26
Господа. Раз уж я собралась замахнуться на перевод, у меня тут возник несколько глупый вопрос. По-английски я худо-бедно понимаю, но по-русски ничего не читала почти по F#. Я не знаю, какие есть устоявшиеся русские термины для разных понятий и фич (ну тот же Value Restriction я не знаю, как по-русски называют). Я могу попробовать сама это всё придумать, но тогда у тех, кто будет потом читать, вернее всего кровь пойдёт из глаз, а мне будет очень стыдно. Где всё это добро посмотреть? Может, есть хорошие переводы книг на русский (про глоссарий я чот боюсь спрашивать)?
имхо, понятия вроде Value Reflection лучше вообще оставлять на английском, потому что любой перевод лично меня конфьюзит - такими понятиями обычно оперировуешь на английском, а потом читаешь перевод статьи и думаешь "че за отражение? О чем речь вообще?"
Кстати, я, наверное, тоже могу попробовать че-нить перевести, только не знаю, че актуально и наиболее востребовано