@kotlin_lang

Страница 766 из 982
Beholder
21.07.2018
21:25:36
нет никаких гарантий

сама java никакая не endian, вот только интерфейс DataOutput big endian

но с новыми NIO буферами оно там может быть любым

Rikland
21.07.2018
22:02:20
Google
Beholder
21.07.2018
22:06:48
bigendian засунь 1цу в int и посмотри
и как именно смотреть?

Rikland
21.07.2018
22:17:36
Сдвинь вправо число например, если чисто увеличится то значит big endian, если уменьшится значит little

Если я все правильно помню

Блин где-то был метод хороший.

Вот так ещё можно. BigInteger.valueOf(1695609641).toByteArray()

Beholder
21.07.2018
22:28:07
вправо это всегда уменьшится :)

BigInteger это не вся Java

Rikland
21.07.2018
22:52:58
0000_0001b = 1 для big endian сдвиг вправо даст на big endian уменьшение. Для little endian 1000_0000b сдвиг вправо даст увеличение числа.

Vladimir
22.07.2018
05:18:22
0000_0001b = 1 для big endian сдвиг вправо даст на big endian уменьшение. Для little endian 1000_0000b сдвиг вправо даст увеличение числа.
LE/BE влияет только на порядок байт, но не на операции сдвига. В нативном коде есть hton()/ntoh(), чтобы не париться на эту тему.

Alexander
22.07.2018
06:00:20
Порядок байт не влияет на операции сдвига, только на запись. Java по-умолчанию подразумевает BigEndian, но в NIO буферах можно менять. конвертировать переменные напрямую в байты - не очень хорошая идея, особенно если хочется это потом куда-то передавать. Лучше действительно взять код из kotlinx.io

в смысле подключить как библиотеку

Rikland
22.07.2018
09:42:08
LE/BE влияет только на порядок байт, но не на операции сдвига. В нативном коде есть hton()/ntoh(), чтобы не париться на эту тему.
ок. впринципе так, пока ты в нативный код структуры данных не начнешь отдавать из java

Vladimir
22.07.2018
13:36:30
ок. впринципе так, пока ты в нативный код структуры данных не начнешь отдавать из java
Ну структуры напрямую всё равно трудно передавать - выравнивание и порядок полей никто не гарантирует (насколько я знаю).

Google
Rikland
22.07.2018
13:37:45
Ну структуры напрямую всё равно трудно передавать - выравнивание и порядок полей никто не гарантирует (насколько я знаю).
можно передавать в java из native смещения и размеры полей и присваивать по полям (это конечно жесть, но можно)

Alexander
22.07.2018
18:42:44
Не надо так делать.

Roman
23.07.2018
05:47:08
Товарищи, что делать когда Котлин не видит Class. У меня часть кода на Kotlin другая на java

Roman
23.07.2018
05:50:04
javaClass
Тоже не видит

Красным пишет

Не собирает

Alexandr
23.07.2018
05:57:18
код давай сюда

Bogdan
23.07.2018
06:04:44
Alexander
23.07.2018
06:08:46
Если пишет красным, значит или это многомодульная сборка и что-то не так с зависимостями, или просто импорты не прописаны.

Bogdan
23.07.2018
06:11:09
Кто-то знает что-то про поддержку 9-ой жабы (модули) в котлине?

Alexandr
23.07.2018
06:11:47
на сколько слышал нет её еще

есть 2 таргета, jvm6 и jvm8

Гадкий
23.07.2018
06:12:51
Товарищи, что делать когда Котлин не видит Class. У меня часть кода на Kotlin другая на java
Наверно не подключен Kotlin gradle plugin или ещё какие-то зависимости для Kotlin

Bogdan
23.07.2018
06:15:48
есть 2 таргета, jvm6 и jvm8
Это то понятно, хотелось бы услышать новости, да и таргет будет уже на 11, имхо

Rikland
23.07.2018
06:31:38
Не надо так делать.
А почему бы и нет, если у тебя размеры полей разные. В зависимости от битности.

Alexander
23.07.2018
06:33:13
Не надо копировать поле в поле. Надо не полениться и сделать нормальный сериализатор.

Rikland
23.07.2018
06:33:48
Не надо так делать.
Например в Linux в некоторых API пишут просто long, size_t, ssize_t,

Не надо копировать поле в поле. Надо не полениться и сделать нормальный сериализатор.
А на основе какой информации ты будешь в нативный код отдавать? Откуда смещения полей возьмёшь?

Google
Alexander
23.07.2018
06:34:58
Это то понятно, хотелось бы услышать новости, да и таргет будет уже на 11, имхо
Недавно обсуждение было на форуме. Лень искать. Не могут портировать стандартную библиотеку пока анродид этого не умеет, но возможно сделают параллельные артефакты с модулями.

Bogdan
23.07.2018
06:35:04
не слышал. где почитать?
Про что ? Почему 11 ? Ну LTS version

Alexander
23.07.2018
06:35:47
Например в Linux в некоторых API пишут просто long, size_t, ssize_t,
Смещение гвоздями прибиты к сериализатору. Не надо брать их из класса аля С

Alexander
23.07.2018
06:36:53
Про что ? Почему 11 ? Ну LTS version
Потому что если поддерживать, то последнюю версию. Но вообще, 11 от 9 в этом смысле вообще ничем не отличается

Alexander
23.07.2018
06:37:13
Спасибо за инфу
Нашел: https://discuss.kotlinlang.org/t/kotlin-support-for-java-9-module-system/2499/16

Rikland
23.07.2018
06:38:16
Смещение гвоздями прибиты к сериализатору. Не надо брать их из класса аля С
Не правда (: у тебя есть выравнивание, плюс у тебя в зависимости от компилятора в нативной половинке размеры long могут быть разные

Alexander
23.07.2018
06:38:20
11 от 9 отличается на уровне кода по-моему только введением частичного вывода типов, но нам-то оно не надо

Не правда (: у тебя есть выравнивание, плюс у тебя в зависимости от компилятора в нативной половинке размеры long могут быть разные
А не надо брать размеры из компилятора. В формате сериализации строго написано сколько байт на что. Выравнивание не нужно, смещения фиксированы. Я поэтому и говорю, что не надо использовать классы как основу для сериализации, слишком много мест, где можно напороться.

Bogdan
23.07.2018
06:41:33
Admin
ERROR: S client not available

Alexander
23.07.2018
06:42:15
Там чего-то добавили с константам связанное, но обратную совместимость не ломает

Bogdan
23.07.2018
06:42:48
Не правда (:
Ну джава порой много теряет на выравнивании, меняет местами переменные

Alexander
23.07.2018
06:44:42
Я же говорю про нормальную сериализацию с обеих сторон.

Bogdan
23.07.2018
06:45:46
Смещения зависят от того какое выравнивание в структуре на стороне C
В структуре можно нагло указать сколько выделить под поле, с этим могут быть проблемы, но я не спец

Google
Rikland
23.07.2018
06:49:15
Я же говорю про нормальную сериализацию с обеих сторон.
У тебя есть ядро Linux в нем есть ipc, там есть структуры для настройки ipc, в ней может быть указан long, но если у тебя компилятор считает что long = 4 || 8 смещение следующего поля будет разное. Как ты из Java узнаешь это смещение?

Rikland
23.07.2018
06:52:24
Размер класса
При чем здесь класс, ядро пока не объектно ориентировано.

Roman
23.07.2018
06:52:45
Можно ли в when проверить на два эксепшена сразу ? что-то вроде val message = when(e.cause) { is FirstException, SecondException -> "bla-bla-bla" }

Roman
23.07.2018
07:00:08
Rikland
23.07.2018
07:00:13
Можно конечно перенести генерацию смещений на этап компиляции имеются ввиду написать такой код на C, который на этапе компиляции будет генерировать класс со смещениями для Java.

Alexander
23.07.2018
07:00:19
Сочувствую

Konstantine
23.07.2018
09:47:53
Хм, я думал котлингвский @Deprecated лишь ссылка на джавовский, а оказывается в джаве даже нельзя месседж проставить :(

Или есть варианты?

Quantum Harmonizer
23.07.2018
09:48:53
Или есть варианты?
/** @deprecated message */

Pavel Shackih
23.07.2018
09:49:28
В джаве в javadoc есть специальная нотация для этого

Евгений
23.07.2018
09:49:36
Всем привет. Пытаюсь тут старенький проект не свой поднять с колен, а он мне вот так ругается > Failed to apply plugin [id 'kotlin2js'] > Cannot add extension with name 'kotlin', as there is an extension already registered with that name. В какю сторону копать не подскажете?

это gradle

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