
Boris
13.02.2017
12:31:57
сложно себе представить как это реализовать

Quantum Harmonizer
13.02.2017
12:32:12
инвалидировать весь скомпилированный код)
прям на стеке

Igor
13.02.2017
12:35:13
Сейчас переслушиваю "разб.полетов CLR vs JVM" и там утверждают что в .NET нет ничего похожего на xmx.
Получается там и сжатых ссылок не может быть.

Google

Руслан
13.02.2017
12:36:54
Ну в джаве то есть отдельный ключик еще
который http://docs.oracle.com/cd/E15289_01/doc.40/e15062/optionxx.htm#BABCDECI

Nikolai
13.02.2017
12:46:10
А в стандартной поставке Котлина нет никаких событий (типа делегатов/евентов C#) ?

Tony
13.02.2017
12:46:48

Boris
13.02.2017
12:47:25

Nikolai
13.02.2017
12:48:17
Ну типа создал объект, в который я могу добавлять подписчиков и всех их потом оптом файрить

Boris
13.02.2017
12:48:58
ну, это вроде не высшая математика, зачем для этого нужны средства языка?

Руслан
13.02.2017
12:49:45
Есть конечно в джаве Observable, но лучше возьми либу)

Igor
13.02.2017
12:50:02

Nikolai
13.02.2017
12:50:41

Boris
13.02.2017
12:51:17

Nikolai
13.02.2017
12:51:44
Ну дааа) но есть нюансы)

Google

Глеб
13.02.2017
12:52:40
Привет! А может кто-нибудь мне объяснить, зачем нужны inline-функции? Я что-то не понимаю, какие у них приемущества по отношению к обычным, как и где ими пользоваться.

Igor
13.02.2017
12:53:07

Nikolai
13.02.2017
12:53:45
Нууу считается что если функцию заинлайнили то в рантайме не будет оверхеда на её вызов, и да, почемуто в котлине это необходимое условия для reified generics у функций

Quantum Harmonizer
13.02.2017
12:54:09

Boris
13.02.2017
12:54:22
но inline не нужно использовать пытаясь оптимизировать обычные функции, только если есть очевидный профит вроде возможности инлайна лямбда-параметра

Глеб
13.02.2017
12:55:46
Спасибо, ребята, пошел смотреть, что такое reified generics.

Boris
13.02.2017
12:56:00
потому что с оптимизацией неплохо справляется jit

Kirill
13.02.2017
12:57:47

Quantum Harmonizer
13.02.2017
12:58:08

Kirill
13.02.2017
12:59:27

Глеб
13.02.2017
12:59:37
Спасибо!

Igor
13.02.2017
13:00:03

Boris
13.02.2017
13:00:27
T::class.createInstance() в 1.1

Quantum Harmonizer
13.02.2017
13:00:39

Boris
13.02.2017
13:00:56

Nikolai
13.02.2017
13:00:57

Aliaksei
13.02.2017
13:03:04
А что там в котлине как аналог stream().limit(n)?

Igor
13.02.2017
13:03:06
ОК, я думал у ты хочешь предложить хорошую альтернативу (имплементацию на уровне JVM) именно для дженериков.

Google

Nikolai
13.02.2017
13:03:24

Boris
13.02.2017
13:03:51

Aliaksei
13.02.2017
13:03:56
во, сижу вспомниаю... Спасибо

Nikolai
13.02.2017
13:04:44

Igor
13.02.2017
13:05:25
Ну проект Valhalla может поможет (году так в 2050)

Kirill
13.02.2017
13:05:59

Quantum Harmonizer
13.02.2017
13:06:25
WhateverClass::class.java.newInstance()
Это не нормальный вызов конструктора, не new + incokespecial <init>, это reflections, не стоит примешивать это к заслугам inline/reified.

Nikolai
13.02.2017
13:08:38
А кстати котлиновские рефрекшены не умеют вызывать конструкторы?

Quantum Harmonizer
13.02.2017
13:08:59
T::class.createInstance() в 1.1

Nikolai
13.02.2017
13:09:23
А! Крутяк! Параметры можно будет передавать?)

Boris
13.02.2017
13:09:33

Nikolai
13.02.2017
13:09:39
офигенно!

Quantum Harmonizer
13.02.2017
13:09:58
офигенно!
А что крутого? Чем отличается от newInstance? :)

Boris
13.02.2017
13:10:17

Nikolai
13.02.2017
13:10:18
Нууу в ньюинстанс нельзя передавать параметры
Ну может он ещё сможет в компайл тайм конструктор найти в случае инлайна

Boris
13.02.2017
13:11:16
String::class.primaryConstructor?.call() типа такого зато можно написать
в call можно параметры передать

Google

Nikolai
13.02.2017
13:12:03
эт гуд
ревлекшен в Котлине всетаки куда более человечный чем в жабе

Boris
13.02.2017
13:12:39
да, но это в 1.1 только

Kirill
13.02.2017
13:12:44

Boris
13.02.2017
13:12:48
в 1.0 был сильно хуже

Nikolai
13.02.2017
13:12:58
Но всеравно лучше чем в джаве)

Quantum Harmonizer
13.02.2017
13:13:09

Nikolai
13.02.2017
13:13:21
я хз, я просто мечтаю)

Quantum Harmonizer
13.02.2017
13:13:22

Boris
13.02.2017
13:13:28
при переходе на 1.1 удалил весь файлик reflect.kt

Kirill
13.02.2017
13:16:06

Quantum Harmonizer
13.02.2017
13:16:26

Kirill
13.02.2017
13:16:43
ну да. я имел ввиду что с reified можно так делать ничего не передавая. удобнее.

Boris
13.02.2017
13:17:39
основное удобство, конечно, это когда используешь эту штуку с выводом типов
если буквально передавать, то по большому счету не так-то и важно в параметр или дженериком
т.е. если пишешь val component: SomeComponent by inject() то удобно, что за тебя тип выведется и подставится

Igor
13.02.2017
13:20:20
Кстати, помню Бреслав рассказывал что в Kotlin могут сделать свои Value типы.
Что-нибудь новое слышали об этом?

Quantum Harmonizer
13.02.2017
13:20:58
звучит знакомо)

Boris
13.02.2017
13:21:00

Sergey
13.02.2017
13:21:31

Google

Sergey
13.02.2017
13:22:00
Value types
We plan to support Project Valhalla once it is released as part of the JDK

Boris
13.02.2017
13:22:12
не, я так понял, что были идеи как сделать value-типы для одногоз начения без поддержки в jvm

Sergey
13.02.2017
13:22:32
а в чем от них профит? offheap?

Boris
13.02.2017
13:22:37
чтобы зампрувить делегаты
сейчас делегаты требуют создания лишенго инстанса
с value-типами можно было бы сэкономить

Sergey
13.02.2017
13:24:02
или делают обертку и ты ее расширяешь?

Boris
13.02.2017
13:24:32
делегат это просто объект у которого вызываются методы get и set
для получения значения
которое будет использоваться фактически

Sergey
13.02.2017
13:25:19
https://kotlinlang.org/docs/reference/delegation.html ты не об этом, верно?

Boris
13.02.2017
13:25:21
и его можно использовать в режиме синглтона, но обычно делегаты хранят состояние
нет, я про делегаты, которые для полей

Sergey
13.02.2017
13:25:55
понял

Boris
13.02.2017
13:25:59
и с 1.1 для локальных переменных еще

Tony
13.02.2017
15:06:50
fun getList(): List<Int> {
return arrayListOf(1, 5, 2)
}
как бы вы вернули отсортированный по убыванию массив?
то есть будет что-то типа