Size: a a a

Kotlin Community

2020 July 29

(

( in Kotlin Community
Алексей Овсянников
а кто-то может подсказать, как сейчас для kotlin compile-time штуки писать? Конкретно мне нужно дерево классов/интерфейсов, чтобы по нему построить нужную функциональность
капт+кодген?
источник

M

Malik in Kotlin Community
Алексей Овсянников
а кто-то может подсказать, как сейчас для kotlin compile-time штуки писать? Конкретно мне нужно дерево классов/интерфейсов, чтобы по нему построить нужную функциональность
compiler плагин можешь написать. Если особо информация по типам не нужна, то можешь использовать https://github.com/cretz/kastree
источник

AM

Andrew Mikhaylov in Kotlin Community
Либо napt сторонний, либо Kotlin Symbol Processing от гугла. Либо, если андроид, андроидно-гредловые
трансформации артифактов.
источник

АО

Алексей Овсянников... in Kotlin Community
ок, понял, спасибо
источник

OY

Oleg Yukhnevich in Kotlin Community
Alexander Nozik
Смотрю https://github.com/whyoleg/rsocket-kotlin. @why_oleg , очень хотим. Там правда столько кода, что я даже поревьюить не смогу толком.
Там есть pr в оф репу
Ждёт ревью)
Там пока конечно мало фич работает, но если всё пойдёт буду дальше развивать
На данный момент конечно перфоманс не супер (в частности думаю из-за io)
Так что если перфоманс важен, сейчас лучше сделать обёртку над jvm/js реализациями
источник

AN

Alexander Nozik in Kotlin Community
Oleg Yukhnevich
Там есть pr в оф репу
Ждёт ревью)
Там пока конечно мало фич работает, но если всё пойдёт буду дальше развивать
На данный момент конечно перфоманс не супер (в частности думаю из-за io)
Так что если перфоманс важен, сейчас лучше сделать обёртку над jvm/js реализациями
Я знаю, я его и увидел, так как мониторю тот issue. Нам там минимальные фичи нужны: просто отправка и прием. А вот про перформанс хотелось бы знать, насколько он проседает.
источник

OY

Oleg Yukhnevich in Kotlin Community
Alexander Nozik
Я знаю, я его и увидел, так как мониторю тот issue. Нам там минимальные фичи нужны: просто отправка и прием. А вот про перформанс хотелось бы знать, насколько он проседает.
Достаточно, когда последний раз проверял было где то в 10+ раз
Всё же netty buffers пока лучше работают чем ktor-io
Надо посмотреть, может если другие pool-ы использовать, не стандартные, может будет лучше
В rsocket-java вроде на всё direct buffers, а в ktor-io вроде нет
Но надо ещё раз будет попрофайлить позже
Надо будет добавить себе в репу 2 бенчмарка: Взять rsocket-java + flow/suspend обёртку маленькую написать, vs мою реализацию
Но смогу я это только на выходных
Так что пока можете сами
источник

AN

Alexander Nozik in Kotlin Community
Oleg Yukhnevich
Достаточно, когда последний раз проверял было где то в 10+ раз
Всё же netty buffers пока лучше работают чем ktor-io
Надо посмотреть, может если другие pool-ы использовать, не стандартные, может будет лучше
В rsocket-java вроде на всё direct buffers, а в ktor-io вроде нет
Но надо ещё раз будет попрофайлить позже
Надо будет добавить себе в репу 2 бенчмарка: Взять rsocket-java + flow/suspend обёртку маленькую написать, vs мою реализацию
Но смогу я это только на выходных
Так что пока можете сами
Не, ну 10 раз это очень много. ктор настолько проседать не может. Пока не супер-срочно. Но вот оно в проект надо, я думаю, подождать мерджа или чего-то на старом городить
источник

B

Beholder in Kotlin Community
Если использовать 1.4.0-RC идеевский плагин с 1.3.72 рантаймом (временно) - могут быть серьёзные проблемы?
источник

OY

Oleg Yukhnevich in Kotlin Community
Alexander Nozik
Не, ну 10 раз это очень много. ктор настолько проседать не может. Пока не супер-срочно. Но вот оно в проект надо, я думаю, подождать мерджа или чего-то на старом городить
Я и говорю, что основное предположение, это разные pool-ы для работы с байтиками, может если с ними поиграть, то станет лучше
Пока больше идея, чтобы оно всё же работало... С полным набором фич
Я как проверю это, то напишу
источник

AN

Alexander Nozik in Kotlin Community
Beholder
Если использовать 1.4.0-RC идеевский плагин с 1.3.72 рантаймом (временно) - могут быть серьёзные проблемы?
Работает все
источник

AM

Andrew Mikhaylov in Kotlin Community
Beholder
Если использовать 1.4.0-RC идеевский плагин с 1.3.72 рантаймом (временно) - могут быть серьёзные проблемы?
Да вроде всё ок.
источник

AM

Andrew Mikhaylov in Kotlin Community
В общем плагин обратно совместим с прошлыми версиями котлина в проекте, на деле с 1.4 плагином пока проблем с проектом на 1.3.7x не наблюдал.
источник

B

Beholder in Kotlin Community
А то в 1.3.72 плагине такую бесящую багу нашёл... Когда внутри run { } импорты криво работают
источник

КР

Кирилл Романенко... in Kotlin Community
Как описать лямбду внутри when?
Пытался вот так, не выходит
when (foo is Bar) {
   true -> { -> ... }
   false -> { -> ... }
}
источник

QH

Quantum Harmonizer in Kotlin Community
Кирилл Романенко
Как описать лямбду внутри when?
Пытался вот так, не выходит
when (foo is Bar) {
   true -> { -> ... }
   false -> { -> ... }
}
завернуть в ещё одни фигурные скобки
источник

КР

Кирилл Романенко... in Kotlin Community
Quantum Harmonizer
завернуть в ещё одни фигурные скобки
Тоже не помогло
источник

QH

Quantum Harmonizer in Kotlin Community
так?
when (foo is Bar) {
   true -> { { -> ... } }
   false -> { { -> ... } }
}
источник

КР

Кирилл Романенко... in Kotlin Community
Quantum Harmonizer
так?
when (foo is Bar) {
   true -> { { -> ... } }
   false -> { { -> ... } }
}
А, ясно почему не получалось
Я пытался сделать вот так
SomeClass(
   lambda = when (foo is Bar) {
       true -> { { -> ... } }
       false -> { { -> ... } }
   }
)
источник

QH

Quantum Harmonizer in Kotlin Community
так вроде то же самое
источник