Size: a a a

Конференция C++ Russia

2020 June 15

*

*cyberzx in Конференция C++ Russia
Проблема не в том, что можно. А в том, что стандарт не описывает поведение языка при отключенных исключениях.
источник

AV

Alexey Veselovsky in Конференция C++ Russia
Да, это будет не программа, а сплошной UB
источник

AS

Alexey Solomin in Конференция C++ Russia
*cyberzx
Проблема не в том, что можно. А в том, что стандарт не описывает поведение языка при отключенных исключениях.
да ладно? В случае исключения в коде без исключений будет вызван terminate без раскрутки, без лишнего кода, всё просто и прозрачно
источник

AV

Alexey Veselovsky in Конференция C++ Russia
GitHub решил отказаться от имени "master" для основных веток https://opennet.ru/53156/
источник

AV

Alexey Veselovsky in Конференция C++ Russia
Alexey Solomin
да ладно? В случае исключения в коде без исключений будет вызван terminate без раскрутки, без лишнего кода, всё просто и прозрачно
Где это в стандарте прописано?
источник

AP

Antony Polukhin in Конференция C++ Russia
Alexey Veselovsky
А это будут фиксить? Вроде довольно важный юзкейс
Пока непонятно. Все отключения исключений - это "расширение" стандарта
источник

AS

Alexey Solomin in Конференция C++ Russia
Alexey Veselovsky
Где это в стандарте прописано?
в стандарте не прописано, но в компиляторах сделано довольно одинаково. Это же типично для плюсов :) Уже годы (хотя дольше наверное, я уже этими вещами с середины 00х спокойно пользуюсь) всё работает и даже одинаково но в стандарте этого нет.
источник

AV

Alexey Veselovsky in Конференция C++ Russia
Alexey Solomin
в стандарте не прописано, но в компиляторах сделано довольно одинаково. Это же типично для плюсов :) Уже годы (хотя дольше наверное, я уже этими вещами с середины 00х спокойно пользуюсь) всё работает и даже одинаково но в стандарте этого нет.
Это таки более типично для других языков :-)
источник

AS

Alexey Solomin in Конференция C++ Russia
Antony Polukhin
Пока непонятно. Все отключения исключений - это "расширение" стандарта
вот это одна из проблем в плане мотивации пересадить разного рода системщиков c си на плюсы ^^
источник

AS

Alexey Solomin in Конференция C++ Russia
интересно кстати, как в касперском используют плюсы, они же защищённую операционку на них пилят полностью
источник

ES

Egor Suvorov in Конференция C++ Russia
Eugene Erokhin
Ну скорее всего они сделают как это в Макосе - подмножество C++ без эксепшенов и RTTI. И throw там просто не соберется. Операция new всегда несбрасывающая - просто проверяется возврат на не нулл.
В макосе у них вместо стандартного, свой RTTI вообще написан, корторый под половину наворотов Объектив-С реализует. Хотя толку на мой взгляд мало.

Эксепшены в ядра уже затаскивали, не помню в какое может даж в линукс. Чуваки свой гипервизор делали, и до кучи такую порнографию сделали.
Основная проблема почему не тянут эксепшены в ядро, даже не тяжелый рантайм, а условно неопределенное время затрачеваемое на раскрутки. Ядро себе неопределенность такого масштаба позволить не может.

Но использование C++ в ядре действительно облегчает жизнь. Тем же RAII. Я собственно пили Paragon NTFS for Mac - он весь на плюсах. И еще несколько драйверов и файл систем и болчных устройств. На С былоб делать сильно гиморойнее!
А откуда возникает неопределенность про время раскрутки? Казалось бы, исключения в рамках одного приложения — чуть ли не синтаксический сахар над проверкой кодов возврата.
источник

EE

Eugene Erokhin in Конференция C++ Russia
В зависимости от того как был сгенерен код, при раскрутке стека может быть разное кол-во действий. Действия прописаны в Дворф (на самом деле в Линуксе есть свой вариант на тему, на сколько знаю, но для стек трейсов). Поэтому в зависимости от графа вызово, время это будет варироваться.
Не каждая задача будет толерантна к такому недетерминизму по времени.
источник

m

magras in Конференция C++ Russia
Egor Suvorov
А откуда возникает неопределенность про время раскрутки? Казалось бы, исключения в рамках одного приложения — чуть ли не синтаксический сахар над проверкой кодов возврата.
Вроде время раскрутки более-менее стабильно. Проблема в разнице времени выполнения успешного пути и обработки ошибок. С кодами возврата ты платишь примерно одинаково в обоих случаях и, если сравнивать с исключениями, чуть больше на happy path и сильно меньше на fail path.
источник

A

Alex Ф-ф-фэils!🌠︙... in Конференция C++ Russia
Alexey Solomin
интересно кстати, как в касперском используют плюсы, они же защищённую операционку на них пилят полностью
Они в докладе говорили, что там хачкель
источник

AS

Alexey Solomin in Конференция C++ Russia
Alex Ф-ф-фэils!🌠︙
Они в докладе говорили, что там хачкель
не верю 😅 прошу тайм код в видео с докладом )
источник

AV

Alexey Veselovsky in Конференция C++ Russia
They are coming!
источник

LH

LACAL HOST in Конференция C++ Russia
Alexey Veselovsky
They are coming!
🙂
источник

АГ

Александр Гранин... in Конференция C++ Russia
Alexey Solomin
не верю 😅 прошу тайм код в видео с докладом )
Там есть DSL на Хаскеле для некоторых сценариев безопасности, который транслируется в Си
источник

AS

Alexey Solomin in Конференция C++ Russia
Александр Гранин
Там есть DSL на Хаскеле для некоторых сценариев безопасности, который транслируется в Си
Вот в это верю, благодарю :)
источник

АГ

Александр Гранин... in Конференция C++ Russia
Alexey Solomin
Вот в это верю, благодарю :)
источник