Apple na své vývojářské konferenci WWDC26 (Worldwide Developers Conference, keynote) představil řadu novinek. Vypíchnout lze novou generaci Apple Intelligence a zbrusu novou Siri, která dostala název Siri AI. Kvůli Aktu o digitálních trzích (DMA) však funkce Siri AI nebudou v systémech iOS 27 a iPadOS 27 k dispozici uživatelům v Evropské unii.
Byla vydána nová verze 1.18.0 distribučního frameworku Flatpak (Wikipedie), tj. technologie umožňující distribuovat aplikace v podobě jednoho instalačního souboru na různé linuxové distribuce a jejich různá vydání. Přehled novinek na GitHubu. Vypíchnout lze podporu rozhraní /dev/kfd pro výpočty na kartách AMD (AMDKFD).
aMule (Wikipedie), tj. multiplatformní klient pro peer-to-peer sdílení souborů pro sítě eD2k and Kademlia, byl po více než pěti letech od vydání poslední verze 2.3.3, vydán v nové major verzi 3.0.0 (GitHub). S novou webovou stránkou a dokumentací.
Byly vyhlášeni vítězové a zveřejněny vítězné zdrojové kódy (YouTube, GitHub) již 29. ročníku soutěže International Obfuscated C Code Contest (IOCCC), tj. soutěže o nejnepřehlednější (nejobfuskovanější) zdrojový kód v jazyce C.
Evropská komise předložila evropský balíček pro technologickou suverenitu, tedy soubor opatření, která mají posílit kapacity EU v oblasti polovodičů, umělé inteligence, cloudu a open source. To Evropě pomůže stát se lídrem v oblasti umělé inteligence, posílit její digitální autonomii a vytvářet podmínky pro udržitelnější digitální budoucnost.
OpenCV (Open Source Computer Vision, Wikipedie), tj. open source multiplatformní knihovna pro zpracování obrazu a počítačové vidění, byla vydána v nové major verzi 5.
Byla vydána nová verze 9.7 multiplatformní digitální pracovní stanice pro práci s audiem (DAW) Ardour. Přehled novinek, vylepšení a oprav v poznámkách k vydání.
Vývojáři webového prohlížeče Ladybird dnes oznámili, že mění způsob vývoje. S blížícím se vydáním alfa verze přestávají přijímat veřejné pull requesty. Všechny otevřené veřejné pull requesty budou uzavřeny. Tým nedokáže garantovat bezpečnost AI generovaných pull requestů.
OpenLogi (GitHub) je open source náhrada aplikace Logi Options+ pro přizpůsobení myší od společnosti Logitech. Zatím běží pouze na macOS.
Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za květen (YouTube).
-felide-constructors, resp. -fno-elide-constructors, při -O2 zapnuto, při -O0 asi vypnuto. U Visual C++ se to jmenuje NRVO (named return value optimization), googli NRVO - dostaneš odkazy na hezké články, a při debug buildu (=neoptimalizovaném) je vypnuta, a při release buildu (=/O1 nebo /O2) je zapnutá. Btw. taky mě to překvapilo, když jsem si s tím po příslušné přednášce z C++ hrál. Takže přelož s -fno-elide-constructors a vypíše ti to to, co čekáš.
vim ~/.emacs
V C++ ABI je popsáno, že návratová hodnota do určité velikosti (tuším 4 bajty) se předává v registru, jinak volající kód nechá na zásobníku místo pro uložení návratové hodnoty; takže volaná funkce s tím muže počítat a výsledek ukládat rovnou do místa pro návratový kód určený. Kdybys měl v tmpPokus() dvě instance a nějakou podmínkou (předem nevyoptimalizovatelnou) se rozhodoval, kterou vrátit, pak by se kopírovací konstruktor zavolal. (Pozn. to C++ ABI jsem někde vygooglil, už nevím pro jakou platformu to konkrétně bylo, na některých platformách záleží na překladači; tipuju ale, že pro x86/x64 to platit bude.)
Pokud nechceš, aby při předání parametru metodě print() nebyl volán kopírovací konstruktor, zkus parametr předávat referencí: void print(const pokus &p) { ... }. To const tam teda být nemusí, ale mělo by, pokud je to možné (je to dobrý zvyk).
návratová hodnota do určité velikosti (tuším 4 bajty) se předává v registruJen pokud to není typ s uživatelským copy-constructorem nebo destruktorem. Pro takový by to nešlo implementovat.
pokus ob(tmpPokus());
alebo
pokus ob = tmpPokus();
Pls. preco sa pri navrate z funkcie pokus tmpPokus() nezavola kopirovaci konstruktor pokus::pokus(const pokus &p) ? Dakujemsom mal na mysli volanie
pokus ob = tmpPokus()ob : konkretne vyraz ob = tmpPokus(); kde ob je uz zinicializovany objekt...sorry za omyl
Tiskni
Sdílej: