Size: a a a

Kotlin Community

2020 May 15

AN

Alexander Nozik in Kotlin Community
работу с файлами, IO и прочим
источник

IZ

Ivan Zemlyankiy in Kotlin Community
собственно вот эта либа https://github.com/real-logic/aeron/tree/master/aeron-client/src/main
это и есть IO )
источник

AN

Alexander Nozik in Kotlin Community
а локально ничего нет?
источник

IZ

Ivan Zemlyankiy in Kotlin Community
Alexander Nozik
а локально ничего нет?
ну там шина данных которая делает свой протокол поверх этого транспорта
источник

AN

Alexander Nozik in Kotlin Community
Я имею в виду что-то кроме UDP
источник

IZ

Ivan Zemlyankiy in Kotlin Community
ну если я правильно понимаю вопрос, то нет )
источник

IZ

Ivan Zemlyankiy in Kotlin Community
это немного не просто UDP
источник

AN

Alexander Nozik in Kotlin Community
Ну тогда да, на мультиплатформе будет очень клево.
источник

IZ

Ivan Zemlyankiy in Kotlin Community
надеюсь на джокере расскажу про этого зверя, так что приглашаю )
источник

ML

Mikhail Levchenko in Kotlin Community
Ребят, если у меня вывод типов в студии и при компиляции разнятся, то что нужно сделать? 1.3.61
источник

IZ

Ivan Zemlyankiy in Kotlin Community
@noraltavir @relizarov спасибо большое за ответы!
источник

AN

Alexander Nozik in Kotlin Community
Ivan Zemlyankiy
@noraltavir @relizarov спасибо большое за ответы!
Я если что не эксперт по latency. Как я уже сказал, у нас больше про throughput и еще больше про человеческий API (потому что ошибки проектирования уже давно дороже, чем конкретные узкие места по перформансу).
источник

AM

Andrew Mikhaylov in Kotlin Community
Mikhail Levchenko
Ребят, если у меня вывод типов в студии и при компиляции разнятся, то что нужно сделать? 1.3.61
Выбирай:
1. Выключить новый вывод типов в IDE: Preferences -> Kotlin Compiler -> uncheck "Enable new type inference algorithm for IDE analysis"
2. Включить новый вывод типов в гредле:
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile

buildscript {
   dependencies {
       classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.40'
   }
}

allprojects {
   tasks.withType(KotlinCompile).all {
       kotlinOptions {
           freeCompilerArgs += '-XXLanguage:+NewInference'
       }
   }
}
источник

ML

Mikhail Levchenko in Kotlin Community
Andrew Mikhaylov
Выбирай:
1. Выключить новый вывод типов в IDE: Preferences -> Kotlin Compiler -> uncheck "Enable new type inference algorithm for IDE analysis"
2. Включить новый вывод типов в гредле:
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile

buildscript {
   dependencies {
       classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.40'
   }
}

allprojects {
   tasks.withType(KotlinCompile).all {
       kotlinOptions {
           freeCompilerArgs += '-XXLanguage:+NewInference'
       }
   }
}
Если со вторым вариантом соберется - в рантайме не упадёт?
источник

ML

Mikhail Levchenko in Kotlin Community
Насколько это проверенная опция?
источник

AM

Andrew Mikhaylov in Kotlin Community
Не знаю, я пока не включал. Но судя по ютреку, в новом выводе типов и новые баги есть, и часть старых только в нём починена 🤷‍♂
источник

AM

Andrew Mikhaylov in Kotlin Community
При учёте, что существует новый инференс довольно давно, самые стрёмные вещи почти наверняка уже переловили.
источник

VS

Vladimir Sitnikov in Kotlin Community
Переслано от Vladimir Sitnikov
А как-нибудь можно дебажить сериализацию?

У меня вот такое возниает:

java.lang.ArrayIndexOutOfBoundsException: Index 1 out of bounds for length 1
at kotlinx.serialization.internal.PluginGeneratedSerialDescriptor.getElementName(PluginGeneratedSerialDescriptor.kt:102)
at kotlinx.serialization.internal.NamedValueEncoder.elementName(Tagged.kt:148)
at kotlinx.serialization.internal.NamedValueEncoder.getTag(Tagged.kt:146)
at kotlinx.serialization.internal.NamedValueEncoder.getTag(Tagged.kt:145)
at kotlinx.serialization.internal.TaggedEncoder.encodeLongElement(Tagged.kt:111)
at com.app.Tmp.write$Self(Event.kt:18)


@S
erializable
abstract class Event {
...
}

@Serializable
class Tmp: Event() {

И тестовый код

Json(JsonConfiguration.Stable.copy(prettyPrint = true))
.toJson(Tmp.se
rializer(), Tmp().apply {…})
источник

VS

Vladimir Sitnikov in Kotlin Community
В Tmp.serializer().descriptor оказываются только поля самого класса Tmp, а поля родительского класса вообще не упоминаются.

Как-то можно понять почему descriptor сгенерировался битый?
источник

AN

Alexander Nozik in Kotlin Community
Vladimir Sitnikov
Переслано от Vladimir Sitnikov
А как-нибудь можно дебажить сериализацию?

У меня вот такое возниает:

java.lang.ArrayIndexOutOfBoundsException: Index 1 out of bounds for length 1
at kotlinx.serialization.internal.PluginGeneratedSerialDescriptor.getElementName(PluginGeneratedSerialDescriptor.kt:102)
at kotlinx.serialization.internal.NamedValueEncoder.elementName(Tagged.kt:148)
at kotlinx.serialization.internal.NamedValueEncoder.getTag(Tagged.kt:146)
at kotlinx.serialization.internal.NamedValueEncoder.getTag(Tagged.kt:145)
at kotlinx.serialization.internal.TaggedEncoder.encodeLongElement(Tagged.kt:111)
at com.app.Tmp.write$Self(Event.kt:18)


@S
erializable
abstract class Event {
...
}

@Serializable
class Tmp: Event() {

И тестовый код

Json(JsonConfiguration.Stable.copy(prettyPrint = true))
.toJson(Tmp.se
rializer(), Tmp().apply {…})
@qwwdfsad ? Леонид куда-то выпилился. Видимо достали дурацкими вопросами.
источник