L29Ah
С хуита говно Сегодня в рубрике "няшная сишка" следующий код:

printf("%lf %d\n", samples_shift, -samples_per_carrier_period);
assert(samples_shift >= -samples_per_carrier_period);

выводит следующее:

1.000000 -10
ampliphase-fl2k: ampliphase-fl2k.c:79: generate_shifted_carrier: Assertion `samples_shift >= -samples_per_carrier_period' failed.

Собирается gcc-11.2.1_p20220115 с -Wall -Werror без проблем. Кто угадал в чём ошибка — тот молодец^Wэксперт сишки.
L29Ah
C polkit секурно решето opennet.ru
Так как счётчик аргументов не проверялся на соответствие фактическому содержимому массива и полагалось, что он всегда больше 1, в случае передачи процессу пустого массива argv, что допускает функция execve в Linux, pkexec воспринимал значение NULL как первый аргумент (имя процесса), а следующую за пределами буфера память, как далее идущее содержимое массива. Проблема в том, что следом за массивом argv в памяти размещается массив envp, содержащий переменные окружения.
Получив значение argv[1], pkexec пытается с учётом файловых путей в PATH определить полный путь к исполняемому файлу и записать указатель на строку с полный путём обратно в argv[1]
sparta
С жизнь вообще быть приличной, работать, лишний раз не открывать рот и жить так как живут все это похлеще вашего бдсм всего.
qnikst
C programmin блин си сегодня отстрелило мне ноги. В общем как может быть такое, что при убирании inline у static void функции все неожиданно ломается (мусор в структуре данных, в итоге segfault), gdb не отловить, т.к. мусор там появляется непонятно когда, во всяком случае пишут туда не мусор.
Если есть inline — то все хорошо.
segfault
C GCC продакшенкволити opennet.ru
Дело оказалось в том, что GCC принимает решение об использовании inline-развёртывания функций в зависимости от результатов косвенной оценки размера результирующего кода (даже если функция определена с ключевым словом "inline"). Компилятор не учитывает фактический размер результирующего кода, а пытается прогнозировать его. Для ассемблерных вставок прогнозирование делается на основе числа переводов строк ("\n") и разделителей (";") в исходном тексте.

Помнится, давеча смеялись над JS, оптимизатор которого делал нечто подобное, и минификация ускоряла/замедляла выполнение кода.
sparta
С все мы немного Чехов.

Деньги нужны адски.
Мне нужно 20 тысяч годового дохода, так как я уже не могу спать с женщиной, если она не в шёлковой сорочке. К тому же, когда у меня есть деньги, я чувствую себя как на облаках, немножко пьяно, и не могу не тратить их на всякий вздор.
Третьего дня я был именинник; ожидал подарков и не получил ни шиша.

А. П. Чехов, письма
alar
C СЯУ l4 WTF
it turned out that by carefully handcrafting the fast path, we can achieve highly-competitive IPC latencies [Blackham and Heiser, 2012]. Specifically this means manually re-ordering statements, making use of (verified) invariants that the compiler is unable to determine by static analysis
Люди руками переписывали сишный код в другой сишный код, на основании знаний того, какие машинные команды получатся в итоге и с какой скоростью будут выполняться.

По-моему, проще обучить Изабель понимать асм ARMv6
OCTAGRAM
C objectiveC То чувство, когда нет вменяемой системы модулей и жёстко привязанной к ним системы пространств имён.

#include <Object.h>
#define Object XtObject
#include <X11/Intrinsic.h>
#include <X11/IntrinsicP.h>
#undef Object

Ещё, помню, заголовки Qt вываливают в пространство имён помойку из WinAPI, а вместе с ней — #define GetComputerName GetComputerNameW, и в самом Qt ломается класс с таким методом, вот просто взять и собрать Qt не получается, там тоже хаки против таких конфликтов, работающие с переменным успехом.

Даже, если для целевой системы нет обычного транслятора Ады, а заголовки — только на Це, только ради того, чтоб не страдать такой ерундой, имеет смысл конвертировать цешные заголовочные файлы в адские интерфейсные пакеты, писать на Аде и транслировать средствами AdaMagic.

Разработка ПО похоже на переплывание реки из бурлящей кислоты, и мы строим корабли с толстыми стенами, и мы делаем толстые иллюминаторы, а кислота сильна, кислота разъедает, а мы строим корабли всё толще. Выбрать Аду — значит, отгородиться хотя бы с точки зрения пространств имён от творящихся снаружи ужасов.
SannySanoff
C Linux C++ programming fun На highloadcup 195 секунд, 13 место перед финальным разбором.
Я налажал где только мог, последующая оптимизация только замедляла все. Вопросов больше чем ответов. Более поздние версии тормознее чем более ранние. memcmp(4 bytes) дольше чем ((int)c) = 0x0A0D0A0D. Опция -O3 медленнее на 10% чем no optimizations.

НО! Непонятно, как у людей еще быстрей, архитектура вроде одинаковая. Читаем решения.

Программировали с @tilarids на гейбуках, там же меряли (!!) (для чего? все равно корелляции с офиц линукс-тестилкой по перфомансу не было). Учет версий вели с трудом. Тест корректности ответов я написал в предпоследний день, наполовину. До того только "пилил", "точить пилу" было некогда 8).

Жажда адреналина и дух соревновательности это всё. Ради него. Следует задуматься. Его-то я получил сполна, а первое место — нет 8)
Renha
C FORTH fpga Haskell Интересный текст richardhaskell.com
коротко, хардварная имплементация раз в 10 быстрее чем реализация на ЯП, Си как обычно тормозит, FORTH-процессоры это ня, надо зопейлить таковой на своей плисине, можно попробовать уходить в крайности RISC/CISC и посмотреть что — лучше, а что — хуже.
salym5
3D Apple C Arch Android Программа HitLeap Viewer с использованием VPS сервера.
Стоит ли заниматься продвижением собственного сайта? Большинство людей, которые шагают в ногу со временем, неразрывно связаны с глобальной сетью. Перед каждым из них, независимо от сферы деятельности, встает вопрос, а не создать ли свой собственный сайт или веб-страницу. Читать дальше на traflink.blogspot.ru

qnikst
C job programming кто хочет поработать на благо военки в славном городе гатчине (от питера добраться просто) за какие-то 80-90к (если все уметь) или на сколько-то меньше, если быть готовым учиться. Делать так чтобы корабли меньше тонули, а на складах было меньше ЧП, ну или хотя бы чтобы об этом узнали все кому следует знать. Там всякие C + возможно что-то более высокоуровневое можно.
Говорят секретности или нет или та, что проблем с загран паспортом и выездами не будет.

OCTAGRAM
C CPC emscripten Asyncify Continuation Passing C Руководство
Вот эту бы штуку — да в разрыв между AdaMagic и EmScripten воткнуть, раз уж с Asyncify не заладилось.
ASYNCIFY has a bad worst-case of large code size: If it needs to modify many methods, it can grow code size very significantly (even 10x more was seen).
Вот интересно, а в CPC тоже в 10 раз увеличение из-за нескольких точек входа или как-то попроще всё обошлось? Если там смогли, что не так с EmScripten?

Нашёл пока ключевую проблему в CPC — это отсутствие поддержки longjmp, а при компиляции в режиме C AdaMagic использует longjmp. В чём тут проблема, не понятно. Может быть, всё же можно реализовать.