// quine.c
// compile with -std=c23
#include <stdio.h>
int main() {
char src[] = {
#embed "quine.c"
,0
};
printf("%s", src);
return 0;
}

@ireneista something we did not notice until we had to look back at tools such as this is that we've collectively made tremendous progress in... "binutils"

borland's toolchain is built around extending OMF (Object Module Format) which dates back to *8-bit* machines

see also: rust and modern c++ hairballs regularly running into msvc link.exe limitations, or thephd.dev spending all that effort trying to make #embed work, which we didn't understand at all until we tried to convert a binary file into an object file for something that didn't use ELF (wasm iirc?)

I finally saw me nudged to install another add-on in Firefox to “fix” the #referrer header. Bad enough that #YouTube requires a referrer header to allow #embed|s. Now I also fell over OSM requiring one (this one I can get). But I don’t want to globally enable cross-origin referrer headers. Hence “Toggle Referrer.” It disables refererrs by default, and has a small spoofing list for annoying web resources that really want to have a referrer. YouTube gets a Google.com referrer. Take that, big tech!

https://addons.mozilla.org/firefox/addon/togglereferrer/

С++26 — готов! Итоги встречи ISO C++ в Кройдоне

Привет! На связи Антон Полухин из Техплатформы Городских сервисов Яндекса. На днях в Кройдоне состоялась встреча международного комитета по стандартизации языка программирования C++, в которой я принимал активное участие. В этот раз (как и в прошлый), всё внимание было сосредоточено на C++26 и… теперь он готов! Осталось пройти формальные этапы в вышестоящих инстанциях ISO, и мы получим C++26 который заслужили. В нём будут: – reflection, – контракты, – SIMD, – линейная алгебра, – расширенные возможности сonstexpr, – hardening, – Hazard Pointer и RCU, – #embed, – executors, – и многие другие полезные вещи. Подробности и новинки

https://habr.com/ru/companies/yandex/articles/1015474/?utm_source=habrahabr&utm_medium=rss&utm_campaign=1015474

#contracts #reflection #c++26 ++26 ++ #программирование #simd #compiletime #compile_time #hardening

С++26 — готов! Итоги встречи ISO C++ в Кройдоне

Привет! На связи Антон Полухин из Техплатформы Городских сервисов Яндекса. На днях в Кройдоне состоялась встреча международного комитета по стандартизации языка...

Хабр

С++26 — готов! Итоги встречи ISO C++ в Кройдоне

Привет! На связи Антон Полухин из Техплатформы Городских сервисов Яндекса. На днях в Кройдоне состоялась встреча международного комитета по стандартизации языка программирования C++, в которой я принимал активное участие. В этот раз (как и в прошлый), всё внимание было сосредоточено на C++26 и… теперь он готов! Осталось пройти формальные этапы в вышестоящих инстанциях ISO, и мы получим C++26 который заслужили. В нём будут: – reflection, – контракты, – SIMD, – линейная алгебра, – расширенные возможности сonstexpr, – hardening, – Hazard Pointer и RCU, – #embed, – executors, – и многие другие полезные вещи. Подробности и новинки

https://habr.com/ru/companies/yandex/articles/1015474/

#contracts #reflection #c++26 ++26 ++ #программирование #simd #compiletime #compile_time #hardening

С++26 — готов! Итоги встречи ISO C++ в Кройдоне

Привет! На связи Антон Полухин из Техплатформы Городских сервисов Яндекса. На днях в Кройдоне состоялась встреча международного комитета по стандартизации языка...

Хабр
Zijn er mensen die een video van hun Peertube platform hebben ingesloten, #embed , op een WordPress website? Het is mij niet gelukt, vandaar. #peertube #embed #video #fediverse #dtv #website

@DocBohn

nitpicking: #embed is not a macro but should be a preprocessor directive.

thanks to
@thephd

If you don't want to depend on the name of the original file, replace the #embed line with
```
#embed __FILE__
```
Thanks to the #c23 #embed macro, I may have written the world's shortest #quine.
```c
#include<stdio.h>
int main(){puts((char[]){
#embed"q.c"
,0});}
```
(I doubt that I'm the first to do this)
We just need to politely ignore the extra `\n` injected by `puts`. Otherwise, replace `puts` with `printf`.