@Fsharp_chat

Страница 392 из 772
Evgeniy
02.11.2017
10:26:04
Здесь, правда, еще накладываются какие-то проблемы .NET Core под Windows.

Nikolay
02.11.2017
10:26:07
И опять же, здесь тест не совсем корректный

Не учитывается работа GC

Вызовется у тебя функция 100.000 раз, а потом GC будет 2 секунды тупить

Google
Evgeniy
02.11.2017
10:27:00
Я думаю, это более редкий кейс.

Когда все начинает упираться в GC.

Nikolay
02.11.2017
10:29:30
Когда все начинает упираться в GC.
Но кейс очень неприятный

Vladimir
02.11.2017
10:29:33
Если у тебя глубокое дерево вызовов с пробросом внешних значений, то reference types выигрывают.
Я скорее думаю что там куча классов насоздавалась чтобы замыкания хранить

Evgeniy
02.11.2017
10:29:53
Ок, надо будет генерируемый код посмотреть.

Vladimir
02.11.2017
10:30:32
Угу

Evgeniy
02.11.2017
10:30:52
На самом деле разница не должна быть такой эпичной, как показывают тесты под Windows.

Nikolay
02.11.2017
10:30:58
https://sharplab.io/#v2:DYLgZgzgPsCmAuACATrCBXY8Bi6B2iAHogJ6IC8RiUAfIgEpqbwB0ARgJZ4AmiAFGHyIA+ogC0dEgEoAsACh5qDFlwE+AeQDWiAAxT+W3fvm0GTLOy68BQ4hPmJHjpc1UHtARn0bPsuU8dTRmVWTh5+QQIye38AuJcVIR9EACZvQzSHOICg81CrCKEAL3EaLOz4vLdkgGZ07TryiqdckMtwmwIAC1Km5oDDPmIAalJEUZLRrqkZmeo6DgBzPAB7VCA==

Google
Evgeniy
02.11.2017
10:35:24
Я склоняюсь к тому, что reference types по умолчанию — это скорее благо.

Но неплохо было бы иметь value type варианты в стандартной библиотеке.

Nikolay
02.11.2017
10:38:01
Если сделают отличный GC, то не критично будет

Artemy
02.11.2017
10:41:20
Надо завести где-нибудь список ближайших мероприятий. :) @neftedollar
На сайт бы было бы неплохо такое поместить.

Evgeniy
02.11.2017
11:08:56
Roman
02.11.2017
11:09:45
Ага.
Там есть сервер, который пока не запустил. Лучше сразу туда.

Будет хоть мотивация его выпустить)

Evgeniy
02.11.2017
12:20:27
Кто-нибудь следит за ситуацией с провайдерами под .NET Core?

https://github.com/Microsoft/visualfsharp/issues/2406#issuecomment-341403507

Я уже плохо понимаю, какие проблемы были решены, а какие остались.

@sergey_tihon @nevoroman @fvnever @Dolfik ^

Всех потревожу!

Nikolay
02.11.2017
12:22:16
У меня уже в буфере была ссылка!

Evgeniy
02.11.2017
12:44:36
Опередил
Так что все это значит?

Nikolay
02.11.2017
12:45:08
Так что все это значит?
Значит, что тайп провайдеры можно юзать под кором?

И Сайм теперь перейдёт к чему-то другому

Evgeniy
02.11.2017
14:06:19
Видели же эту библиотеку сниппетов? https://github.com/palladin/fsharp-snippets/tree/master/src/FSharpSnippets

Google
Evgeniy
02.11.2017
14:06:31
Там всё прекрасно. :)

Aleksey
02.11.2017
14:57:01
Внезапынй вопрос: в F# всё ещё порядок файлов в проекте значим и в "более верхних" определениях нельзя пользовать "более нижние"? Или я проспал революцию и уже давно все свободны?

Nikolay
02.11.2017
14:57:33
Значим.
Но есть рекурсивные модули)

Aleksey
02.11.2017
14:57:35
Эх... Печаль

Ещё и naked expressions, небось, разрешены? :)

Evgeniy
02.11.2017
15:01:59
Aleksey
02.11.2017
15:02:17
Эх..

Evgeniy
02.11.2017
15:12:19
Предложение убрать явный порядок файлов не пользуется популярностью. https://github.com/fsharp/fslang-suggestions/issues/7

Aleksey
02.11.2017
15:14:00
Ну если есть naket exps и ими пользуются для side effects, то убирание влияния порядка кому-то что-то сломает

Как-то для ML-ей логично иметь независимость от порядка определений в файле и уж тем более от порядка файлов в проекте

Evgeniy
02.11.2017
15:21:46
Naked expressions допустимы на самой верхушке, рядом с точкой входа, в том же файле.

Aleksey
02.11.2017
15:22:52
Сайдэффекты там всё же можно?

Aleksey
02.11.2017
15:24:46
Хмм. Ну если только "в начале", то ещё можно потерпеть. Только вот при отвязывании порядка файлов от значимости будут проблемы, либо придется иметь специальный "первый модель"

Evgeniy
02.11.2017
15:27:38
Не очень большая проблема.

Friedrich
02.11.2017
15:27:54
Ну и вообще, нужно разобраться изначально в чем причина тормозов
Вот это верно говоришь. Я думаю, за счёт иммутабельности там можно наоптимизировать кой-чего в замыканиях.

Google
Evgeniy
02.11.2017
15:29:10
Что за проблемы? Давайте их изучим!
Под Windows (.NET Core) результат намного хуже получается, чем в Ubuntu и MacOS.

Friedrich
02.11.2017
15:29:13
Если у тебя глубокое дерево вызовов с пробросом внешних значений, то reference types выигрывают.
Есть мысль избавиться от пробросов за счёт указателей на стек. Но там надо думать много, конечно. Eventually, тут поможет escape analysis, когда CLR научится его нормально делать.

Nikolay
02.11.2017
15:29:33
Friedrich
02.11.2017
15:29:50
Если сделают отличный GC, то не критично будет
*JIT, который позволит GC отдыхать большую часть времени

Evgeniy
02.11.2017
15:30:24
А потом придёт Сайм и скажет day of work
Проблема не в компиляторе.

Nikolay
02.11.2017
15:30:26
Я не вижу смысла заморачиваться с этим пока, так как очень маловероятно, что Сайм будет это ломать

Friedrich
02.11.2017
15:30:39
Там есть сервер, который пока не запустил. Лучше сразу туда.
Пинайте меня по выходным, я могу разбудить своего внутреннего Сайма и запилить всё нужное за день. Или за два :)

Nikolay
02.11.2017
15:31:02
Почему ты все хочешь поломать?
Чтобы сделать всё хорошо :)

Friedrich
02.11.2017
15:31:17
Я уже плохо понимаю, какие проблемы были решены, а какие остались.
Я так понимаю, осталась проблема в дизайн-тайме? И она как-то костыльно решается каким-то prop-файлом для MSBuild?

Evgeniy
02.11.2017
15:31:25
Чтобы сделать всё хорошо :)
Я считаю, что здесь нет никакой проблемы со стороны компилятора или стандартной библиотеки.

Aleksey
02.11.2017
15:33:05
Стокгольмский синдром?

Friedrich
02.11.2017
15:33:26
Возможно ?

Evgeniy
02.11.2017
15:34:49
В комментариях к предложению была высказана идея, что компилятор должен сам выводить нужный порядок.

И анализировать его на нелокальные циклические зависимости.

Это интересная идея, как мне кажется.

Aleksey
02.11.2017
15:35:58
Да не должен вообще порядок влиять, на то и декларативный язык

Friedrich
02.11.2017
15:36:20
В комментариях к предложению была высказана идея, что компилятор должен сам выводить нужный порядок.
Большого ума не нужно, чтобы такое выдумать. Я же тебе вчера это предлагал запилить.

Да не должен вообще порядок влиять, на то и декларативный язык
Дак он и не влияет. Просто в одной конфигурации собирается, а во второй не собирается — вот и всё влияние :)

Google
Aleksey
02.11.2017
15:38:10
Заставляет расолагать определения не согласно желанию, а согласно логике компилятора, значит влияет :)

Friedrich
02.11.2017
15:38:15
Если хочется — можно весь проект сунуть в один файл. В пределах файла порядок определений ни на что не влияет (если накрыть специальным флагом).

Но я пока не видел тех, кому такого хочется.

Andrew
02.11.2017
15:39:15
по-моему тогда все объявления нужно объединять через and ?

Friedrich
02.11.2017
15:39:29
Это 4.2, кажется?

Короче, в них не нужно and.

Evgeniy
02.11.2017
15:39:40
Friedrich
02.11.2017
15:39:48
А, ой, 4.2 ещё не вышел :)

О, чуваки, слушайте, а что с документацией у F#?

В смысле, вот я заметил там косяки и хотел бы наконтрибьютить.

Но в прошлый раз меня с контрибьюциями послали нафиг, потому что куда-то там что-то мигрировали.

Evgeniy
02.11.2017
15:41:17
Ждем ваших контрибуций!

Friedrich
02.11.2017
15:41:30
https://github.com/MicrosoftDocs/visualfsharpdocs/
https://github.com/MicrosoftDocs/visualfsharpdocs/pull/265

Уже скоро год исполнится :)

Короче, похоже, разморозили контрибьюции, можно потыкаться.

Evgeniy
02.11.2017
15:42:44
Надо их расшевилить.

Страница 392 из 772