@kotlin_lang

Страница 818 из 982
Vladislav
21.08.2018
11:18:58
Версия 0.x намекает на то что скорее всего нет

Vladislav
21.08.2018
11:19:35
Но мы хотим его в прод тянуть, пока допишем будет стабильным

Quantum Harmonizer
21.08.2018
11:19:58
Google
Vladislav
21.08.2018
11:20:21
Нууу. Может завтра апи поменяют.. Кто знает

Андрей
21.08.2018
11:23:52
Апну свой вопрос ?
val env = applicationEngineEnvironment { module { main() } // Private API connector { host = "127.0.0.1" port = 9090 } // Public API connector { host = "0.0.0.0" port = 8080 } } embeddedServer(Netty, env).start(true)Внутри applicationEngineEnvironment есть доступ к кофигу вроде, но сам не проверял

Mikhail
21.08.2018
11:24:34
Добрий день, ктор это vertx+kotlin+coroutines ?
с каких пор там вертекс? все же на нетти было

Axrorxo'ja
21.08.2018
11:26:07
с каких пор там вертекс? все же на нетти было
Ммм да, но сам по себя нетти очень низко урвенний ,по моему )

Mikhail
21.08.2018
11:26:32
вертикс тоже же на нетти

пофиг, надо туда свой сервер запихать =)

Axrorxo'ja
21.08.2018
11:28:27
Mikhail
21.08.2018
11:29:59
я недавно ковырял их новый асинхронный драйвер, там под капотом нетти, логично предположить что вертикс целиком на нем

да, там нетти, долго гуглить не пришлось

Mikhail
21.08.2018
11:51:56
А чо там, 1.2.61 вышел? где ченжлог глянуть?

Виктор
21.08.2018
11:55:40
А чо там, 1.2.61 вышел? где ченжлог глянуть?
Вышел, плагин обновился и на главной странице инкрементнули версию. Но чейнджлоги (по крайне мере, на гите) крайне часто запаздывают

Dibro
21.08.2018
12:08:23
А чо там, 1.2.61 вышел? где ченжлог глянуть?
https://github.com/JetBrains/kotlin/blob/1.2.60/ChangeLog.md

Google
Alexander
21.08.2018
12:34:11
Ничего особо интересного. Ждем 1.3

Sergey
21.08.2018
12:36:22
уже немного осталось)

Quantum Harmonizer
21.08.2018
12:36:35
RecentlyNullable — это что?

Alexander
21.08.2018
12:36:44
Барсик, еще капельку?

Quantum Harmonizer
21.08.2018
12:38:43
так есть же 1.3-M1, чего ждать?

Alexander
21.08.2018
12:40:10
Лень репозитории в конфиги добавлять

Mikhail
21.08.2018
12:44:18
RecentlyNullable — это что?
это в новом android sdk типа NonNull, который генерит wwarning, а не error

Quantum Harmonizer
21.08.2018
12:45:43
Vladislav
21.08.2018
13:23:00
А у нас тут есть авторы Ktor?

Mikhail
21.08.2018
13:24:01
я думаю, быстрее их найти в slack

Alexander
21.08.2018
13:40:01
У них там ~~гнездо~~ канал

И мардаун работает

Vladislav
21.08.2018
14:28:41
в общем насколько я понял, embeddedServer вообще конфиг не читает, надо его руками грузить и значения из конфига поставлять в инициализацию embeddedServer

Andrew
21.08.2018
16:08:37
Вот кстати тут недавно поднимался вопрос о гарантии того, что лямбда ничего не захватывает. В Kotlin/Native такая гарантия требуется для staticCFunction, но это интринсик и он может себе позволить дополнительные проверки :)

Stanislav
21.08.2018
17:54:19
Для работы с датами нужно использовать java класс Date из java.util?

Alexander
21.08.2018
17:55:14
Смотря где. Если нет приязки к фрэймворку, лучше LocalDate из java.time

Stanislav
21.08.2018
17:55:43
Спасибо

Alexander
21.08.2018
17:56:48
Вот есть у меня такая фтука: fun List<Double>.cumulativeSum() и еще две таких же для Int и Long. Получаю platform declaration clash. Как победить?

Google
Alexander
21.08.2018
18:00:05
Щас попробую

Alexander
21.08.2018
18:01:03
Заинлайнить не работает, инлайн игнроируется почемуто

Вроде компилится

Bogdan
21.08.2018
18:03:47
Вроде компилится
@JvmName - только если не нужен интертоп с джавой

?

Alexander
21.08.2018
18:11:35
Ну не очень нужен. Я кстати не до конца понимаю, почему clash вообще происходит. Вроде в аналогичных случаях из stdlib все работает

Вот тут например: https://github.com/JetBrains/kotlin/blob/feb5a3040fcc988c15f23f05b0f389668deefbaa/libraries/stdlib/common/src/generated/_Collections.kt#L1510

Alexander
21.08.2018
18:15:12
Это я понимаю. Не понимаю, почему в stdlib работает

Alexander
21.08.2018
18:15:41
public fun Iterable<Double>.max(): Double? {

Alexander
21.08.2018
18:15:54
ну и так далее

Andrew
21.08.2018
18:16:10
можно скрин, с телефона неудобно
@SinceKotlin("1.1") public fun Iterable<Double>.max(): Double? { ... } @SinceKotlin("1.1") public fun Iterable<Float>.max(): Float? { ... } Тоже интересно стало, как так.

Bogdan
21.08.2018
18:19:03
Это я понимаю. Не понимаю, почему в stdlib работает
а ты в одном файле сделал функции ? В разных не должно. А конкреттно почему у них так, они разрабы)

Alexander
21.08.2018
18:19:33
В одном. То что они разработчики, не значит, что у них магия

Bogdan
21.08.2018
18:20:16
Alexander
21.08.2018
18:20:23
У них там есть аннотация @file:kotlin.jvm.JvmMultifileClass, может в ней дело?

Andrew
21.08.2018
18:20:53
У них там есть аннотация @file:kotlin.jvm.JvmMultifileClass, может в ней дело?
Она по-моему позволяет нескольким kt-файлам сливаться в один JVM-класс.

Bogdan
21.08.2018
18:21:01
У них там есть аннотация @file:kotlin.jvm.JvmMultifileClass, может в ней дело?
это вроде, что разные файлы объеденятся в один класс

Google
Alexander
21.08.2018
18:21:20
то, что в байткод идет без исходников

В том же файле сумма сделана через JvmName

Dibro
21.08.2018
18:22:52
а напомните, генерики у аргументов стираются же?

Alexander
21.08.2018
18:23:50
да

Andrew
21.08.2018
18:25:31
В одном. То что они разработчики, не значит, что у них магия
Точно несколько раз уже приводили примеры, что в stdlib действительно есть магия, которая обычным смертным недоступна. Припоминается что-то на тему мухлежа с variance в методах стандартных коллекций, хитрая аннотация, влияющая на выбор перегруженного метода, ну и контракты, которые долгое время вообще были чисто внутренней фишкой.

а напомните, генерики у аргументов стираются же?
Частично решаемо с помощью inline fun <reified T>

Admin
ERROR: S client not available

Bogdan
21.08.2018
18:27:04
Частично решаемо с помощью inline fun <reified T>
+, но @noraltavir говорит что инлайн не работает

Alexander
21.08.2018
18:27:27
А что реифицировать, дженерика-то нет

Andrew
21.08.2018
18:28:46
Здесь нечего, конечно, я просто стандартное дополнение к вопросу об erasure оставил.

Bogdan
21.08.2018
18:30:43
А что реифицировать, дженерика-то нет
ну есть один варянт сделать так что бы появился, но это будет хуже чем JvmName

Alexander
21.08.2018
18:31:38
Ну JvmName - это неплохой вариант. Библиотека только для котлины и ориентирована на мультиплатформу

Andrew
21.08.2018
18:33:29
И байт-код, как назло, не показывает IDEA.

Bogdan
21.08.2018
18:33:50
Ну JvmName - это неплохой вариант. Библиотека только для котлины и ориентирована на мультиплатформу
JvmName как раз привязан к платформе, это скорей что бы покрыть такие случаи как сейчас, еще название классов

или в том месте ?

Andrew
21.08.2018
18:36:14
Я понял, тело этих .max() определено в common-модуле, там JVM-байткода и не будет.

Bogdan
21.08.2018
18:36:14
И байт-код, как назло, не показывает IDEA.
я думаю нада скомпилить и пройтись https://github.com/ingokegel/jclasslib

Google
Andrew
21.08.2018
18:36:32
Эт я уже сегодня не успею.

Bogdan
21.08.2018
18:37:07
это на будущие, самому интересно, но уже ближе к выходным смогу проверить

Dmitry
21.08.2018
18:59:12
Ну не очень нужен. Я кстати не до конца понимаю, почему clash вообще происходит. Вроде в аналогичных случаях из stdlib все работает
Platform declaration clash репортится когда *полностью* совпадают JVM-сигнатуры, в которые входит и return-тип тоже. Поэтому max в stdlib работает -- у него return-типы разные. Так что тут мы чисты, никакой эксклюзивной стдлибной магии ?

Vladimir
21.08.2018
19:03:57
Не знал, что в котлине можно делать методы с одинаковыми именем и типами аргументов после стирания дженериков, но разным возвращаемым типом

Dmitry
21.08.2018
19:07:52
Если различаются, то надо больше кода посмотреть :)

Vladimir
21.08.2018
19:08:04
дак у товарища в его примере типы возвращаемых значений тоже разные очевидно
Видимо, он их не указал, ожидая, что оно всё равно будет работать как в джаве)

Alexander
21.08.2018
19:08:45
Не отличаются. Там итерабли с разными дженериками

Vladimir
21.08.2018
19:11:00
Не отличаются. Там итерабли с разными дженериками
По теме исходного вопроса: мне кажется, JvmName с суффиксом Int/Double/etc - вполне норм решение

Vladimir
21.08.2018
19:11:23
Bogdan
21.08.2018
19:11:50
какая разница, jvm ведь
джава запрещает

JVm нет

@kotlin.jvm.JvmName("sumOfDouble") public fun Iterable<Double>.sum(): Double { ну вот тут типы различаются

Dibro
21.08.2018
19:12:14
джава запрещает
тогда как это будет выглядеть в декомпайле?

Vladimir
21.08.2018
19:12:15
какая разница, jvm ведь
Разница в том, что сигнатуры методов в JVM разные, но Java такое запрещает во всех проявлениях

Bogdan
21.08.2018
19:12:27

Страница 818 из 982