Size: a a a

2021 June 21

KF

Konstantin Firsov in dlang.ru
мням, так если включать проверки и т.п., какие оптимизации тогда остаются. Он там еще что-то делает? Если убрать дебажную инфу, то скорее всего как-то отразится на backtrace, но тут не уверен.
источник

KF

Konstantin Firsov in dlang.ru
вроде бы с release стектрейс все равно печатается, но это не точно, мог что-нибудь напутать.
источник

EP

Egor Pugin in dlang.ru
бектрейсов может не быть в релизе без символов, только адреса
источник

KF

Konstantin Firsov in dlang.ru
ясно, спасибо.
источник

DH

Dark Hole in dlang.ru
release ещё выпиливает инструкции debug, которые позволяют так сказать немного читерить для удобства отладки. В dmd может этим всё заканчивается, ибо флаги оптимизации идут отдельно от релиза.
источник

EP

Egor Pugin in dlang.ru
в прод не релиз не нужен, само собой
источник

KF

Konstantin Firsov in dlang.ru
тут еще вопрос, какой билд больше подходит для прода с release и без. Что-то мне подсказывает, что release тут переводится не как релиз в смысле выпуска, а как "освобождение\разъединение", тогда этот флаг имеет смысл и его название примерно совпадает с тем, что он делает, кгм....
источник

EP

Egor Pugin in dlang.ru
в общем, обычно это оптимизированный билд
источник

KF

Konstantin Firsov in dlang.ru
насколько компилятор должен оптимизировать логику проги, это тот еще вопрос). В целом, я согласен с комментом https://habr.com/ru/post/141080/#comment_4717164, но он не покрывает задач системного программирования и проблем с эксепшенами в нем. С другой стороны, для прикладного и как обмен производительности на надежность вполне может быть, железа можно немного докинуть, а вот если код рандомно ложится, то это беда. Еще был коммент о проверках только в private методах, но private очень тесно зависит от возможностей рефлексии, в языке вообще его может не быть и выбор видимости может быть рандомен, меняться и т.п.
источник

EP

Egor Pugin in dlang.ru
ну да, всё просто, не нужны падения - используем исключения
источник

KF

Konstantin Firsov in dlang.ru
кгм, в сообщении выше я сделал поправку на системный программинг).
источник

EP

Egor Pugin in dlang.ru
насколько системный? драйвера и ядро?
источник

KF

Konstantin Firsov in dlang.ru
каждый задаче - свой инструмент). Но я лично люблю наступать на грабли только один раз. Сначала у меня прога без коредампа вылетела, я помудохался и заставил её более-менее писать стектрейс на сегфолты. Потом у меня dxml лег на ленту новостей, я помудохался и нашпиговал код проверками на тип узла в xml. Но теперь выходит, что если я проверки отключаю, то все ли ситуации я покрыл... не думаю, это выглядит как шаг назад в сторону тех граблей, что остались у меня позади. Я предпочитаю, чтобы они мне хлопнули по лбу, а не по затылку.
источник

KF

Konstantin Firsov in dlang.ru
хотя как всегда, скорее всего будет и так и так, конечнож
источник

EP

Egor Pugin in dlang.ru
ну и опять непонятно, что тут с этим хмл без конкретики
источник

KF

Konstantin Firsov in dlang.ru
а какая там может быть конкретика, он непредсказуемый, тем более, что прилетает со стороны.
источник

EP

Egor Pugin in dlang.ru
dxml падает?
источник

KF

Konstantin Firsov in dlang.ru
я где-то писал выше, что он не только падает, но и склонен фризить).
источник

EP

Egor Pugin in dlang.ru
ну это проблемы библиотеки. Она не должна падать никогда - тот же сишный libxml
источник

EP

Egor Pugin in dlang.ru
expat
источник