Size: a a a

pro.osdev - os development

2021 July 24

d

disba1ancer in pro.osdev - os development
strict aliasing, кажется не про си, а про плюсы, в си просто restrict
источник

IJ

Igor 🐱 Jirkov in pro.osdev - os development
Нет, в C есть правила алиасинга. Например, что структуры с разными тэгами не могут храниться по одному и тому же указателю
источник

U

UsernameAK in pro.osdev - os development
в плюсах рестрикт тоже какой-то вес имеет (хотя и не входит в стандарт)
источник

d

disba1ancer in pro.osdev - os development
это фантазии, в голове одного человека не поместятся все трюки для оптимизации, потому люди объединяют свои знания в коде компилятора, которые оптимизируютлучше чем один человек при ручном асме
источник

d

disba1ancer in pro.osdev - os development
я знаю что в плюсах такое есть, но про си не слыхал, я всегда считал, что там всё проще, а взяких грязных трюков разрешено больше
источник

IJ

Igor 🐱 Jirkov in pro.osdev - os development
Как видите, нет. До появления рестрикт в С люди упаковывали один тип данных в разные структуры чтобы имитировать семантику resrict, как пример.
источник

U

UsernameAK in pro.osdev - os development
нифига, похоже ты откопал какую-то дикую рудиментарную древность, учитывая, что инструкцию push imm добавили ещё в 80186
источник

DF

Dollar Føølish in pro.osdev - os development
Кек понять имитировать? Упаковывалм? Не понемаю
источник

Ct

Casual tears in pro.osdev - os development
Я так понял что если взять`struct A { int a; }` и struct B { int b; } то в функции вида void foo(struct A* a, struct B* b ) эти два инта не могут алиаситься, т.е. будет эквивалентно void foo(int* restrict a, int* restrict b)
источник

BD

Berkus Decker in pro.osdev - os development
через 8-10 ты хотел сказать
источник

BD

Berkus Decker in pro.osdev - os development
И только на одном компе, это ли не цель
источник

BD

Berkus Decker in pro.osdev - os development
ро за набросы imminent
источник

BD

Berkus Decker in pro.osdev - os development
На всякий случай напомню - 2021 год, разница в 1 такт между командами на абсолютно cold path интересует только наглухо ебанутых, которые не умеют в оптимизацию того, что нужно оптимизировать, и вместо этого оптимизируют cold path.
источник

IJ

Igor 🐱 Jirkov in pro.osdev - os development
Так и есть
источник

DF

Dollar Føølish in pro.osdev - os development
Спасибо за поеснение
источник

DF

Dollar Føølish in pro.osdev - os development
Но кмк рестрикт появился раньше чем правила альясинга
источник

DF

Dollar Føølish in pro.osdev - os development
В языке си
источник
2021 July 25

IJ

Igor 🐱 Jirkov in pro.osdev - os development
Рестрикт появился чтобы не мучиться с алиасингом, потому что паковать в структуры просто так неудобно и запутывает.

Паковать единицы данных в структуры круто когда нужно сделать непрозрачный  typedef, например, после того, как проверил ввод от пользователя. Т.е. когда на данные навешивается дополнительный инвариант или семантика. Например, "этот инт64 не просто число, но идентификатор процесса, и работать с ним должны только такие-то функции, а не любые функции, принимающие инт"
источник

0

0Nera in pro.osdev - os development
Здравствуйте!
Такая проблема:
Нет grub-mkrescue в grub-2.06-for-windows.

Откуда можно скачать grub под Windows с grub-mkrescue?


Hello! Such problem:
There is no grub-mkrescue in grub-2.06-for-windows. Where can I download grub under Windows with grub-mkrescue?
источник

BD

Berkus Decker in pro.osdev - os development
можешь собрать груб из сорцов
источник