Size: a a a

2020 June 22

ПК

Побитый Кирпич... in pro.cxx
Serg
на x86 баръеры хардварные и самые строгие, поэтому не нужны дополнительные иструкция от компилятора
И судя по msdn на x86 тоже как то влияние оказывает сверх того что гарантирует стандарт. Мой поинт был в том, что полагаться на это нельзя, как и полагаться что у null pointer битовое представление - 0
источник

S

Serg in pro.cxx
Побитый Кирпич
И судя по msdn на x86 тоже как то влияние оказывает сверх того что гарантирует стандарт. Мой поинт был в том, что полагаться на это нельзя, как и полагаться что у null pointer битовое представление - 0
полагаться можно если известна memory model целевой платформы
источник

S

Serg in pro.cxx
для разных платформ пишутся разные реализации такого кода
источник

ПК

Побитый Кирпич... in pro.cxx
Serg
полагаться можно если известна memory model целевой платформы
Это будет непортируемый код, на такой код стандарт не распространяется, там можно что угодно делать
источник

ПК

Побитый Кирпич... in pro.cxx
Считай это будет не С, а my_platform_C
источник

m

magras in pro.cxx
Alexander N
Я так и понял. У них таких приколов много нестандартных
Да, но странно, что компилятор не выполнил cas операцию для инкримента volotile переменной. Для atomic'а используется lock xadd. Возможно у них какой-нибудь relaxed используется.
источник

ПК

Побитый Кирпич... in pro.cxx
Serg
для разных платформ пишутся разные реализации такого кода
Ну вот это уже ближе
источник

S

Serg in pro.cxx
100% портируемости на C все равно не достижимо
источник

ПК

Побитый Кирпич... in pro.cxx
Serg
100% портируемости на C все равно не достижимо
На ISO C вполне достижима, стандарт для этого и нужон
источник

ПК

Побитый Кирпич... in pro.cxx
Чтоб писать код один раз и работало везде
источник

ПК

Побитый Кирпич... in pro.cxx
А не 100500 реализаций под каждую платформу
источник

S

Serg in pro.cxx
Linux написан на GCC и не портирован на CLang C
источник

ПК

Побитый Кирпич... in pro.cxx
Это ассемблре называется
источник

ПК

Побитый Кирпич... in pro.cxx
Serg
Linux написан на GCC и не портирован на CLang C
Да, пушо гавнокод
источник

S

Serg in pro.cxx
Побитый Кирпич
А не 100500 реализаций под каждую платформу
всё универсальное неэффективно
источник

ПК

Побитый Кирпич... in pro.cxx
Serg
всё универсальное неэффективно
Это плата за "write once, run everywhere"
источник

ПК

Побитый Кирпич... in pro.cxx
Ну и там скорости и оптимизаций компилятора достаточно в основном
источник

OS

Oleksandr Senkovych in pro.cxx
Побитый Кирпич
На ISO C вполне достижима, стандарт для этого и нужон
а чо там, мультипоточность есть в ISO C?
источник

ПК

Побитый Кирпич... in pro.cxx
Oleksandr Senkovych
а чо там, мультипоточность есть в ISO C?
Да, с С11
источник

OS

Oleksandr Senkovych in pro.cxx
И как можно писать барьер на ISO C?
источник