Size: a a a

2020 January 11

P

Pavel in rust_offtopic
Alex Zhukovsky
спека дотнета точно так же фиксирует что происходит при записи лонгов на всех совместимых рантаймах
а, это значит Виктор плохо разбирается и запутывает меня
источник

AZ

Alex Zhukovsky in rust_offtopic
Вот про валатилы и некоторые гарантии, например
источник

VS

Victor Sapiens in rust_offtopic
Pavel
а, это значит Виктор плохо разбирается и запутывает меня
Это ты меня запутал. У вас там точно сказано как будет себя вести long на 32 и 64 битой системе? Да или Нет? Да я Java вообще не знаю.
источник

ch

central hardware in rust_offtopic
Victor Sapiens
Это ты меня запутал. У вас там точно сказано как будет себя вести long на 32 и 64 битой системе? Да или Нет? Да я Java вообще не знаю.
там же написано вроде что он должен вести себя везде одинаково
источник

VS

Victor Sapiens in rust_offtopic
Alex Zhukovsky
не думаю, но это не входит в рамки объянение. ВМ - стандартизована
Тобишь есть у них таки ежиный стандарт на все VM? Тогда почему Павел говорит что на разных VM по разному и их куча? Вы меня в конец запутали.
источник

P

Pavel in rust_offtopic
Victor Sapiens
Это ты меня запутал. У вас там точно сказано как будет себя вести long на 32 и 64 битой системе? Да или Нет? Да я Java вообще не знаю.
у вас написано, как будет вести лонг на 1,2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22 битных системах? почему только этих две?
источник

ch

central hardware in rust_offtopic
central hardware
там же написано вроде что он должен вести себя везде одинаково
единственное из разного поведения я только встретил что есть ключевое strictfp и все
источник

P

Pavel in rust_offtopic
Victor Sapiens
Тобишь есть у них таки ежиный стандарт на все VM? Тогда почему Павел говорит что на разных VM по разному и их куча? Вы меня в конец запутали.
везде одинаково -- некорректно синхронизированная программа может не работать, правильно синхронизированная -- работает
источник

VS

Victor Sapiens in rust_offtopic
Pavel
у вас написано, как будет вести лонг на 1,2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22 битных системах? почему только этих две?
Да или Нет? Я простой и конкретный вопрос задал.
источник

P

Pavel in rust_offtopic
Victor Sapiens
Да или Нет? Я простой и конкретный вопрос задал.
открываешь спеку и читаешь
источник

P

Pavel in rust_offtopic
17й раздел
источник

VS

Victor Sapiens in rust_offtopic
Pavel
открываешь спеку и читаешь
Ясно все с тобой.
источник

AZ

Alex Zhukovsky in rust_offtopic
Pavel
открываешь спеку и читаешь
скажи "да"
источник

P

Pavel in rust_offtopic
Victor Sapiens
Ясно все с тобой.
да, я не хочу с телефона тебе пруфы показывать, думаю, ты сам сможешь найти все ответы за полчаса внимательного чтения спеки, кроме того, поиск в pdf/html работает. Возможно тебя особенно заинтересует последний раздел 17й главы, про long и double, там всего одна страница
источник

P

Pavel in rust_offtopic
Alex Zhukovsky
скажи "да"
не могу, в джаве вм как абстракция не настолько сильно течёт, чтоб спека была платформенного-специфичной
источник

P

Pavel in rust_offtopic
3 миллиарда устройств не могут ошибаться
источник

VS

Victor Sapiens in rust_offtopic
Pavel
3 миллиарда устройств не могут ошибаться
17.7. Non-Atomic Treatment of double and long
For the purposes of the Java programming language memory model, a single write to a non-volatile long or double value is treated as two separate writes: one to each 32-bit half. This can result in a situation where a thread sees the first 32 bits of a 64-bit value from one write, and the second 32 bits from another write.
Writes and reads of volatile long and double values are always atomic.
Writes to and reads of references are always atomic, regardless of whether they are implemented as 32-bit or 64-bit values.
Some implementations may find it convenient to divide a single write action on a 64-bit long or double value into two write actions on adjacent 32-bit values. For efficiency's sake, this behavior is implementation-specific; an implementation of the Java Virtual Machine is free to perform writes to long and double values atomically or in two parts.
Implementations of the Java Virtual Machine are encouraged to avoid splitting 64-bit values where possible. Programmers are encouraged to declare shared 64-bit values as volatile or synchronize their programs correctly to avoid possible complications.
источник

AZ

Alex Zhukovsky in rust_offtopic
Pavel
не могу, в джаве вм как абстракция не настолько сильно течёт, чтоб спека была платформенного-специфичной
Переформулирую вопрос "запись лонгов на 32 и 64 битах без синхронизации из разных потоков - уб или нет"
источник

G

Gymmasssorla in rust_offtopic
@Psilon

https://www.youtube.com/playlist?list=PLbgaMIhjbmEnaH_LTkxLI7FMa2HsnawM_
https://www.youtube.com/playlist?list=PLbgaMIhjbmElia1eCEZNvsVscFef9m0dm
https://www.youtube.com/playlist?list=PLbgaMIhjbmEn64WVX4B08B4h2rOtueWIL

Нашёл сборник лекций того автора, который написал "Теория категорий для программистов". Его начал смотреть и параллельно Хаскелль учу. В Хаскелль-чате говорят, что лекции более полны, чем книга, лично мне больше понравились. Начиная со второго плейлиста уже дебри идут.
источник

AZ

Alex Zhukovsky in rust_offtopic
и судя по тому что ты вчера писал  - ответ однозначный
источник