opennet.ru
Dirt Pipe. Отличное ведь название.
Dirt Pipe. Отличное ведь название.
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эксперт сишки.
opennet.ru
Эпичная дыра. Эх, щас бы писать ответственный софт на языке программирования, а не на Си, правда?
Эпичная дыра. Эх, щас бы писать ответственный софт на языке программирования, а не на Си, правда?
opennet.ru
Так как счётчик аргументов не проверялся на соответствие фактическому содержимому массива и полагалось, что он всегда больше 1, в случае передачи процессу пустого массива argv, что допускает функция execve в Linux, pkexec воспринимал значение NULL как первый аргумент (имя процесса), а следующую за пределами буфера память, как далее идущее содержимое массива. Проблема в том, что следом за массивом argv в памяти размещается массив envp, содержащий переменные окружения.
Получив значение argv[1], pkexec пытается с учётом файловых путей в PATH определить полный путь к исполняемому файлу и записать указатель на строку с полный путём обратно в argv[1]
#include <stdbool.h>
bool f() { return (bool)(0/0);}
What should return scanf_s("%s", s, 1) for input "asdf" ?
0 or -1?
Такое чувство, что я вообще C не знаю.
Если есть inline — то все хорошо.
opennet.ru
Помнится, давеча смеялись над JS, оптимизатор которого делал нечто подобное, и минификация ускоряла/замедляла выполнение кода.
Дело оказалось в том, что GCC принимает решение об использовании inline-развёртывания функций в зависимости от результатов косвенной оценки размера результирующего кода (даже если функция определена с ключевым словом "inline"). Компилятор не учитывает фактический размер результирующего кода, а пытается прогнозировать его. Для ассемблерных вставок прогнозирование делается на основе числа переводов строк ("\n") и разделителей (";") в исходном тексте.
Помнится, давеча смеялись над JS, оптимизатор которого делал нечто подобное, и минификация ускоряла/замедляла выполнение кода.
Деньги нужны адски.
Мне нужно 20 тысяч годового дохода, так как я уже не могу спать с женщиной, если она не в шёлковой сорочке. К тому же, когда у меня есть деньги, я чувствую себя как на облаках, немножко пьяно, и не могу не тратить их на всякий вздор.
Третьего дня я был именинник; ожидал подарков и не получил ни шиша.
А. П. Чехов, письма
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
это все что надо знать о си.
#include <Object.h>
#define Object XtObject
#include <X11/Intrinsic.h>
#include <X11/IntrinsicP.h>
#undef Object
Ещё, помню, заголовки Qt вываливают в пространство имён помойку из WinAPI, а вместе с ней — #define GetComputerName GetComputerNameW, и в самом Qt ломается класс с таким методом, вот просто взять и собрать Qt не получается, там тоже хаки против таких конфликтов, работающие с переменным успехом.
Даже, если для целевой системы нет обычного транслятора Ады, а заголовки — только на Це, только ради того, чтоб не страдать такой ерундой, имеет смысл конвертировать цешные заголовочные файлы в адские интерфейсные пакеты, писать на Аде и транслировать средствами AdaMagic.
Разработка ПО похоже на переплывание реки из бурлящей кислоты, и мы строим корабли с толстыми стенами, и мы делаем толстые иллюминаторы, а кислота сильна, кислота разъедает, а мы строим корабли всё толще. Выбрать Аду — значит, отгородиться хотя бы с точки зрения пространств имён от творящихся снаружи ужасов.
highloadcup.ru 8 место финал. Лучше чем 13, но все же.
Я налажал где только мог, последующая оптимизация только замедляла все. Вопросов больше чем ответов. Более поздние версии тормознее чем более ранние. memcmp(4 bytes) дольше чем ((int)c) = 0x0A0D0A0D. Опция -O3 медленнее на 10% чем no optimizations.
НО! Непонятно, как у людей еще быстрей, архитектура вроде одинаковая. Читаем решения.
Программировали с @tilarids на гейбуках, там же меряли (!!) (для чего? все равно корелляции с офиц линукс-тестилкой по перфомансу не было). Учет версий вели с трудом. Тест корректности ответов я написал в предпоследний день, наполовину. До того только "пилил", "точить пилу" было некогда 8).
Жажда адреналина и дух соревновательности это всё. Ради него. Следует задуматься. Его-то я получил сполна, а первое место — нет 8)
richardhaskell.com
коротко, хардварная имплементация раз в 10 быстрее чем реализация на ЯП, Си как обычно тормозит, FORTH-процессоры это ня, надо зопейлить таковой на своей плисине, можно попробовать уходить в крайности RISC/CISC и посмотреть что — лучше, а что — хуже.
Интересный текст коротко, хардварная имплементация раз в 10 быстрее чем реализация на ЯП, Си как обычно тормозит, FORTH-процессоры это ня, надо зопейлить таковой на своей плисине, можно попробовать уходить в крайности RISC/CISC и посмотреть что — лучше, а что — хуже.
youtube.com Поздравление с Пасхой!
Стоит ли заниматься продвижением собственного сайта? Большинство людей, которые шагают в ногу со временем, неразрывно связаны с глобальной сетью. Перед каждым из них, независимо от сферы деятельности, встает вопрос, а не создать ли свой собственный сайт или веб-страницу. Читать дальше на traflink.blogspot.ru
Говорят секретности или нет или та, что проблем с загран паспортом и выездами не будет.
When you shoot in Portrait mode on iPhone 7 Plus, it softens the background. That’s the difference between an alley and a quaint little side street.
appleiphone7andlotmoregifts.blogspot.ru
Continuation Passing C Руководство
Вот эту бы штуку — да в разрыв между AdaMagic и EmScripten воткнуть, раз уж с Asyncify не заладилось.
Нашёл пока ключевую проблему в CPC — это отсутствие поддержки longjmp, а при компиляции в режиме C AdaMagic использует longjmp. В чём тут проблема, не понятно. Может быть, всё же можно реализовать.
Вот эту бы штуку — да в разрыв между 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. В чём тут проблема, не понятно. Может быть, всё же можно реализовать.