Алексей Кутумов
@prograholic
Руководитель команды разработки
Information
- Rating
- Does not participate
- Location
- Новосибирск, Новосибирская обл., Россия
- Date of birth
- Registered
- Activity
Руководитель команды разработки
Information
Использовать значение ГИСЧ в качестве сида для ГПСЧ. Через определенное количество использований повторять такую процедуру
Я бы сказал, что наоборот, это крайне редко. Куча железок имеют только кроссы. Даже на тех же линуксах собирают кроссами, чтобы гарантированно запускаться на системах с нужной версией (g)libc
В принципе, можно сделать тулчейн не зависящий от gcc, нужно собрать compiler-rt, libunwind, libc++, libc++abi из состава llvm. Правда, это может быть довольно хлопотно для некоторых архитектур.
Gcc тулчейн хоть и неудобен, но зато собирается под гораздо более широкий набор платформ, чем полноценный clang тулчейн.
Как вариант, один раз написать или найти toolchain файл для cmake. В cmake PVS можно кучей разных способов инткгрировать
У windbg, кстати, есть .dbgdbg, но она, конечно, не спасет в вашей ситуации. Статья просто супер, спасибо!
Довольно интересно, спасибо. А почему вы не воспользовались dumpbin /disasm для получения ассемблерного кода? Если я правильно помню, то он еще и отладочные символы умеет потреблять, сами символы можно загрузить с помощью symchk
Я имею ввиду, что лучше билд систем не справится никто, а баги в любом софте есть.
Вообще я бы переформулировал свой посыл так: если уж и делать стат анализ с помощью ML, то кто это сделает лучше разработчиков текущих решений? Кто лучше вас знает теорию и практику этой области? Поэтому, хоть Андрей и написал, что мы не луддиты, но выглядит эта статья именно так, при всем уважении
Здравствуйте, статья интересная. В целом я согласен с выводами, но мне кажется что вы не совсем корректно обозначили скоуп ответственности ML в задаче анализа: например, препроцессированием должны заниматься билд системы, и это они делают довольно успешно, насколько я помню PVS тоже в конечном итоге работает с препроцессированным файлом и делает препроцессинг за него компилятор.
Построением AST тоже может заниматься не ML, к тому же уже есть готовые решения — ваш продукт, clang и пр.
Насчет обучения — можно его "легко" научить на том же гитхабе, только прогоните весь гитаре через стат анализаторы и вы получите критерии хорошего кода
p.s. Вы правы, ваша формулировка допускает, что они могут быть :)
Что касается visitor, по-моему, по другому обойти гетерогенный контейнер не получится, так что в любой реализации будет visitor
Вот как можно сделать НАСТОЯЩИЕ гетерогенные контейнеры: https://gieseanw.wordpress.com/2017/05/03/a-true-heterogeneous-container-in-c/
Насколько я помню, плюсовые исключения можно сделать через структурные исключения, ну только там еще нужно будет функцию сделать, что-то типа _CxxThrowException
Я понимаю, что сделать это можно, но насколько это легитимно?
На EDK-шной реализации UEFI спеки я бы еще понял, но на чистом UEFI — тут вопрос?
Тоже самое в принципе, можно сделать и на BIOS окружении.
Вот кстати, ребята пошли еще дальше, и сделали поддержку плюсовых исключений в ядре Windows: правда проект скорее мертв чем жив, но посмотреть там есть на что.
С точки зрения корутин, практически никаких отличий нет от того же драйвера (посмотрите на гитхабе файлы crt.cpp для драйвера и EFI приложения).
Компилятор MS начиная с VS2008 умеет собирать EFI бинарники, посмотрите проект EDK2. Файлы .vcxproj и efi.props — это по сути копия параметров сборки из EDK2, но только для MsBuild
Вообще EFI SDK — это только заголовочные файлы, хедера можно взять из того же EDK
Или здесь
Причем сами авторы позиционируют данную библиотеку, как максимально быструю и эффективную.
Не повезло, сочувствую.
Кстати я как-то на работе нечаянно провел тест: я написал одну программу — демон, и забыл ее выключить (там тоже были sleep и все такое) и она крутилась на тестовом сервере и все про нее забыли (случайно наткнулся на нее), я посмотрел, что за несколько месяцев работы, она сожрала день процессорного времени — а это был только простой, по факту она ничего не делала. При этом висящий рядом демон ftpd сожрал не более нескольких минут процессорного времени. Меня эта ситуация в свое время очень мотивировала на обучение параллельному программированию, возможно это вам поможет