Evropská komise naléhavě vyzvala členské státy EU, aby kvůli ochraně nezletilých na internetu urychlily zavádění unijní aplikace pro ověřování věku a zajistily její dostupnost do konce roku. Členské státy mohou zavést aplikaci EU pro ověřování věku jako samostatnou aplikaci nebo ji integrovat do takzvané evropské peněženky digitální identity.
Richard Biener oznámil vydání verze 16.1 (16.1.0) kolekce kompilátorů pro různé programovací jazyky GCC (GNU Compiler Collection). Jedná se o první stabilní verzi řady 16. Přehled změn, nových vlastností a oprav a aktualizovaná dokumentace na stránkách projektu. Některé zdrojové kódy, které bylo možné přeložit s předchozími verzemi GCC, bude nutné upravit.
Zulip Server z open source komunikační platformy Zulip (Wikipedie, GitHub) byl vydán ve verzi 12.0. Přehled novinek v příspěvku na blogu.
Před 30 lety, tj. v úterý 30. dubna 1996, byl spuštěn Seznam.cz.
Byly zpracovány a zveřejněny všechny videozáznamy, které stojí za zveřejnění, z konference FOSDEM 2026.
Od úterý 28. dubna musí nově uváděné notebooky v Evropské unii podporovat nabíjení přes USB-C. Jednotná nabíječka byla schválena Evropským parlamentem v říjnu 2022.
Byly publikovány informace o kritické zranitelnosti CVE-2026-31431 pojmenované Copy Fail v Linuxu, konkrétně v kryptografii (AF_ALG). Běžný uživatel může získat práva roota (lokální eskalaci práv). Na všech distribucích Linuxu vydaných od roku 2017. Pomocí 732bajtového skriptu. V upstreamu je již opraveno. Zranitelnost byla nalezena pomocí AI Xint Code.
Textový editor Zed dospěl do verze 1.0. Představení v příspěvku na blogu.
Vývojáři svobodného 3D softwaru Blender představili (𝕏, Mastodon, Bluesky) nejnovějšího firemního sponzora Blenderu. Je ním společnost Anthropic stojící za AI Claude a úroveň sponzoringu je Patron, tj. minimálně 240 tisíc eur ročně. Anthropic oznámil sponzorství v tiskové zprávě Claude for Creative Work.
VNC server wayvnc pro Wayland kompozitory postavené nad wlroots - ne GNOME, KDE nebo Weston - byl vydán ve verzi 0.10.0. Vydána byla také verze 1.0.0 související knihovny neatvnc.
ve flamu na rootu jsem nasel krasnou vecicku o niz jsem ani netusil, ze ji gcc umi -- optimalizace podle vysledku profileru. pri beznych optimalizacich nema tradicni prekladac (nemlouvim ted o JIT kompilaci) sanci zjistit, jak ktere casti kodu budou volany casto, z jakych mist a podobne... a proste jen hada a tipuje. nicmene, pomoci vcelku zastrcenych direktiv prekladace -fprofile-generate a -fprofile-use jde situace velice hezky zmenit a hodne pozitivnim smerem.
-fprofile-generate (aby se mohly generovat profilacni informace)-fprofile-use (aby se vyuzily optimalizace)
CFLAGS+=${PROFILE_ARGS}
...
optimal:
make clean
make PROFILE_ARGS=-fprofile-generate
make test0 PROFILE_ARGS=-fprofile-generate
make clean
make PROFILE_ARGS=-fprofile-use
rm *.gcda
rm *.gcno
vysledky jsou opravdu "vau!":
jako test jsem pouzil svuj interpretr schemu s temito dalsimi nastavenimi:
-Wall -Winline -O3 -std=c99 -pedantic -finline-limit=100000 --param large-function-growth=100000
Tiskni
Sdílej:
btw. chudaci uzivatele gentoo ... s takovou by meli kompilovat cely system na dvakratJá bych to pro těch pár procent klidně udělal
-fprofile-generate, pak se s ním zkompiluje kernel s -fprofile-generate, pak se bude kernel chvíli používat, pak se kernel zkompiluje pomocí -fprofile-use a v tu chvíli budeš mít v GCC nasbíraný vhodný profil, aby sis GCC mohl zkompilovat s -fprofile-use.
"btw. chudaci uzivatele gentoo ... s takovou by meli kompilovat cely system na dvakrat ;-] "U OpenOffice.org se to ale vyplatí, ne?
btw. chudaci uzivatele gentoo ... s takovou by meli kompilovat cely system na dvakrat ;-]Spíše natřikrát. V prvním kroku se zdrojáky prostě spustí/přeloží pomocí tcc (aby člověk nemusel čekat na doběh kompilace). Potom se na pozadí spustí kompilace s -fprofile-generate a nakonec třetí kompilace tentokrát už s -fprofile-use. Ještě by to chtělo nějakého démona, který pozná špatně profilovanou binárku a na pozadí ji rekompiluje
BTW: nezkoušel někdo tcc trochu důkladněji?
problem jak z kvantove fyzikyOno už to, že se nějaký profiling dělá, značně mění podmínky. Zvlášť u programů, kde je něco časově kritického.
ten kod na kterem jsem to testoval, je rucne optimalizovany snad na maximum (agresivni inlining, optimalizace na predavani argumentu pres resgistry,....) ...Ale to není ručně optimalizované vůbec. Zkus kouknout, co žere nejvíc času a přepsat to efektivněji, i kdyby se měl kód zesložitit. Pak se začnou dít zázraky a stovky procent budou jen lítat.
Ale to není ručně optimalizované vůbec.a ze si jste tim tak jisty! ;-] jenom nekolik clovekodni jsem stravil pri hledani vhodne struktury pro zasobnik -- a ze jich bylo a ze jsou mezi nema rozdily ;-] btw. vsechno zere vicemene jedna velka smycka, ktera prehazuje hodnoty z jednoho zasobniku na druhy, protoze tam nic jineho neni ;-] (viz moje predchozi posty) ta hranice, kdy se jedna jeste o optimalizaci a kdy o jiny algoritmus, je opravdu hodne nezretelna.... brano ad absurdum, tak nejlepsi optimalizaci by to bylo prepsat z interpretru na prekladac... ;-] ale to uz by nebylo ono, protoze s tim delam dalsi divociny ;-]
ad btw: A co to přepsat jen tak na půl?
"make -j2", to same minesota mapserver a najdou se dalsi.... ale co je dneska idealni?!
$ more x.c
test(a) {
if (a & 1) return fun_1(a);
return fun_2(a);
}
Moc se ale nevyznám ve výstupu. Evidentně LPBX1 je 32 byte, které fungují jako čtyři 64-bitové countery, které počítají průchody čtyřmi základními bloky oné funkce. LC0 je taky jasné, jméno modulu. trojka a čtverka by mohly být čísla řádků... Ostatní se mi ale jeví jako binární šum bez špetky logiky..
.local .LPBX1
.comm .LPBX1,32,32
.section .rodata
.LC0:
.string "x.gcda"
.data
.align 4
.LC1:
.long 3
.long 1555776990
.long 4
.align 32
.type .LPBX0, @object
.size .LPBX0, 52
.LPBX0:
.long 875573616
.long 0
.long 1901502412
.long .LC0
.long 1
.long .LC1
.long 1
.long 4
.long .LPBX1
.long __gcov_merge_add
.zero 12
.text
.type _GLOBAL__I_0_test, @function
_GLOBAL__I_0_test:
pushl %ebp
movl %esp, %ebp
subl $8, %esp
movl $.LPBX0, (%esp)
call __gcov_init
leave
ret
.size _GLOBAL__I_0_test, .-_GLOBAL__I_0_test
.section .ctors,"aw",@progbits
.align 4
.long _GLOBAL__I_0_test
.align 4
.long _GLOBAL__I_0_test