Alex Fails Some News Channel
277 subscribers
661 photos
27 videos
31 files
267 links
Всякая хрень от Фэйлса
Download Telegram
Forwarded from Vladislav 🇺🇸🚜
❤‍🔥4😁42🤔1😭1
Forwarded from Мемсолог
12
Последняя (надеемся) безумная новость на сегодня про СДЭК — компанию взломали, когда все айтишники были на фестивале кибербезопасности.

Ответственность за неработающий в течение двух дней СДЭК взяла на себя хакерская группа HEAD MARE.

Они пишут, что получили доступ к системе в день, когда все сотрудники информационной безопасности были в Лужниках на фестивале Positivi Hack.

Круто провели время, получается.
🤡5😁4🥰1
Forwarded from Stanislav Ershov
🤣5🔥3
Forwarded from Dr. Friedrich von Never
🔥3😁2
Forwarded from Stanislav Ershov
😁9😍1
Когда решил что-то отправить через СДЕК , и надеялся, что они уже отправляют
🤣4😭2
Forwarded from veselcraft
😁7🤔2🤯1
Forwarded from RWPS::Mirror
🔥2
Forwarded from acidicMercury8
👍54😁2🤣1🤨1
https://github.com/llvm/llvm-project/pull/68620

ПОСОНЫ, ТУТ #embed ВЛЕТЕЛ В ШЛАНГ, теперь заживем!

upd1: пока ревертнули, чтобы починить билдботов, но работа идет!
upd2: влили с фиксами, йее

Вкратце (нет):
#embed - это новая директива препроцессора, позволяющая НОРМАЛЬНО добавлять бинарные файлы в ваш исходный код (пока что на языке Си, но в C++ оно тоже скоро просочится). Если вы используете какие-то бинарные данные типа картинок, сырых двоичных ключей, гуидов, и пр., то эта фича для вас, и это то, что вы ждали 10 лет в Азкабане 40+ лет с момента создания сишки!

Пример кода:
// firmware_sound.c
const char wave_buf[] =
#embed "notification.wav"
; // добавим бинарный файл сразу в прошивку


Текущие подходы состоят из лютых костылей типа скриптов, которые печатают бинарь как массив; xxd; bin2c (очень распространен в определенных кругах) и прочие более-менее кривые (или) нет скрипты на ваших любимых языках оболочки типа cmd/bash/fish/python.

Эта бумага пережила 12 ревизий и готовилась примерно 5-6 лет!!! (включая прошлую версию, в которой также был std::embed - consteval-функция, которая делает то же самое, но на этапе компиляции, а не препроцессинга).
Автор потратил кучу нервов и сил (почитать его слезы и посочувствовать можно в его блоге здесь (обзор и бенчмарки - [1]), здесь (подход с языком Circle и бенчмарки - [2]) здесь (заметки для критиков - [3]), здесь (заметка о том, что принято в C23 и будет поэтому в C++26 - [4])). Его долго пинали в комитетах, то говорили, что это будет медленно работать (бенчмарки показали обратное, см. ниже), то говорили, чтобы он придумал "более generic"-подход, в стиле языка Circle, который, грубо говоря, является C++ с возможностью выполнять любой код на этапе компиляции, главное, пометить блок/функцию собачкой (@).

Бенчмарки из статьи [2] выглядят так:

Методология | Время
----------------+--------------
#embed | 17 seconds
std::embed | 16 seconds
#include, |
сгенерированный | 621 seconds
xxd | (КАРЛ!!!!)


Теперь эта фича уже точно будет в Clang 19 (кому не терпится, соберите текущий trunk и радуйтесь), в MSVC есть тикет на добавление, в GCC тоже (для нетерпеливых есть патч в тикете, можете собрать).

Поздравляю автора с этим достижением, и просто убеждаюсь, что в каждом меме есть доля шутки 😢

#длиннопостик #cpp #std_embed #thephd
🔥7👍5
Forwarded from Лемурмурмур 🇰🇿
🕊9