Size: a a a

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

2021 March 31

DK

Dmitry Kazakov in Конференция C++ Russia
Alexey Veselovsky
Отключить new тоже нельзя
Там не в отключении даже дело :) А именно в гарантиях пред- и постусловий. В ядре Линукса есть подобные штуки для блокировок. Но там что-то очень самопальное: по коду вручную раскиданы дефайны, а потом статистический анализатор по ним ищет дедлоки.
источник

DK

Dmitry Kazakov in Конференция C++ Russia
(по крайней мере так было в 2009 году, хз как сейчас)
источник

MT

Monah Tuk in Конференция C++ Russia
Alexey Veselovsky
Но, по сути, выброс исключения в этом случае это UB
Давай уточнимся: UB - это Undefined или Unspeficied? 😉 В любом случая, с точки зрения стандарта это может быть UB, но не с точки зрения платформы или реализации. Т.е. у нас на выброс исключения было вполне себе определённое поведение: вызов termination handler. В Debug, мигал SOS диодом и крутился в цикле, гасив планировщик, в Release - перегражал устройство. Если использовалось место, которое выбрасывало исключения без заглушки, мы просто валились на линковке и дописывали заглушку.
источник

AV

Alexey Veselovsky in Конференция C++ Russia
Monah Tuk
Давай уточнимся: UB - это Undefined или Unspeficied? 😉 В любом случая, с точки зрения стандарта это может быть UB, но не с точки зрения платформы или реализации. Т.е. у нас на выброс исключения было вполне себе определённое поведение: вызов termination handler. В Debug, мигал SOS диодом и крутился в цикле, гасив планировщик, в Release - перегражал устройство. Если использовалось место, которое выбрасывало исключения без заглушки, мы просто валились на линковке и дописывали заглушку.
С точки зрения стандарта результирующая программа не является программой на С++, это ничем не отличается от undefined behavior’a
источник

MT

Monah Tuk in Конференция C++ Russia
Alexey Veselovsky
Отключить new тоже нельзя
тут тоже всё интересно. new как и память выделяет (да, но нет) так и конструктор вызывает. Собственно и placement new есть. Так вот, отключить нельзя, но заменить выделение памяти static_assert'ом, который отвалится на компиляции с удобочитаемым сообщением вполне себе можно.
источник

MT

Monah Tuk in Конференция C++ Russia
Alexey Veselovsky
С точки зрения стандарта результирующая программа не является программой на С++, это ничем не отличается от undefined behavior’a
А, ну если так, то да :) Это как USB устройство без сертификации USB-IF не является USB устройством :)
источник

MT

Monah Tuk in Конференция C++ Russia
Получится SPARK-C++
источник

G

Gabriele in Конференция C++ Russia
Monah Tuk
Шикарно! Ну вот хоть сейчас на Аду. Кстати, она же и раньше славилась как язык бортового ПО самолётов.
в какой-то степени, Ada предшествовал какую-то paradigms и features которые были позже добавлены к C++ и что C не поддерживал. Я помню короткую paper от А. Степанов, где он упомянул, что он изначально начал развивать generic programming на Ada, потому что C++ в то время еще не был «готов» (он сам позже внес свой вклад)
источник

G

Gabriele in Конференция C++ Russia
Насколько я знаю, Ada все еще широко используется 🙂 особенно в оборонной промышленности, а не только, особенно в государственных контрактах из США, но, вероятно, Alexey знает обновленное состояние лучше
источник

G

Gabriele in Конференция C++ Russia
источник

AV

Alexey Veselovsky in Конференция C++ Russia
Monah Tuk
Получится SPARK-C++
Не, пока не спарк, это мы пока тут пытаемся до базового функционала Ады добраться :-)
источник

AV

Alexey Veselovsky in Конференция C++ Russia
Gabriele
Насколько я знаю, Ada все еще широко используется 🙂 особенно в оборонной промышленности, а не только, особенно в государственных контрактах из США, но, вероятно, Alexey знает обновленное состояние лучше
nvidia юзает :-)
источник

MT

Monah Tuk in Конференция C++ Russia
Alexey Veselovsky
Не, пока не спарк, это мы пока тут пытаемся до базового функционала Ады добраться :-)
Ну грин-треды с вытесняющим планировщиком это вот вкусно. Я копался в коде Golang, мне понравился трюк, как они его сделали там. Хочу найти время и сделать подобное поверх C++. На работе не дают на ЦПП писать (мало), так хоть для души (sic!)
источник

AV

Alexey Veselovsky in Конференция C++ Russia
Ну и основное применение таки в гражданской промышленности - аутомотив, авионика, АЭС и автоматизация всяких железнодорожных штук
источник

G

Gabriele in Конференция C++ Russia
да, но все же в основном «официальные» / правительственные комиссии. И все еще сегодня среди военной / оборонной промышленности я думаю, что Ada, безусловно, самый используемый язык, помимо С
источник

AV

Alexey Veselovsky in Конференция C++ Russia
Ну, какие-нибудь гражданские Боинги - эти Ада
источник

AV

Alexey Veselovsky in Конференция C++ Russia
Но да, область применения Ады сейчас темно связана с областью где требуется сертификация и валидация ПО
источник

AV

Alexey Veselovsky in Конференция C++ Russia
Хотя, я знаю тех, кто например просто сервера пишет и бэкенды.
источник

AV

Alexey Veselovsky in Конференция C++ Russia
Да что там, народ уже и под браузеры на аде пишет, скомпилировав в wasm :-) (но это пока больше эксперименты конечно)
источник

o

ololoshwin in Конференция C++ Russia
Что у  Ады с компиляторами? только за чемоданы денег?
источник