Pull to refresh
3
0
Send message

Спирт это в принципе вариант. Табуретовку можно гнать почти из любого растительного сырья.

Топливо, синтезированное из солнечной энергии и воздуха? Я знаю только одно такое — дрова. Было бы интересно посмотреть на сверхзвуковой самолёт на дровах (-:

Всё потому, что язык C, например, может использоваться на тех платформах, где умножение не возвращает старшей части результата, а флагов вообще не предусмотрено. Поэтому стандарт даёт только те возможности, которые есть везде. Для нестандартных платформозависимых вещей есть интринсики.

Вот ещё новость, отдельный котёл на них тратить. Пусть в общем сидят. В отдельные надо достойных людей сажать (-:

-fsanitize=address позволяет отлавливать такие ошибки

Бургер можно и без булки брать — завернут в листья салата. В моих краях эта фича уже даже в фаст-фудах реализована (-:

В УК есть статьи, возбуждение дела по которым возможно только после заявления потерпевшего. Хотя, ради справедливости, статья 273 к ним не относится.

Можно ещё попробовать Address Sanitizer (https://clang.llvm.org/docs/AddressSanitizer.html). Работает и в clang и в gcc. Вроде бы есть и в visual studio экспериментальная поддержка (https://devblogs.microsoft.com/cppblog/asan-for-windows-x64-and-debug-build-support/). Плюс в том, что ловит не только утечки памяти, но и прочие ошибки работы с ней, например использование освобождённой памяти или выход за границы буфера.

В оригинале так же они отсутствуют.


В моём понимании, если бы статью переводил человек, который про программирование на C и C++ хотя бы слышал, он выбрал бы другую статью или исправил примеры. Я не перехожу здесь на личности. Вопрос исключительно в качестве материала. Понятно же, что профессионалу в этой статье почерпнуть нечего. Но ведь её могут читать те, кто только учится. Какие знания они почерпнут?
В общем-то во всех примерах кода. Всё перечислять не буду. Но можно начать даже с первого примера:
#ifndef __cplusplus
# include
#endif
 
extern bool weAreHappy;


Должно быть что-то вроде такого:
#ifndef __cplusplus
# include <stdbool.h>
#endif
 
extern bool weAreHappy;


ru_vds, серьёзно, вы бы сначала показали эту статью тому, кто C и C++ код хотя бы читает.
Для каких IDE не хватает плагина?

Emacs

Не могу пройти мимо:
Любая достаточно сложная программа на Си или Фортране содержит заново написанную, неспецифицированную, глючную и медленную реализацию половины языка Common Lisp
Сорри, не туда отправил — ошибся вкладкой. Отредактировать уже не могу
Не могу пройти мимо:
Любая достаточно сложная программа на Си или Фортране содержит заново написанную, неспецифицированную, глючную и медленную реализацию половины языка Common Lisp

В out-of-order superscalar это не настолько важно: в процессоре будет буфур декорированных инструкций, из которого процессор будет брать готовые для исполнения команды. И по большому счёту не очень важно, в каком порядке они идут в коде программы. Вот в in-order superscalar важнее, чтобы компилятор правильно расставил инструкции. Для этого в компиляторах планировщики пишут. В out-of-order компилятор тоже более-менее оптимально пытается расставить инструкции, но это нужно скорее для того, чтобы декодирование не тормозило.

В RISC-V смещение должно быть закодировано числом в инструкции. Регистр нельзя. Разработчики считают, что железо должно уметь склеивать две инструкции в одну в конвейере. Но такого железа пока не видно.

Это, простите, не анализ а научно-популярная литература для широкого круга интересующихся. Написано, правда, хорошо, этого не отнять.
Нормальный анализ делается с применением потактовых симуляторов, и приводит к тому, что в архитектуре появляются инструкции, которые в RISC-V не представлены. В понимании авторов RISC-V, это должен обрабатывать instruction fusion. Но покажите мне железо, в котором это реализовано.

Есть. Но сильно ограничены: только LSL на размер данных в LDR/STR.

В MIPS примерно то же самое (https://stackoverflow.com/questions/1281806/adding-two-64-bit-numbers-in-assembly). Это наводит на мысль о том, что RISC-V instruction set по большей части содрали с MIPS, не проводя какого-то анализа других архитектур.

Потому что в RISC-V нельзя закодировать такую инструкцию

Information

Rating
Does not participate
Registered
Activity