
Andrew
27.09.2017
10:58:06

Evgeniy
27.09.2017
10:58:40
Дядюшка Дон решил поковырять "трейты".
https://github.com/Microsoft/visualfsharp/pull/3582#issuecomment-331918589

Nikolay
27.09.2017
10:58:58
Когда F5 жмёшь и выбираешь .Net Core проект

Google

Andrew
27.09.2017
11:02:46

Evgeniy
27.09.2017
11:03:24
Дядюшка Дон решил поковырять "трейты".
https://github.com/Microsoft/visualfsharp/pull/3582#issuecomment-331918589
Судя по тесту из коммита, вот такое уже работает:
ttype System.Int32 with
static member Add(a: System.Int32, b: System.Int32) =
a + b
type MyType =
| MyType of int
static member Add(MyType x, MyType y) =
MyType (x + y)
let inline addGeneric<^A
when ^A: (static member Add: ^A*^A -> ^A)> (a,b): ^A =
(^A : (static member Add : ^A * ^A -> ^A) (a,b))
let inline (+++) a b = addGeneric(a,b)
[<EntryPoint>]
let main args =
MyType(1) +++ MyType(2) |> ignore
1 +++ 1

Nikolay
27.09.2017
11:04:14
А потом сам создаёт launch.json

Andrew
27.09.2017
11:05:17
У меня не так. У меня так ^
потому что не настроен build в tasks.json

Friedrich
27.09.2017
11:06:16
Потому что tasks.json есть, а настройки там нету.
Можешь удалить, и тогда оно предложит сгенерировать задачи по умолчанию.

Nikolay
27.09.2017
11:09:10
Удали папку .vscode
И попробуй снова
(или просто переименуй)

Andrew
27.09.2017
11:13:38
Удалил. Добавил конфигурацию отладки. Attach там появился. Далее сгенерировал tasks.build - вот такой:

Google

Andrew
27.09.2017
11:14:26
И в моем случае он выполняется с ошибкой (билдит не то, что нужно). Мне нужно билдить проект в папке console. Как это указать?

Roman
27.09.2017
11:16:33
Аналог cwd должен быть в настройках тачках
Таска

Andrew
27.09.2017
11:22:05
Ну в целом идею я понял. Спасибо. Я так полагаю папку .vscode тоже надо бы коммитить в репозиторий. Т.к. она может содержать таски для запуска и тестирования и профили отладки.
А еще такой вопрос: Если у меня в папке с решением несколько проектов, в этом случае launch и tasks должны быть для каждого проекта или единые для всех?
Папка .vscode создается в корне workplace и следовательно tasks и launch единые для всего workplace. При добавлении новых проектов, которые треюуют отладки или отдельных тасков, их надо вручную добавлять в tasks и launch

Roman
27.09.2017
11:47:48

Nikolay
27.09.2017
13:10:03

Vasily
27.09.2017
13:19:00
https://github.com/Microsoft/visualfsharp/pull/2667
Вот это интересно

Roman
27.09.2017
13:25:47

Evgeniy
27.09.2017
13:59:46
https://github.com/fsharp/fslang-suggestions/issues/612

Friedrich
27.09.2017
14:00:29

Vlad
27.09.2017
14:04:08
абуз лайков!

Andrew
27.09.2017
14:06:12

Roman
27.09.2017
14:08:20

Friedrich
27.09.2017
14:08:44

Google

Friedrich
27.09.2017
14:08:59
В hlcup мы активных паттернов не применяли, кажется.

Evgeniy
27.09.2017
14:21:50
Жалко, что кортежи, option, choice не были value types по умолчанию.

Friedrich
27.09.2017
14:23:22
А не всегда нужно value types.

Igor
27.09.2017
14:27:01

Vasily
27.09.2017
14:27:16
Ну как о чем

Evgeniy
27.09.2017
14:27:49

Igor
27.09.2017
14:28:07
А где микробенчмарки и прототип?

Friedrich
27.09.2017
14:29:51
Чтоб написать прототип — надо быть семи пядей во лбу.
А вот микробенчмарков каждый может наделать, это да.
Лишние аллокации точно убирать нужно.

Evgeniy
27.09.2017
14:32:47

Pavel
27.09.2017
14:52:47
Вроде в fable была проблема с перфомансом из-за active patterns. После профилирования переписали без них и получили приличный прирост

Friedrich
27.09.2017
14:53:59
Не, там рантайм другой и проблемы другие. Про пользу этой фичи для Fable я говорить не готов.

Pavel
27.09.2017
15:01:06
Я про сам компилятор fable
Который f# AST превращает в fable AST а потом в babel AST

Friedrich
27.09.2017
15:05:35

Pavel
27.09.2017
15:07:22

Friedrich
27.09.2017
15:09:40
Неоднократно [1, 2] поднимались дискуссии про компиляцию Fable с помощью Fable. Однако, я не уверен, что они во что-то полезное в итоге вылились.
[1]: https://github.com/fable-compiler/Fable/issues/381
[2]: https://github.com/fsharp/FSharp.Compiler.Service/issues/679

Pavel
27.09.2017
15:14:03

Google

Vladimir
27.09.2017
15:14:34
А не, когда роутер свой писал
Там как раз PathString структура передается
и можно было бы ее через ActivePatterns распарсить, не писать кучу кода прямо в роутере

Roman
27.09.2017
15:40:44
Кстати, можно ли как-то в Fable +elmish сделать роутинг без # ? А то это невыносимо неудобно.

Vasily
27.09.2017
15:41:50
Там клиентский, шоле?

Roman
27.09.2017
16:13:21

Evgeniy
27.09.2017
16:16:04
Вы, наверное, пропустили утреннюю драму.
https://github.com/dustinmoris/Giraffe/issues/98

Roman
27.09.2017
16:23:29

Igor
27.09.2017
16:29:08

Evgeniy
27.09.2017
16:30:40
Просвети в @dotnettalks
Я и здесь могу. :)
Вчера вышла статья от Филлипа (VF# PM в MSFT) про построению веб сервисов на F#. Автор Suave немного расстроился, что в ней Giraffe используется. Ну, и вспылил.
Сейчас все хорошо.
Филлип пообещал в следующем месяце написать статью про Suave. :)

Igor
27.09.2017
16:32:37
- А к чему ищью?
- Кто популярнее, живее?
- Они разные, если да то кто лучше? Если одинаковые, то зачем два?
- Будут в итоге мерджить, это вообще возможно?

Roman
27.09.2017
16:32:50

Evgeniy
27.09.2017
16:33:23
Две библиотеки довольно похожи, но Giraffe по умолчанию базируется на Kestrel.
У Suave свой сервер, насколько я понял.

Google

Friedrich
27.09.2017
16:35:12
Нужно больше серверов!
Для Kestrel нужна альтернатива, и любые подвижки в этом направлении — это хорошо.

Evgeniy
27.09.2017
16:36:02
К сожалению, Suave довольно медленный. :(

Igor
27.09.2017
16:36:03
Хотелось что бы это был “плагин”, а не часть фреймворка

Vlad
27.09.2017
16:40:51

Pavel
27.09.2017
16:41:20
К сожалению, Suave довольно медленный. :(
Как верно заметил в одном из комментарией автор Suave, обычно боттлнек в вебприложениях совсем не там, где меряют синтетические бенчмарки вебсерверов. Мне кажеться разумнее делать выбор по другим критериям

Evgeniy
27.09.2017
16:46:44

Pavel
27.09.2017
16:54:18
Я что-то не совсем уловил поинт дискуссии. Автор жирафа хочет "вмержить" его в суав, чтобы упростить выбор фреймворка? Т.е. придется выбирать не фреймворк а сервер (родной суав или кестрел). Или что-то другое?

Evgeniy
27.09.2017
16:55:13

Pavel
27.09.2017
16:57:10
А вообще да, автор Suave очень вспыльчивый. Помню как он вспылил еще в посте про прототип Giraffe

Roman
27.09.2017
17:00:01

Pavel
27.09.2017
17:00:49

Evgeniy
27.09.2017
17:04:06
Лол. F# поддерживается.
https://carbon.now.sh/
Можно делать хипстерские картинки и постить в телеграм вместо плейн текста.

Roman
27.09.2017
17:04:43

Летучая
27.09.2017
17:17:21

Evgeniy
27.09.2017
17:20:12
Да, потому что F#/OCaml.
Заведи ишшуй!