Size: a a a

2020 February 27

EG

Emmanuel Goldstein in rust_offtopic
Pavel
железо тоже пишется языками программирования, потому о нём можно так же рассуждать, как и о программировании
И что?
Мы сейчас обсуждаем обычные языки. Их имеет смысл прослеживать до машинного кода.
источник

P

Pavel in rust_offtopic
Emmanuel Goldstein
И что?
Мы сейчас обсуждаем обычные языки. Их имеет смысл прослеживать до машинного кода.
для какого процессора?
источник

P

Pavel in rust_offtopic
для вм-языков тоже до машинного? Сколько может быть промежуточных шагов вообще? MIR, LLVM-IR, потом ещё что-то
источник

EG

Emmanuel Goldstein in rust_offtopic
Можно проследить до того машинного кода, который реально выполнится
источник

P

Pavel in rust_offtopic
Emmanuel Goldstein
Можно проследить до того машинного кода, который реально выполнится
я хз, какой код реально выполнится, я не знаю, на каком процессоре это будет выполняться
источник

EG

Emmanuel Goldstein in rust_offtopic
В контексте конкретного процессора можно обсуждать
источник

P

Pavel in rust_offtopic
Emmanuel Goldstein
В контексте конкретного процессора можно обсуждать
почему?
источник

EG

Emmanuel Goldstein in rust_offtopic
Почему нет?
источник

P

Pavel in rust_offtopic
я не знаю, на каком процессоре будет выполняться мой код, но я примерно знаю, как делаются процессоры в общем, для какого процессора мне рассуждать? Для какой ревизии этой линейки?
источник

EG

Emmanuel Goldstein in rust_offtopic
Неважно. Виртуальная машина будет делать примерно одно и то же для процессоров одинаковой архитектуры с одинаковыми расширениями
источник

P

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

B

Bogdan in rust_offtopic
Pavel
ну и вообще странно коммитить код, который не компилируется, это надо написать код, который не компилируется сперва
В ветке все компилировалось, а после ребейза перестало.

Допустим есть три комита, ты все три ребезишь, последний булет равен тому же что получилось бы после мержа, т.е. рабочий, а два дочерних не факт.


Но ладно, надо закрывать тему. ) Нового ничего никто не скажет.
источник

P

Pavel in rust_offtopic
Bogdan
В ветке все компилировалось, а после ребейза перестало.

Допустим есть три комита, ты все три ребезишь, последний булет равен тому же что получилось бы после мержа, т.е. рабочий, а два дочерних не факт.


Но ладно, надо закрывать тему. ) Нового ничего никто не скажет.
ты когда ресолвишь конфликты, то меняешь все коммиты, что у тебя есть, если косячить с ресолвом, то и последний может не работать
источник

VS

Victor Sapiens in rust_offtopic
Alex Zhukovsky
но сишарписты и объедкам рады
Шито взять с них, плейбеев 🤷🏻‍♂️
источник

B

Bogdan in rust_offtopic
Pavel
ты когда ресолвишь конфликты, то меняешь все коммиты, что у тебя есть, если косячить с ресолвом, то и последний может не работать
Гу ты же не проверяешь каждый комит а только последний перед пушем
источник

B

Bogdan in rust_offtopic
Блин я ответил
источник

P

Pavel in rust_offtopic
Bogdan
Гу ты же не проверяешь каждый комит а только последний перед пушем
как и с мёржем, ты не проверяешь каждый коммит, а только мёрж-коммит перед пушем с CI
источник

B

Bogdan in rust_offtopic
Я в любом случае щас валю афк (
источник

В

Вафель in rust_offtopic
Вафель
Там условно

impl<T: Consts> Struct<T> {
   fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result {
       let s = match T::CONSTS {
           X::CONSTS => {},
           Y::CONSTS => {},
           ... // и так условно 100-200 вариантов
       }
       match s {
           Some(str) => f.write_str(s),
           None => { ... }
       }
   }
}
Короче мем
источник

В

Вафель in rust_offtopic
Простой вынос матча в отдельную функцию уменьшил asm с 50 строк, до

 mov     rdi, rsi
lea     rsi, [rip, +, .L__unnamed_2]
mov     edx, 2
jmp     qword, ptr, [rip, +, _ZN4core3fmt9Formatter9write_str17h89ba7346b8689845E@GOTPCREL]
источник