Výzkumníci ukazují, jak mohou otevřené tunely a IPv6 Extension Headers synchronizovat pakety do krátkých provozních špiček. V kontrolovaném experimentu naměřili přes 180násobnou koncentraci paketového toku vůči průměrné rychlosti odesílání — nikoli 180násobné zvětšení objemu dat. Článek obsahuje metodiku, limity měření i mitigace pro GRE, IPIP a další tunely.
Po velkém úspěchu prvního MobileLinux Hackdaye se vracíme do Českých Budějovic s druhým ročníkem. V pátek 30. října 2026 od 10:00 se v prostorách Jihočeské univerzity uskuteční Embedded & MobileLinux Hackday #2. Těšit se můžete na témata jako Immutable Linux na telefonech (BengalOS), U-Boot a upstream vývoj, AI optimalizace pro embedded systémy nebo otevřený hardware. Nebude chybět praktické hackování, sdílení zkušeností a možnost … více »
Dne 21. října 2026 vydal projekt Node.js bezpečnostní aktualizace opravující deset zranitelností, včetně jedné umožňující potenciální vzdálené spuštění kódu (RCE). Nejzajímavější je CVE-2026-111497, chyba dekodéru Brotli, kterou objevili výzkumníci využívající OpenAI Codex Security. Chyba je v nativním dekodéru Brotli, nikoli v samotném JavaScriptu. Speciálně vytvořený komprimovaný vstup způsobí, že dekodér zamění
… více »Francouzský výrobce kabelů Nexans upozornil na napjaté dodávky elektrických kabelů. Výstavba nové výrobní linky pro některé typy kabelů může trvat přibližně tři roky. Datacentra potřebují rozsáhlé nízkonapěťové a středněnapěťové rozvody. Poptávka roste současně s modernizací elektrických sítí. Někteří odběratelé proto uzavírají výrazně delší dodavatelské smlouvy [Reuters].
Představena byla (𝕏) virtuální platforma FLYBENCH FPV, která nováčky provede zapojením a konstrukcí dronů.
Google Chrome 156 byl prohlášen za stabilní. Přehled novinek v poznámkách k vydání. Opraveno bylo 353 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.
Indická společnost eMudhra po bezpečnostním incidentu, tj. kompromitaci soukromých klíčů osmi mezilehlých certifikátů své certifikační autority, opouští globální byznys s SSL/TLS certifikáty.
Dle Phoronixu zveřejnila společnost Trend Micro prostřednictvím programu Zero Day Initiative (ZDI) několik hlášení bezpečnostních zranitelností přímo na veřejném mailing listu LKML, přestože některé chyby dosud nemají opravu začleněnou do hlavní větve jádra. Mezi hlášenými problémy jsou dvě zranitelnosti s hodnocením CVSS 9.0, týkající se SMB Direct a KSMBD, které mohou umožnit vzdálené spuštění kódu. Další hlášení se týkají … více »
Správce hesel KeePassXC byl vydán ve verzi 2.8.0. Přechází na Qt 6, podporuje vkládání hesel s Waylandem, rychlé odemykání pomocí Polkitu nebo možnost nastavení klávesových zkratek (seznam změn).
Databáze DuckDB (Wikipedie) byla vydána ve verzi 2.0.0 LTS. S kódovým názvem Cinnamon Teal (čírka skořicová). S vyladěným protokolem Quack.
Byla vytvořena větev gcc-in-cxx, kde se bude sada kompilátorů GCC postupně přepisovat z čistého C do C++. Cílem je zjednodušit kód GCC a usnadnit jeho budoucí rozvoj.
Tiskni
Sdílej:
, aby se kód trochu znepřehlednil.
to by byla jiná podívaná.
vim ~/.emacs
) a o to mi šlo.
Jak by se ale dal udělat cyklus?
Ale z něčeho tam přece cyklus nebo rekurze jít udělat musí, mi neříkejte že ne
Skutečné argumenty.
Ale to taky není hned automaticky dané. Nějaké možnosti zpracování tam přeci jen jsou.
(A ani tohle nám nedokáže, že s HTML+CSS nedokážeme řešit žádné problémy, i když ten vytoužený kompilátor nám to asi dost zhatí, no.)
) nejsem o tom 100% přesvědčen (narozdíl od ostatních, kteří to berou jako samozřejmý fakt na první pohled). A potřebuju asi něco víc přesvědčivého než se tu zatím prezentovalo, abych byl
Není třeba ničemu věřit, dokaž ekvivalenci HTML třeba s lambda kalkulem a máš to. Já jsem v něm nic k tomuto účelu dostatečného nenašel.
A víme, že máme skutečně
turingovsky úplný jazyk bez podmíněného skoku?

Narážíte na Churchovu tezi?
Že jsou TM a while-programy ekvivalentní dokázáno je. Že je každá efektivně vyčíslitelná funkce implementovatelná TM a obráceně nikoliv, protože se jaksi nepodařilo definovat pojem efektivně vyčíslitelný.
Že by každá posloupnost instrukcí byla nutně programem?Já jsem napsal, že každý program je (neprázdnou) posloupností instrukcí, ne že každá posloupnost instrukcí je programem. Navíc když HTML nemá žádnou instrukci, bylo by mi v této debatě tvrzení o každé (neprázdné) posloupnosti instrukcí poněkud na houby.
btw. neplette sem porad ty instrukce... rada programovacich jazyku (i programatoru) se bez nich s prehledem obejde....Programovací jazyk a programátor možná. Ale neobjeví se tam ty instrukce v okamžiku, kdy je ten program prováděn? Jestli se nepletu, tak deklarativní programování znamená, že programátor popíše vlastnosti výsledku a interpret toho programu pak najde postup, jak se k tomu výsledku dobrat. A ten postup je zase posloupnost instrukcí. Z tohoto úhlu pohledu pak HTML je programem, protože prohlížeč převede zdrojový kód (spolu se specifikací a případně doplněním specifikace vývojáři prohlížeče) převede na instrukce, jak stránku zobrazit. Jenže není pak programem už úplně všechno?
Program je posloupnost instrukcí, které má provádět nějaký stroj (nebo třeba člověk), program bez instrukcí nelze sestrojit.prominte, ale ta definice fakt neni stastna... co treba funckionalni programovani, kde je program kompozici funkci, co treba logicke programovani, kde je program mnozinou faktu... to nemluvim ani o onom nestastnem turingove stroji, kde program je mnozina stavu, prechodova funkce a takove ty nesmysly...
) daný tím jak vypadá stroj a páska nebo výraz LK. Vždy je to stejné a oba modely jsou si v tom rovné. Pokud říkáme, že TS má vedlejší efekty a LK ne, tak jima asi nemyslíme nic moc zásadního
prechodova funkce je instrukcevs.
Program je posloupnost instrukcínechci to vytrhavat z kontextu, ale prechodovou funkci u TS muzete chapat jako program, ale porad to bude _funkce_ a ne posloupnost instrukci...
Pokud tedy pojem programování rozšířím z imperativního programování i na deklarativní programování,aha...
Jenomže s takovým rozšířením je program cokoliv, a můžu prohlásit, že kompilátor céčka napíšu třeba ve stromu před barákem. Jenom musím nadefinovat vhodný programovací jazyk, který stromy transformuje na kompilátory.Pokud tedy pojem programování rozšířím z imperativního programování i na deklarativní programování,aha...
zeleny-list <-> mov ax,0 hnedy-list <-> inc ax list-s-housenkou <-> dec ax jabko-s-cervem <-> skoc na jinou vetev jabko-bez-cerva <-> pokracuj dalsim listem
).
Vlastně i kompilátor Javy by byl mnohem jednodušší v Haskellu než v Javě. (V mém případě ten pokus o zastrašení vyšel, prchám před kafem zbaběle do kouta.
)
vim ~/.emacs
Tím byl první bootstrap v historii kompilátorů dokončen.
( LISP - stále nová prvenství již po padesát let.)
Ale přesvědč k něčemu takovému lidi, že jo. Navíc by ten GDC museli taky dodělat. ;/
...ale je to jazyk, který přivádí lidi do blázince. (Proto ho mám rád.)Toužíš po kamarádech?
Je tam řada věcí, které mají programátorovi usnadnit život, ale něco jim chybí (například: C++ má destruktory a virtuální funkce, ale nemá garbage collector; C++ může vytvářet objekty staticky nebo dynamicky, ale v destruktoru nejde zjistit, který je který; zjišťování typů objektů za běhu je strašně omezené; vícenásobná dědičnost je podporována, ale kdo ji použije, do smrti veselý nebude).Jde to poznat z pointeru
Chce to ale v každé třídě alespoň jeden volný bit kam to zapsat.
programátor ho musí umět a některé rysy C++ se učí setsakra blběNeni pravda, jenom se u C++ clovek musi ucit princip a ne dusledky. Ale uznavam ze predavani jmenem nesedi kazdemu.
ale nemá garbage collectorNa co taky? Garbage collector je pro jazyk typu C++ naprosta zbytecnost. Na 99,9% pripadu mi staci chytry pointer.
templaty, přetěžování operátorůFatalni dusledky si spis dokazu predstavit u vyjimek a virtualnich funkci. Pomoci template se neda nic zkazit, maximalne zneprehlednit kod a pretezovani operatoru??? K tomu strileni do nohy:
"C makes it easy to shoot yourself in the foot. C++ makes it harder, but when you do, it blows away your whole leg." - Bjarne Stroustrup
Otázka je, co berete jako C++ jazyk ? Používáte STL, výjimky, RTTI ? Nemusíte. Já beru stl jako knihovnu, když se mi nehodí (a to nehodí
), tak ji nepoužívám. Ostatní jmenované věci také.
Takže ještě jednou. Je podle vás C++ bez stl, výjimek a RTTI pomalejší než C ?
Prosím silný argument
Jde o vlastnosti jazyka jako je (násobná) dědičnost, virtuální metody, které čistě technicky musí někde držet tabulku metod za běhu (paměťová náročnost za běhu), a na druhou stranu snaha o early binding ostatních metod, které zase žerou čas a paměť při překladu.A jak udelas ekvivalentni funkcionalitu v Cecku ty chytraku? Bez tabulky? To bych rad vedel jak. Delka prekladu nikoho netrapi (ano normalni relativne male projekty v C++ se mi prekladaji desitky minut, no a?).
a pokud umite programovat v C++ i v C, tak program z C bude vetsinou i rychlejsiTak to chci videt.
Bavíme se o jazyku nebo o STL ?STL je popsané v ISO C++, takže je součástí jazyka.
Takže fukce void f() v C++ bude pomalejší než funkce void f(void) v C? I když vynechám výjimky (tj jediný důvod proč je binárka větší a možná minimálně pomalejší) ?Když napíšu funkci v C tak, aby zárověň byla i funkcí v C++, tak budou stejně rychlé. V tom případě to C++ ale nepotřebuji, když ho nepoužívám, že.
A teď příklad z praxe. Řekněte mi, jak v čistém C uděléte třeba objekt řetězce s implicitním sdílením dat alá QString z Qt. Možná se vám to podaří, ale jak se s tím bude pracovat ? Na tyto věci je C++ prostě jak dělané a rychlostní penalizace se vám budou dokazovat jen těžce.Samozřejmě, že toto umím naprogramovat. Zadarmo Vám to ale psát nebudu :-P
Ono je to bohužel tak, že složité makrové konstrukce se do C++ dají přepsat jen srovnatelně spletitými templaty, opravdová generika nenahradíte ani jedním.
Ono je to bohužel tak, že složité makrové konstrukce se do C++ dají přepsat jen srovnatelně spletitými templaty, opravdová generika nenahradíte ani jedním.Cyklus napisu pomoci sablon na par radku. U maker to musi byt pres nekolik souboru. A tohle plati pro vetsinu konstrukci.
Zkuste ukázat, jak pomocí šablon napsat ekvivalent generických hashovacích tabulek z libucw (viz příloha), který by byl přehlednější, a přitom stejně obecný a stejně rychlý. Já je napsal pomocí maker a přiznávám se, že docela zběsile. Jenže šablonami bych to lépe neuměl. Zkuste to i vy, třeba jste šikovnější a znáte C++ lépe.
Btw. licencovat hlavickovy soubor jako LGPL je trochu na hlavu. Hlavickovy soubor licencovany LGPL je zcela identicky s GPL licenci.
Co treba takova otevrena struktura, hmm?Co to je? Mozna to znam pod jinym nazvem, ale otevrena struktura mi opravdu nic nerika.
Jinak tim, co jsem psal jsem myslel to, ze program napsany obvyklymi zpusoby v C++ nebude rychlejsi nez ten samy napsany v C.Pak to ale neni argument pro C ale pro C++.
Co to je? Mozna to znam pod jinym nazvem, ale otevrena struktura mi opravdu nic nerika.Otevřená struktura obsahuje otevřené pole.
struct A { char a[]; };
Dá se to řešit i jinak, navíc nevím jestli je toto v ISO standardu.
struct A
{
...
char a[1];
};
Tímto jsem získal to samé v bledě modrém. Tento postup dokonce používám, ale otázka je, k čemu se toto normálnímu programátorovi hodí ? Vždyť tuto techniku využije někdo, kdo opravdu ví co dělá a čeho tím dosáhne. Popravdě ani ten předchozí příklad z C [] jsem snad nikde neviděl (a to do zdrojáků čumím pořád).
struct { t* x; }; pripadne niceho struct { t x[1]; }; (semanticky v podstate identicka zalezitost) jak napsal nekdo o par prispevku vys.
Nevim jestli tohle bylo v ANSI C ze ktereho aktualni norma C++ vychazi (mam tady pouze ISO standard), pokud bylo, tak jde o opravdu podivnou zalezitost.
akorat na vas prekladac bude hazet warningy, ze lezete za konec poleCo pouzivate za kompilator? To by se mi docela hodilo.
toto zvetsi samotnou strukturuAno, ale tady se bavíme o přetypování, nebo vytvoření struktury / třídy pomocí malloc(). Jen v málo případech budu vytvářet takovou strukturu na zásobníku, a to se opět dá udělat například pomocí šablony a dědičosti:
// Použít spolu s druhým příkladem
template<int N>
struct TempA : public A
{
private:
unsigned char _storage[N - 1];
};
akorat na vas prekladac bude hazet warningyTo se mi nikdy nestalo, navíc v C++ přece můžeme napsat getter:
struct A
{
...
unsigned char _data[1];
inline unsigned char* data() { return _data; }
};
Velikost můžu vypočítat jako sizeof(A)-sizeof(unsigned char) popřípadě si na to napsat inline statickou funkci. Problém vyřešen.
Moje řešení nebude ani pomalejší a ani nebude zabírat víc paměti. Je ekvivalentní tomu z C. Protože C++ tuto možnost nativně neumožňuje, tak jsem si pomohl korektním způsobem a docílil stejné funkcionality.
Jen tak pro zajímavost:)
Tuto techniku co jsem napsal používá například Qt toolkit pro primitivní třídy jako QString, QVector, atd. Všechny jsou implicitně sdílené. Abych mohl porovnat implementaci tak jsem se teď podíval na zdrojáky glib, kde je string definovaný takto:
struct _GString
{
gchar *str;
gsize len;
gsize allocated_len;
};
Z toho vyplívá, že Qt je z hlediska řetězců efektivnější i ve spotřebě paměti i rychlosti (v glib se musí udělat 2x alokace paměti pro vytvoření řetězce). Takže více záleží opravdu na zkušenostech a přemýšlení programátora než na tom, jestli se to píše v C nebo C++. Pokud nedělám knihovnu typu libjpeg nebo dbus, je pro mě C++ jasná volba.
STL je popsané v ISO C++, takže je součástí jazyka.Ale když mi nevyhovuje tak ho snad používat nemusím nebo můžu používat jinou knihovnu, takže toto není argument. To je jako bych napsal, že jazyk C je pomalý, protože knihova XYZ je pomalá nebo špatně napsaná.
Když napíšu funkci v C tak, aby zárověň byla i funkcí v C++, tak budou stejně rychlé. V tom případě to C++ ale nepotřebuji, když ho nepoužívám, že.Jenže ty C++ funkce nejsou v ničem jiné než ty v C. To, že funkce třídy skrývají argument 'this' je snad každému jasné, tak v čem se liší?
Samozřejmě, že toto umím naprogramovat. Zadarmo Vám to ale psát nebudu :-PAle šlo mi o to, jak se vám s tím bude pracovat ? ... Jediné, proč má podle mě jazyk C smysl jsou knihovny typu libpng atd, víme proč... Ale v jiných oblastech jako třeba vývoj GUI aplikace je použítí C šílenost. Všechny ty konstrukce v Gtk alá GObject jsou jen náhražky, které jsou v C++ a dalších jazycích naprosto triviální a běžné (dědičnost).
, musím říct že Vaše přítomnost v diskuzi je předvídatelná stejně jako páně Kubečkova pokud je řeč o ifconfigu
ifconfig je v podstatě v pořádku", a které ani sebenázornější argumenty nepřesvědčí o opaku. Jde hlavně o to, aby se tahle nebezpečná teze nevtloukala hned od začátku do hlavy dalším a dalším generacím těch, kdo se to teprve učí. Konzervativci, kteří kvůli svým návykům raději setrvávají u (již devět a půl roku) nefunkčního nástroje, než by věnovali pár minut seznámení se s novými, holt asi budou muset "vymřít".
, musim se priznat, ze trpim stejnou chorobou, jak je tu neco o kompilerovani, C++ apod , tak hned hledam, co k tomu rika pan inzenyr. Asi bychom se meli dat vysetrit. Jinak pozoruji, ze Deda Jabko mu zacina delat konkurenci ...
Většinu té knihy jsem četl (váš příspěvek jsem četl celý).
Spousta lidí používá c++ úplně nesmyslně, což dělá z kódu guláš. To je podle mě reálný problém.
To je IMHO pravda pro každý dostatečně rozšířený jazyk. Ale nevidím to jako problém jazyka, ale problém toho, že se programováním zabývá spousta neumětelů (jako ostatně každou činností, která vypadá trochu lukrativně, a kde poptávka převyšuje nabídku dostatečně kvalifikovaných sil). Kdybych uvažoval jako vy, musel bych dojít k závěru, že počítače jako takové jsou špatné, protože je spousta lidí používá naprosto nesmyslným způsobem.
Ale na to abych rozsvítil diodu nepotřebuju objekty, to je fakt zbytečné
Pro benchmarky LLVM stačí googlit. Třeba http://lucille.atso-net.jp/blog/?p=430To není zrovna reprezentativní benchmark – je to v podstatě jedna těsná floating-pointová smyčka. Prakticky pro každý kompilátor najdete příklad kódu, který je efektivnější než u konkurence
Zkoušel jsem najít něco obecnějšího, třeba SpecINT, ale zatím se mi to nepodařilo.
Přímo na webu LLVM jsou "Nightly Test Results" na adrese http://llvm.org/nightlytest/ Ty ale nejsou moc přehledné.No, hlavně v nich není vůbec nic o rychlosti výsledného kódu, jsou to testy korektnosti překladače.