Size: a a a

Kotlin Community

2020 August 31

с#

саша сок #KotlinGang... in Kotlin Community
Alexander Nozik
Можно, там есть implicitReceiver
ну это в каждом файле писать надо 😔😔
источник

AN

Alexander Nozik in Kotlin Community
нет, это в script definition один раз сделать
источник

AN

Alexander Nozik in Kotlin Community
источник

с#

саша сок #KotlinGang... in Kotlin Community
а подсказывать в идее не будет же
источник

AN

Alexander Nozik in Kotlin Community
саша сок #KotlinGang
а подсказывать в идее не будет же
Ну конкретно здесь нет. Для того, чтобы была интеграция, надо делать script definition, это я пока не умею, но машинерия для этого уже есть
источник

с#

саша сок #KotlinGang... in Kotlin Community
хорошо, я тогда чтобы не страдать сделаю просто module и туда буду ещё может какие данные передавать

а вот если перед стартом программы таких скриптов 20 запускать, что по производительности ?
источник

AN

Alexander Nozik in Kotlin Community
саша сок #KotlinGang
хорошо, я тогда чтобы не страдать сделаю просто module и туда буду ещё может какие данные передавать

а вот если перед стартом программы таких скриптов 20 запускать, что по производительности ?
Ну если не поднимать каждый раз JVM для них, то нормально. Вообще, есть в слаке канал #sctipting, в котором все это обсуждается. Там к сожалению один человек за все отвечает, но зато отчевает хорошо.
источник

AN

Alexander Nozik in Kotlin Community
Так, а кто мне может объяснить вот это:
e: D:\Work\Projects\dataforge-control\demo\src\main\kotlin\hep\dataforge\control\demo\DemoControllerView.kt: (3, 30): Class 'hep.dataforge.context.ContextAware' is compiled by a new Kotlin compiler backend and cannot be loaded by the old compiler

Мне казалось, что байткод JVM и есть байткод JVM. Почему нельзя из не-IR использовать IR?
источник

AM

Andrew Mikhaylov in Kotlin Community
Alexander Nozik
Так, а кто мне может объяснить вот это:
e: D:\Work\Projects\dataforge-control\demo\src\main\kotlin\hep\dataforge\control\demo\DemoControllerView.kt: (3, 30): Class 'hep.dataforge.context.ContextAware' is compiled by a new Kotlin compiler backend and cannot be loaded by the old compiler

Мне казалось, что байткод JVM и есть байткод JVM. Почему нельзя из не-IR использовать IR?
Может, new compiler backend эмитит IR, не дособирая его дальше в байт-код JVM? Вообще предупреждали же, что либы, собранные с новым бекендом, не получится в код со стпрым бекендом подключить, ЕМНИП.
источник

AN

Alexander Nozik in Kotlin Community
Andrew Mikhaylov
Может, new compiler backend эмитит IR, не дособирая его дальше в байт-код JVM? Вообще предупреждали же, что либы, собранные с новым бекендом, не получится в код со стпрым бекендом подключить, ЕМНИП.
это про JS было. И там это терпимо, потому что либ на K-JS в принципе не много. Для JVM это уже будет очень больно
источник

KT

Kirill Timofeev in Kotlin Community
Alexander Nozik
Так, а кто мне может объяснить вот это:
e: D:\Work\Projects\dataforge-control\demo\src\main\kotlin\hep\dataforge\control\demo\DemoControllerView.kt: (3, 30): Class 'hep.dataforge.context.ContextAware' is compiled by a new Kotlin compiler backend and cannot be loaded by the old compiler

Мне казалось, что байткод JVM и есть байткод JVM. Почему нельзя из не-IR использовать IR?
на всякий случай, а версии классфайлов одинаковые?
источник

AM

Andrew Mikhaylov in Kotlin Community
Alexander Nozik
это про JS было. И там это терпимо, потому что либ на K-JS в принципе не много. Для JVM это уже будет очень больно
Понял-принял
источник

AN

Alexander Nozik in Kotlin Community
Kirill Timofeev
на всякий случай, а версии классфайлов одинаковые?
Версия JDK одинаковая. Просто у меня либа билдится с IR, а демка для нее без IR/
источник

KT

Kirill Timofeev in Kotlin Community
Alexander Nozik
Версия JDK одинаковая. Просто у меня либа билдится с IR, а демка для нее без IR/
тогда no idea
источник

AM

Andrew Mikhaylov in Kotlin Community
Alexander Nozik
это про JS было. И там это терпимо, потому что либ на K-JS в принципе не много. Для JVM это уже будет очень больно
А в BOTH публикуются оба варианта, и разруливается потом гредловой метадатой, или я сильно много хочу?
источник

AN

Alexander Nozik in Kotlin Community
Короче, если этот запрет действительно есть, это просто фатальная проблема будет при переходе к IR. @ilmirus, ты там еще живой? Можешь прокомментировать?
источник

AN

Alexander Nozik in Kotlin Community
Andrew Mikhaylov
А в BOTH публикуются оба варианта, и разруливается потом гредловой метадатой, или я сильно много хочу?
Да, в JS он публикует оба варианта. Но проблема в том, что IR может использовать только IR, а Legacy только Legacy, поэтому перекрестное опыление не возможно. Надо перекомпилирвоать все библиотеки. Лично я просто дропаю Legacy mode. Но я повторюсь, в JS это не так больно просто потому, что либ еще очень мало. В K-JVM это себе сложно представить
источник

AN

Alexander Nozik in Kotlin Community
Просто вот адопчу я сейчас IR и что? никто не сможет моей либой пользоваться?
источник

OY

Oleg Yukhnevich in Kotlin Community
Alexander Nozik
Просто вот адопчу я сейчас IR и что? никто не сможет моей либой пользоваться?
https://kotlinlang.org/docs/reference/whatsnew14.html#new-jvm-ir-backend
You can use code compiled by the new JVM IR backend only if you've enabled the new backend. Otherwise, you will get an error. Considering this, we don't recommend that library authors switch to the new backend in production.

это для jvm ir - там нет вариант both, как в js
источник

AN

Alexander Nozik in Kotlin Community
Oleg Yukhnevich
https://kotlinlang.org/docs/reference/whatsnew14.html#new-jvm-ir-backend
You can use code compiled by the new JVM IR backend only if you've enabled the new backend. Otherwise, you will get an error. Considering this, we don't recommend that library authors switch to the new backend in production.

это для jvm ir - там нет вариант both, как в js
thanks. Не увидел дисклеймер. Ну тогда откатываюсь
источник