Size: a a a

Compiler Development

2020 January 11

IJ

Igor 🐱 Jirkov in Compiler Development
Мне помогло для осознания таких вещей думать об описании действий в условном С более декларативно. Забудьте про последовательности вообще. Даже если речь про один поток, то выражения, которые мы пишем, добавляют в некий мешок кучку действий, а а момент точки следования происходит "коммит" этого всего. Получается, что такие моменты являются единственным "ограничением" на то, что происходит  и в каком порядке. Это в самой слабой модели памяти. Затем добавляются дополнительные гарантии, в соответствии с тем как сила модели памяти растёт
источник

AS

Aleksey Shipilev in Compiler Development
Ioann_V
Ну, что я должен ответить на это. Я не понял, а сейчас кажется понял. Ну, не все умными рождаются :)
Это нормально, я у себя из головы лет пять гвозди вытаскивал по поводу JMM. Поэтому смею показывать, где эти гвозди есть :)
источник

BD

Berkus Decker in Compiler Development
Ioann_V
Ну, что я должен ответить на это. Я не понял, а сейчас кажется понял. Ну, не все умными рождаются :)
Да я ничего не говорю, просто перечитай ту доку еще, может будет более понятно.
источник

IJ

Igor 🐱 Jirkov in Compiler Development
Советую отличный блог Jeff Preshing
источник

IJ

Igor 🐱 Jirkov in Compiler Development
источник

IJ

Igor 🐱 Jirkov in Compiler Development
Мне в свое время очень помог быстро въехать в основы
источник

BD

Berkus Decker in Compiler Development
Спс, это полезно
источник

IJ

Igor 🐱 Jirkov in Compiler Development
Berkus Decker
Спс, это полезно
У него много статей про разные аспекты многопоточности и  lock free в частности
источник

МБ

Михаил Бахтерев in Compiler Development
Ioann_V
А верно ли я понимаю, что если один поток пишет что-то releas-ом, а другой читает, acq, то, вообще говоря, не факт, что тот поток, что читает acq, увидит эту запись, сделанную releasом в другом потоке?
Верно. Эти rel и acq управляют только буферами памяти одного процессора. Другие процессоры об этих флагах ничего не знают. Они просто видят чужие чтения/записи
источник

I

Ioann_V in Compiler Development
Вот теперь, я понял. И что же? А вот спасибо помогавшим. Ну и без Беркуса не обошлось :)
источник

IN

Ilya Neganov in Compiler Development
Кажется, все уже всё выяснили, но ведь за это де в своё время премию Тьюринга выдавали: https://lamport.azurewebsites.net/pubs/time-clocks.pdf
источник

IN

Ilya Neganov in Compiler Development
Тут тов. Лесли Лемпорт рассказывает, что такое happens before и прикидывает, как этим пользоваться. И никакого хабра :)
источник

BD

Berkus Decker in Compiler Development
Ioann_V
Вот теперь, я понял. И что же? А вот спасибо помогавшим. Ну и без Беркуса не обошлось :)
Извините.
источник

M

MaxGraey in Compiler Development
Кстати тут недавно Terry Cavanagh выложил исходники VVVVVV и народ просто в шоке от логики. В совокупности там 300 switch-кейсов, один из которых имеет аж 4000 кейсов =) Так что кто то создает шедевры на ужастной кодовой базе, а кто то делает перфекционный и идеоматичный код на Haskell/Rust/Ocaml/F#/Scala (нужное подчеркнуть) который зачастую никому никогда и не пригодиться) Есть конечно над чем задуматься
источник

SE

Stanislav Ershov in Compiler Development
MaxGraey
Кстати тут недавно Terry Cavanagh выложил исходники VVVVVV и народ просто в шоке от логики. В совокупности там 300 switch-кейсов, один из которых имеет аж 4000 кейсов =) Так что кто то создает шедевры на ужастной кодовой базе, а кто то делает перфекционный и идеоматичный код на Haskell/Rust/Ocaml/F#/Scala (нужное подчеркнуть) который зачастую никому никогда и не пригодиться) Есть конечно над чем задуматься
источник

OM

Oleg Morozov in Compiler Development
MaxGraey
Кстати тут недавно Terry Cavanagh выложил исходники VVVVVV и народ просто в шоке от логики. В совокупности там 300 switch-кейсов, один из которых имеет аж 4000 кейсов =) Так что кто то создает шедевры на ужастной кодовой базе, а кто то делает перфекционный и идеоматичный код на Haskell/Rust/Ocaml/F#/Scala (нужное подчеркнуть) который зачастую никому никогда и не пригодиться) Есть конечно над чем задуматься
потому что писать код != делать продукт
источник

OM

Oleg Morozov in Compiler Development
только если ваш код и не является продуктом
источник

OM

Oleg Morozov in Compiler Development
как в случае опенсурса
источник

JC

Julian =) Coffee in Compiler Development
MaxGraey
Кстати тут недавно Terry Cavanagh выложил исходники VVVVVV и народ просто в шоке от логики. В совокупности там 300 switch-кейсов, один из которых имеет аж 4000 кейсов =) Так что кто то создает шедевры на ужастной кодовой базе, а кто то делает перфекционный и идеоматичный код на Haskell/Rust/Ocaml/F#/Scala (нужное подчеркнуть) который зачастую никому никогда и не пригодиться) Есть конечно над чем задуматься
Свитч кейс это конечный автомат
источник

SE

Stanislav Ershov in Compiler Development
MaxGraey
Кстати тут недавно Terry Cavanagh выложил исходники VVVVVV и народ просто в шоке от логики. В совокупности там 300 switch-кейсов, один из которых имеет аж 4000 кейсов =) Так что кто то создает шедевры на ужастной кодовой базе, а кто то делает перфекционный и идеоматичный код на Haskell/Rust/Ocaml/F#/Scala (нужное подчеркнуть) который зачастую никому никогда и не пригодиться) Есть конечно над чем задуматься
там нет 4000 кейсов, там нумерация страненькая =)
источник