@scala_ru

Страница 1438 из 1499
Mike
27.04.2018
12:57:33
я думал это бот, который накуривает

Dmitriy
27.04.2018
12:58:22
Mike
27.04.2018
12:59:08
Кто, Богдан?
ну если бы в чате был бот с командой 420, ему бы ушло

Oleg
27.04.2018
14:18:35
@scala_ponv

Google
Сергей
27.04.2018
14:36:12
Кто может подсказать, как заставить искаться имплисит в районе явного вызова formatFromIso. Почему не подхватывается composeIso? https://scastie.scala-lang.org/ZD8lkqYOQYOyvIuNwKPi0w

Alexey
27.04.2018
14:46:19
ambigous implicit

а нет

а да, он не может применить composeIso из-за ambigous implicit

Сергей
27.04.2018
14:48:36
попробую сейчас явно подставить, чтобы увидеть это

Действительно. Спасибо. Буду разбираться дальше.

А вот допустим я убрал вообще composeIso. Возможно ли в принципе заставить скалу как-то выстроить цепочку изоморфизмов через имплиситы? У меня сейчас такое ощущение, что нет. ps: подобные ответы видел (https://stackoverflow.com/questions/5332801/how-can-i-chain-implicits-in-scala) но они здесь вроде бы не применимы.

Сергей
27.04.2018
16:29:41
А как тогда нужно, чтобы руками не композировать?

Цепочки по типу таких? https://scastie.scala-lang.org/wceNt0enRBSvW0pdxuflUw Или таких? https://scastie.scala-lang.org/roXtEWLPRA6csuy7rMxOnQ
Первый вариант на мой взгляд не применим. Второй возможно подойдет, поизучаю.

Daniel
27.04.2018
17:11:33
https://twitter.com/scala_lang/status/989894770947391489?s=21 ?

Nikolay
27.04.2018
17:13:53
там в 2.12.5 кстати добавили -Ybackend-parallelism. кто-нибудь пробовал, есть какой-то профит?

Google
Sergey
27.04.2018
17:42:05
Алло

Коллега

Я же пробовал

Капец)

Nikolay
27.04.2018
17:43:31
так ты не сказал какой прирост в скорости компиляции, коллега

Sergey
27.04.2018
17:44:45
В слаке в треде было, по сравнению с гидрой профита мало

Так и скажи что прослоупочил)

Nikolay
27.04.2018
17:45:22
ээээ, нет

OlegYch
27.04.2018
17:46:40
не заметил профита

но он есть

Mikhail
27.04.2018
17:46:56
В слаке в треде было, по сравнению с гидрой профита мало
Алло, ты нам расскажи по сравнению с обычной компиляций и почему оно по дефолту не включено)

OlegYch
27.04.2018
17:47:27
там чота с класлоадерами добавили, это вроде чуть заметнее

Sergey
27.04.2018
17:48:10
Ахах) хз, новая фича поэтому сделали флагом, мое предположение. По факту ускорение на нашем проекте, что важно, весьма незначительное

Timothy
27.04.2018
19:09:52
https://twitter.com/dibblego/status/989609201625268224 было уже?

OlegYch
27.04.2018
19:24:11
удоли

Mikhail
27.04.2018
19:33:04
@odomontois Олежа, я слегка покумекал и глянь чо получилось. Работают имплиситы и имплиситконвершины для ньютайпов без импорта. Я пока не тестировал на предмет сайдэффектов, но на первый взгляд вроде как можно будет это дело проапдейтить в супертегах. https://gist.github.com/rudogma/58f330db4a9c79f56f968587b49d9f1d

@odomontois сейчас еще подумал и вот сайдэффект. поскольку на этапе тайпчека Step.type входит в цепочку, то все его методы компилятору видны. тобишь можно написать обращение к мемберам x0.koko и компилятор это дело схавает и даже скомпилирует. однако для этого дела он также генерит asInstanceOf[Step.type], что в райнтаме падает по той естественной причине, что Integer не может быть приведен к Step.type. Мне этот момент видится как не критичный (можно конечно для этого дела выделить отдельный трейт внутри NewType (на замену this.type), чтобы еще сузить кол-во видимых мемберов - будет чуть чище)

Александр
27.04.2018
23:33:08
Почитал про грейт 10 вещей с graalvm, уточнить уже скала код перегонял в нативный ?

Alexander
28.04.2018
04:54:55
Google
Daniel
28.04.2018
04:58:24
Но там и не могло быть профита.

Oleg
28.04.2018
05:10:08
Но там и не могло быть профита.
А быстрый старт, моментальный разогрев?

Alexander
28.04.2018
05:10:51
А быстрый старт, моментальный разогрев?
Как это моментальный разогрев?

Daniel
28.04.2018
05:18:47
А быстрый старт, моментальный разогрев?
Старт да, прогрев я хз как почувствовать на той бирюльке.

Старт, кстати, все равно не такой быстрый как у других бинарников или питоновского интерпретатора. Но намного быстрее чем раньше.

Oleg
28.04.2018
05:45:57
Как это моментальный разогрев?
Все классы сразу загружены, и методы сразу скомпилированы в какую-то из бинарных форм, которую им бы дал jit, понятно без слишком агрессивных

Посмотрите, о чем твитнул(а) @contrarivariant: https://twitter.com/contrarivariant/status/989983567034728448?s=09

напомню

Я вообще ничё не знаю про грааль, но правда ли, что я теперь смогу свои фриманатки\тайплевел DSLы проецировать сразу в AST и ЖВМ сможет мне их компилировать и запускать?

и автоспециализацию и всякую херь сможет скалка делать даже без дотти линкеров?

Oleg
28.04.2018
05:59:36
ну может быть не фриманатки, но что-то такое фри

посоны, давайте уже

делайте мне

Daniel
28.04.2018
06:01:06
начало не раньше 20 года

язык ж меняется

Andrey
28.04.2018
06:03:12
Не могу понять за ClassTag, что, зачем и почему, вот например у меня есть метод def foo[T](...): Array[T] = { new Array[T] ... }, почему он не скомпилируется, зачем нужен ClassTag?

Alexey
28.04.2018
06:11:50
Google
Andrey
28.04.2018
06:13:09
Я не писал на Java, мне сложно понять про затирание типов

Admin
ERROR: S client not available

Oleg
28.04.2018
06:29:47
Я не писал на Java, мне сложно понять про затирание типов
У джава есть 9 специфических типов массиов Object[], byte[], short[], int[], long[], float[], double[], char[], boolean[] Все, кроме первого хранят не ссылки, а пачки примитивных объектов. Но первый тоже непростой. Создатели эпично лоханулись и сделали массивы ковариантными. Это значит, что если A <: B, ты можешь передать A[] в место, которое требует B[] Что же будет, если потребитель решит не только прочитать, но и записать в какую-то ячейку более базовый B? Ведь в исходном месте массив всё ещё может использоваться как набор A? Оказывается, что жава выбросит рантайм-исключение. Каждый раз при создании массива, она запоминает для какого Class он создавался и не позволяет складывать туда ссылки на неподходящие инстансы . Вот для этого в скалке существует ClassTag. Для примитивных типов он запомнил, что это за тип и создаст соответствующий примитивный массив, для ссылочных, он запомнил Class и складывает его при создании запоминает его в массиве

Aleksei
28.04.2018
06:31:20
ох блин, Олег тебе надо таки блог вести какой нибудь уже

Max
28.04.2018
06:43:44
гайз кто делал несколько authed сервисов в http4s? не могу понять почему один сервис валит c 401 еще не дойдя до сервиса к которому урл подходит https://github.com/http4s/http4s/blob/87eb4b0adf2b56702158907d79bb4509781ace66/server/src/main/scala/org/http4s/server/package.scala#L69

The mirror
28.04.2018
06:46:12
ох блин, Олег тебе надо таки блог вести какой нибудь уже
Я иногда форваржу интересные посты отсюда к себе в хранилище, наверное я не один такой.

Мини «блог»

Alexander
28.04.2018
07:04:44
Мини «блог»
Твиттор что ли? :)

The mirror
28.04.2018
07:05:32
Твиттор что ли? :)
Нет, ”Saved messages” в телеграме

Andrey
28.04.2018
07:06:32
Предлагаю открыть филосовскую субботу: Почему в scala.Option map() оборачивает результат в Some, а не в Option.apply? В java Optional используется как и ожидается Optional.ofNullable()

Может баг на эту тему был уже? :)

Alexander
28.04.2018
07:07:59
всегда можно сделать flatMap с Option(...), если подразумевается null

Andrey
28.04.2018
07:10:46
всегда можно сделать flatMap с Option(...), если подразумевается null
Это понятно. У меня даже макрос под это дело есть. Но в чём смысл, если Option специально делался для того, чтобы избегать их?

Alexander
28.04.2018
07:12:15
не думаю, что Option делался для того, чтобы прятать нулы под капотом

Alexander
28.04.2018
07:12:34
Option(null) это скорее компромис для удобства

Alexey
28.04.2018
07:12:37
В java да для работы с null, в скалке сомнительно

apply как раз был сделан, чтобы штопать дыры между scala и java

Alexander
28.04.2018
07:13:01
ну и Optional в Java имеет мало общего со скаловским

Google
Dim
28.04.2018
07:14:11
Люди, что делать. Вот например пользователь редактирует сложный объект на форме. Что-то пользователь обновит, что-то нет. Потом все это летит на бэкенд. И как это все обновлять? (ps. MongoDb, ReactiveMongo) данные летят json-ом.

Alexey
28.04.2018
07:15:16
Почему?
Реализация совсем разная

Andrey
28.04.2018
07:15:30
map-flatMap есть. get-orElse-getOrElse есть.

Основное отличие - что Option это еще и TraversableOnce

Alexey
28.04.2018
07:15:57
В Optional - null считается осутвием значения, а в Option null - это тоже значение

Andrey
28.04.2018
07:16:01
(через конвертер)

Alexander
28.04.2018
07:16:10
https://dzone.com/articles/optional-anti-patterns

Страница 1438 из 1499