Size: a a a

pro.osdev - os development

2021 October 06

EE

Eugene Erokhin in pro.osdev - os development
Да и Бсд часть тоже С.
источник

EE

Eugene Erokhin in pro.osdev - os development
Но плюсы москитов прекрасно себя чувствуют. И сколько фс драйверов делал, все на плюсах, и эксепшенов там ниразу не хотелось. Не та задача просто.
источник

BV

Boris Vinogradov in pro.osdev - os development
В таком виде и вбокс свои дрова пишет, но там прям свой погружай-ка в виде кучи говна
источник

BV

Boris Vinogradov in pro.osdev - os development
Исключения в ядре это как в бареметалл: не понятно кому ловить и зачем порождать
источник

EE

Eugene Erokhin in pro.osdev - os development
Ну была легковесной эта машинерия, она бы могла и бареметале пригодиться наверно. Но впихать бегемота, так все остальное вывалился)))
источник

BD

Berkus Decker in pro.osdev - os development
она довольно легковесная, но работать с ней вменяемо очень сложно, почти невозможно
источник

BD

Berkus Decker in pro.osdev - os development
просто добавь асинк и все эксепшены сразу летят к черту
источник

BV

Boris Vinogradov in pro.osdev - os development
Поймай эксепшен в треде а тут прерывания и там свой эксепшн
источник

EE

Eugene Erokhin in pro.osdev - os development
Ну анвиндер, и динамическая эллокация для эксепшена. Ну не совсем лёгкая. Даже если на лонгджампах.
источник

BD

Berkus Decker in pro.osdev - os development
аллоцировать не обязательно, кидайся интами, кто мешает
источник

BD

Berkus Decker in pro.osdev - os development
throw EINVAL;
источник

EE

Eugene Erokhin in pro.osdev - os development
Согласен что можно упрощённо поддержать. Но раскрутка все равно тянет с собой порядком кода и таблиц. Времени занимает не мало, а ядро и бареметалы не любят непредсказуемые задержки.
источник

BD

Berkus Decker in pro.osdev - os development
да тут даже не задержки главное, а отстутствие предсказуемости куда это все улетит
источник

BD

Berkus Decker in pro.osdev - os development
источник

BD

Berkus Decker in pro.osdev - os development
можно запилить на минималках
источник

d

disba1ancer in pro.osdev - os development
именно тянет, дело в том что noexcept функции неявно делают catch, чтобы сделать std::terminate, и вот это в сумме тянет всю поддержку исключений из libsupc++
источник

W

Wild_Wind in pro.osdev - os development
Чего? Какой catch в noexcep?
noexcept как раз про отсутсвие катч падов.
Покажи мне это на godbolt.
источник

W

Wild_Wind in pro.osdev - os development
int square(int num)  noexcept {
   return num * num;
}



 .file  "z.cxx"
 .text
 .globl  _Z6squarei
 .type  _Z6squarei, @function
_Z6squarei:
.LFB0:
 .cfi_startproc
 pushq  %rbp
 .cfi_def_cfa_offset 16
 .cfi_offset 6, -16
 movq  %rsp, %rbp
 .cfi_def_cfa_register 6
 movl  %edi, -4(%rbp)
 movl  -4(%rbp), %eax
 imull  %eax, %eax
 popq  %rbp
 .cfi_def_cfa 7, 8
 ret
 .cfi_endproc
.LFE0:
 .size  _Z6squarei, .-_Z6squarei
 .ident  "GCC: (Gentoo Hardened 11.2.0 p1) 11.2.0"
 .section  .note.GNU-stack,"",@progbits
источник

W

Wild_Wind in pro.osdev - os development
Где ты тут catch нашёл?
источник

d

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