
Alexander
12.12.2017
12:41:05
Может кто настраивал мультимодульный sbt билд, в котором все модули cross compiled to 2.11 и 2.12, а один нужно оставить 2.11 only (там интегрейшн тесты)? Указать scalaVersion явно для этого модуля не работает. Использую для этого плугин sbt-cross, но на sbt 1 не шевелится обновляться.
остаётся пока выносить it тесты в отдельный билд, но это не очень удобно

Alexey
12.12.2017
12:43:28
вот это очень настараживает
val preallocatedBuf: ThreadLocal[Array[Byte]] = new ThreadLocal[Array[Byte]] {
override def initialValue(): Array[Byte] = new Array(100000)
}

Google

Alexey
12.12.2017
12:50:01
выглядит как хак, чтобы избежать аллокаций

Oleksandr
12.12.2017
12:54:07
ну, а почему это плохо?

Alexey
12.12.2017
12:54:57
потому что остальные участники теста не в тех же условиях

Oleksandr
12.12.2017
12:55:20
а кто им мешал так же сделать?
или это не в коде, а в тесте?

Alexey
12.12.2017
12:55:35
в тесте

Oleksandr
12.12.2017
12:55:44
аа, тогда да, стремновато

Oleg
12.12.2017
12:55:47
ну я вижу, что не поддерживает стриминг парсинг, а значит вся эта его производительность мне нафиг не сдалась

Alexey
12.12.2017
12:56:13
какой стриминг парсинг?

Oleg
12.12.2017
12:56:48
ну чтобы взять Source[ByteString] и какой-то магией получить Future[Result]

Alexey
12.12.2017
12:57:08
ааа

Oleg
12.12.2017
12:57:14
c jawn\circe я знаю, как это сделать

Alexey
12.12.2017
12:57:32
Надо будет поразмыслить над этой фичей

sherzod
12.12.2017
12:58:04
да мы ж вроде обсуждали это в на митапе

Google

Alexey
12.12.2017
12:58:16
Лол взять обжект маппер и сказать что он быстрее jackson
https://github.com/plokhotnyuk/jsoniter-scala/blob/master/benchmark/src/main/scala/com/github/plokhotnyuk/jsoniter_scala/macros/JacksonSerDesers.scala

Oleksandr
12.12.2017
12:59:05
кстати, про стриминг
какое апи у драйвера (к бд) вы бы предпочли для этого?
reactivestreams ?

Oleg
12.12.2017
12:59:31
Алексей так жёстко взялся высмеивать конкурента, что стал напоминать де Гуса, высмеивающего конкурирующие IO

Denis
12.12.2017
13:00:08

Alexey
12.12.2017
13:00:17
Ну эт я так, бенчмаркам я верю больше :)

Nikolay
12.12.2017
13:00:53

KrivdaTheTriewe
12.12.2017
13:04:18
OMG
там в десятой скале были проблемы короч с названиями пакетов , и они очень часто проявлялись со спарком + кассандрой, помню еще баг был, когда был важен порядок импортов пакетов , иначе ошибка компиляции

Aleksey
12.12.2017
13:04:57
Что люди только не придумают, лишь бы королев не юзать.

Nikolay
12.12.2017
13:05:22

Andry
12.12.2017
13:06:15

Alexey
12.12.2017
13:09:06
jackson поидеи тоже умеет в континуэйшен

Alexander
12.12.2017
13:17:08
в jackson есть полезное умение генерить json находу, я так из базы данные в JSON отдаю стримя

Alexey
12.12.2017
13:32:28
А покидайте плиз еще каких нибудь либ для json java/scala, хочу более полный список либ в бенче сделать
Вот что пока что есть
https://github.com/tethys-json/tethys/tree/master/modules/benchmarks

Daniel
12.12.2017
13:35:01

Alexey
12.12.2017
13:36:43
пока что это попугаи, я думаю что то осмысленное пихнуть в данные к бенчмарку и там заодно подправлю

Alexander
12.12.2017
13:39:39
добавь http://www.oracle.com/technetwork/articles/java/json-1973242.html :)

Alexey
12.12.2017
13:41:59

Alexander
12.12.2017
13:42:26
я не юзал, но стандарт типа :)

Google

Alexey
12.12.2017
13:42:51
сука, 404 на страницу с туториалом

Denis
12.12.2017
13:51:13
Supermonads
One Notion to Bind Them All
http://www.cs.nott.ac.uk/~psxjb5/publications/2016-BrackerNilsson-Supermonads.pdf

Mikhail
12.12.2017
13:53:25
сука, 404 на страницу с туториалом
да вроде нет. https://webcache.googleusercontent.com/search?q=cache:gofcFDAGFecJ:https://docs.oracle.com/javaee/7/tutorial/jsonp001.htm+&cd=1&hl=ru&ct=clnk&gl=ru

Alexey
12.12.2017
13:56:04
а сорян, не сразу смог в троллинг :)

Yan?
12.12.2017
14:04:31
Как понять под какую версию скалы та или иная зависимость? reactivemongo под 2.12 вставать не хочет

Alexey
12.12.2017
14:05:36
Обычно в проекте пишут версии, если нет то можно в мавене поглядеть
там будет постфикс у артифакта
_2.11 _2.12

Nikolay
12.12.2017
14:06:30
http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22org.reactivemongo%22%20AND%20a%3A%22reactivemongo_2.12%22
вот вроде есть под 2.12

Yan?
12.12.2017
14:14:36

Yan?
12.12.2017
14:16:02
Хм, 0.12.1 версия спокойно взлетела
Чудеса

Nikolay
12.12.2017
14:16:42
Так 0.12.1 - это первый релиз под 2.12
Чудеса отменяются

Yan?
12.12.2017
14:18:24
Я о том, что с официального туториала монги 2.12 стоит

Luger
12.12.2017
14:20:43
а акка есть?

Daniel
12.12.2017
14:21:12
так акки в депендонсях нету, вот и не работает

Google

Sergey
12.12.2017
14:21:22
только аккамонга

Luger
12.12.2017
14:21:28

Nikolay
12.12.2017
14:22:16
Динамический стек

Mikhail
12.12.2017
14:24:04

Yan?
12.12.2017
14:26:57

Mikhail
12.12.2017
14:33:16

Admin
ERROR: S client not available

Yan?
12.12.2017
14:33:42
http://reactivemongo.org/releases/0.12/documentation/tutorial/getstarted.html

Nikolay
12.12.2017
14:34:53
Ну в общем нет такой версии в maven central
Не верь продажным туториалам

Mikhail
12.12.2017
14:38:24

Yan?
12.12.2017
14:38:40
Ой бля
Опечатка
0.12 конечно


Oleksandr
12.12.2017
15:08:06
кто-то юзает -Yopt ?
Enable optimizations
unreachable-code Eliminate unreachable code, exception handlers protecting no instructions, debug information of eliminated variables.
simplify-jumps Simplify branching instructions, eliminate unnecessary ones.
empty-line-numbers Eliminate unnecessary line number information.
empty-labels Eliminate and collapse redundant labels in the bytecode.
compact-locals Eliminate empty slots in the sequence of local variables.
nullness-tracking Track nullness / non-nullness of local variables and apply optimizations.
closure-elimination Rewrite closure invocations to the implementation method and eliminate closures.
inline-project Inline only methods defined in the files being compiled.
inline-global Inline methods from any source, including classfiles on the compile classpath.
l:none Don't enable any optimizations.
l:default Enable default optimizations: unreachable-code
l:method Enable intra-method optimizations: unreachable-code,simplify-jumps,empty-line-numbers,empty-labels,compact-locals,nullness-tracking,closure-elimination
l:project Enable cross-method optimizations within the current project: l:method,inline-project
l:classpath Enable cross-method optimizations across the entire classpath: l:project,inline-global


Gleb
12.12.2017
15:19:57
гениальное название

sherzod
12.12.2017
15:20:37
родное такое

Владимир
12.12.2017
15:25:39
Если кто пользуется scalafmt, а особенно sbt плагином, то тут появился официальный плагин без хаков как в neo-sbt-scalafmt и без использования cli как было в старом.
https://github.com/scalameta/scalafmt/issues/1081
https://github.com/scalameta/scalafmt/pull/1085
Пока нет кеширования, но это в моих ближайших планах :)

Nikolay
12.12.2017
15:26:30
там в nailgun будет запускаться?

Oleksandr
12.12.2017
15:34:22

Google

Oleksandr
12.12.2017
15:34:43
хотя я как-то его не наблюдаю, вообще

Alexander
12.12.2017
15:50:52

Владимир
12.12.2017
16:02:05
? пока нет, мне кажется
скоро настрою

Nikolay
12.12.2017
16:03:53
> These problems were addressed in neo-sbt-scalafmt but it is really slow.
а засчет чего эта версия плагина будет быстрее?

Владимир
12.12.2017
16:08:59
neo-sbt-scalafmt делает какие-то хаки с динамической загрузкой классов для sbt 0.13 и sbt 1.0 (зачем-то). Этот плагин ничего этого не делает, но работает только под sbt 1.0, потому что scalafmt только под скалу 2.12. Но сейчас правда нет кеширования, так что может работать медленее при форматировании.

Nikolay
12.12.2017
16:10:00
а scalafmt будет в nailgun-е запускаться?

Владимир
12.12.2017
16:11:41
Что это значит?...

Nikolay
12.12.2017
16:13:00
запуск в фоновом процессе http://scalameta.org/scalafmt/#Nailgun
хотя я сейчас подумал, для sbt плагина это не так актуально похоже)

Daniel
12.12.2017
16:15:26
scalafmt как плагин актуально для тех кто не на идее сидит? или вы как то еще процессы настраиваете с его использованием?
просто для меня выглядит не удобным лезть отдельно в консоль и выполнять форматирование

Владимир
12.12.2017
16:15:26
А зачем тогда sbt плагин? Плагин работает над твоим проектом. Например, можно настроить форматирование перед компиляцией

Nikolay
12.12.2017
16:16:36

Grigory
12.12.2017
16:16:41

Владимир
12.12.2017
16:16:56
Просто по хоткею можно запускать scalafmt

Daniel
12.12.2017
16:17:32
Есть дополнение для idea!
я это и имею ввиду
что правлю код, в процессе хоткеем можно поправить форматирование, что проще чем через консоль

Владимир
12.12.2017
16:17:54
Ну да, есть такая штука для scalafmt