Size: a a a

2020 January 11

AZ

Alex Zhukovsky in rust_offtopic
1. не помню такого
2. модели памяти жабы и донетане во всем совпадают
источник

P

Pavel in rust_offtopic
Alex Zhukovsky
1. не помню такого
2. модели памяти жабы и донетане во всем совпадают
уже вижу, что не совпадают:
источник

P

Pavel in rust_offtopic
в джаве нет понятия Read elimination
источник

P

Pavel in rust_offtopic
и порядок операций внутри одного метода соблюдается
источник

AZ

Alex Zhukovsky in rust_offtopic
Pavel
уже вижу, что не совпадают:
угу, был забавный доклад про утекание операции из под лока на АРМ
источник

AZ

Alex Zhukovsky in rust_offtopic
потому что там как раз ордеринг сильно слабее х86 и джит этим пользовался
источник

D

Dima in rust_offtopic
Pavel
в си у тебя это может изменить vtable, например (всякая магия register spill), в джаве у тебя либо просто может быть незамеченная запись (на настенных часах запись произошла раньше чтения, но нет цепочки happens-before, которая приводит к видимости этой записи считывающим потоком), или порванная запись для double и long (но не для мелких типов).
насчет vtable несовсем понятно, но совсем непонятно  как может быть не ub когда несоколько потоков пишут или читают из одной и той же памяти одновременно не атомарно
источник

AZ

Alex Zhukovsky in rust_offtopic
Dima
насчет vtable несовсем понятно, но совсем непонятно  как может быть не ub когда несоколько потоков пишут или читают из одной и той же памяти одновременно не атомарно
ты знаешь байку что при гцц при УБ запускал вместо твоей программы игру ханойские башни?
источник

P

Pavel in rust_offtopic
Alex Zhukovsky
угу, был забавный доклад про утекание операции из под лока на АРМ
ну, а в джаве модель памяти одинакова для любой платформы, как раз для кроссплатформенности и чтоб реордеринг арм, например, не влиял на работающий код
источник

D

Dima in rust_offtopic
Alex Zhukovsky
ты знаешь байку что при гцц при УБ запускал вместо твоей программы игру ханойские башни?
нет))
источник

P

Pavel in rust_offtopic
Dima
насчет vtable несовсем понятно, но совсем непонятно  как может быть не ub когда несоколько потоков пишут или читают из одной и той же памяти одновременно не атомарно
ты неправильно понимаешь, что значит UB
источник

AZ

Alex Zhukovsky in rust_offtopic
Dima
нет))
ну вот а он это делал. А в джаве такого не произойдет
источник

AZ

Alex Zhukovsky in rust_offtopic
Dima
нет))
источник

D

Dima in rust_offtopic
Pavel
ну, а в джаве модель памяти одинакова для любой платформы, как раз для кроссплатформенности и чтоб реордеринг арм, например, не влиял на работающий код
я все правильно понимаю что такое ub - undefined behaviour
источник

D

Dima in rust_offtopic
все что угодно
источник

AZ

Alex Zhukovsky in rust_offtopic
Pavel
ну, а в джаве модель памяти одинакова для любой платформы, как раз для кроссплатформенности и чтоб реордеринг арм, например, не влиял на работающий код
ну тут уже трейдофы. Дотнетеры решили вот так сделать, ну мб это к лучшему. СЛишком ограничивать вм тоже не всегда хорошо
источник

P

Pavel in rust_offtopic
UB это не "я знаю, что может произойти одно из A, B, C", это "я не знаю, что может произойти, мб я просто инкременчу счётчик из двух потоков, но поскольку это уб, может прилететь беспилотник и облить меня помоями, или отформатироваться диск, или котик умрёт"
источник

AZ

Alex Zhukovsky in rust_offtopic
получам PDP ассемблер который распространился и стал тормозить))
источник

AZ

Alex Zhukovsky in rust_offtopic
Dima
все что угодно
всё чтоугодно это всё что угодно
источник

AZ

Alex Zhukovsky in rust_offtopic
джава при записи дабла может
записать весь дабл
записать ничего
записать половину дабла
источник