Americká technologická společnost Meta Platforms se dohodla, že zaplatí až zhruba 18 miliard dolarů (asi 373 miliard Kč) za mimosoudní urovnání sporu o závislosti dětí na sociálních sítích a provede významné změny pro jejich používání mladistvými. Téměř tři desítky států USA firmu v roce 2023 obvinily z toho, že sítě Facebook a Instagram vědomě navrhla tak, aby u dětí vyvolávaly závislost, a zatajovala tyto dopady před veřejností. Firma se
… více »Byl publikován aktuální přehled dění a novinek z vývoje Asahi Linuxu, tj. Linuxu pro Apple Silicon. Blíží se vydání podporující čipy M3. Vývojáře lze podpořit na GitHub Sponsors a Open Collective.
Kancelářský balík LibreOffice byl vydán ve verzi 26.8. Mimo jiné vylepšuje typografii a kompatibilitu s formáty MS Office, více v poznámkách k vydání.
Armbian, tj. linuxová distribuce založená na Debianu a Ubuntu optimalizovaná pro jednodeskové počítače na platformě ARM a RISC-V, ke stažení ale také pro Intel a AMD, byl vydán ve verzi 26.8. Přehled novinek v poznámkách k vydání.
Byla vydána nová verze 23.1.0, tj. první stabilní verze z nové řady 23.1.x, překladačové infrastruktury LLVM (Wikipedie). Přehled novinek v poznámkách k vydání: LLVM, Clang, LLD, Extra Clang Tools, Libc++, Polly a Flang.
Google Chrome 152 byl prohlášen za stabilní. Nejnovější stabilní verze 152.0.7977.64 přináší řadu novinek. Podrobný přehled v poznámkách k vydání. Opraveno bylo 327 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.
Před 35 lety, 25. srpna 1991, oznámil Linus Benedict Torvalds v diskusní skupině comp.os.minix, že vyvíjí (svobodný) operační systém (jako koníček, nebude tak velký a profesionální jako GNU) pro klony 386 (486), že začal v dubnu a během několika měsíců by mohl mít něco použitelného.
Apple představil čipy M6 a M5 Ultra, Mac mini s M6 nebo M5 Pro a Mac Studio s M5 Max nebo M5 Ultra. Fedora Asahi Remix zatím podporuje jenom M1 a M2.
Firefox 157 přinese zapnutou podporu rastrového grafického formátu JPEG XL. Založena je na v Rustu napsané implementaci jxl-rs používané i v Chrome a Chromiu.
Vanilla OS 3 „Reunion“ byl vydán. Tato na Debianu „Sid“ založená desktopová distribuce s transakčními aktualizacemi „neměnného“ základního systému (ABRoot) nově podporuje architekturu arm64 (vedle x86-64), podporuje reprodukovatelné sestavení většiny balíčků a vylepšuje systémové nástroje. Vlastní meta-správce balíčků APX nyní používá Distrobox v2 a je dostupný i pro jiné distribuce.
Tiskni
Sdílej:
Záviset na rozšíření konkrétního kompilátoru mi přijde jako kravina.Není to rozšíření konkrétního kompilátoru a nemám zjištěno, zda na nějakých rozšířeních nezávisíme už teď, nebo zda na nich tak jako tak nezávisí některá z našich závislostí :).
Krom toho nejsem fanda snah dělat z C něco, co není (aka C++).My spíš řešíme, jestli nám to jako vývojářům a projektu pomůže nebo uškodí. Mně osobně z mnoha důvodů C++ nevyhovuje, zatímco tahle funkcionalita by mohla. A nezapomeň, že se bavíš o projektu postaveném nad knihovnou Glib s vlastním objektovým modelem.
Tady je především dobré si rozmyslet, kolik práce použití takového rozšíření ušetří. Teprve pokud se ukaže, že hodně, stojí to za případné problémy s kompatibilitou.Asi dost záleží na stylu práce. My používáme jako utility knihovnu Glib. Hodně věcí se za běhu programu kontroluje na chyby, ale obvykle nejde použít assert, protože je to systémový démon. Spousta chyb přitom vyloženě vyžaduje jen nějaký ladící výstup a ukončení funkce s jasně daným výsledkem (g_return_val_if_fail, g_return_val_if_reached apod). A nebo prosté return. Něco se dá uklízet pozpátku volanými GOTO, ale v tom se zase dělají chyby.
zrovna u cleanupů si tím ale vůbec nejsem jistý.NetworkManager je trochu specifický v tom, že většina jeho práce spočívá v komunikaci s dalšími knihovnami či procesy, případně udržuje informace datových stukturách, které si předávají signály. Takže velká část kódu spočívá v tom, že vyzískám třeba přes libnl od kernelu nějaké objekty, zkontroluju je, a na jejich základě předám další komponentě nějaké další informace. Colin tvrdí, že jenom na základě alokací může z NM vykopnout 1500 řádků kódu. Mně to v celkovém množství kódu až tak neoslňuje a zda nám to skutečně pomůže, to netuším. Ale zatím to vypadá, že když to umí i LLVM a když to bude muset umět každý kompilátor s ambicemi kompilovat běžné linuxové služby, tak by se s tím dalo smířit.
Hodně věcí se za běhu programu kontroluje na chyby, ale obvykle nejde použít assert, protože je to systémový démon.Opravdu nejde použít? Někdy je nejjednodušší všechen úklid při fatálních chybách zařídit tak, že se příslušná část programu spustí jako samostatný proces a až doběhne, vše se samo uvolní.
Něco se dá uklízet pozpátku volanými GOTO, ale v tom se zase dělají chyby.Myslíš? Mně naopak konstrukce typu
bool ok = 0;
if (!(x = malloc(sizeof(*x)))
goto failed_malloc;
if ((fd = open(...)) < 0)
goto failed_open;
ok = 1;
close(fd);
failed_open:
free(x);
failed_malloc:
return ok;
přijde jako jedna z nejpřehlednějších možných. Hlavně proto, že je v ní naprosto jasné, kudy program chodí a co kdy alokuje a uvolňuje. Cleanupovací atribut někdy až příliš zamlžuje, v jakém pořadí se věci dějí.
Opravdu nejde použít? Někdy je nejjednodušší všechen úklid při fatálních chybách zařídit tak, že se příslušná část programu spustí jako samostatný proces a až doběhne, vše se samo uvolní.Jde o volbu granularity. Abych aplikaci rozdělil tak, aby změna chyb z nefatálních na fatální udělala co nejméně škody, tak by těch procesů mohlo být docela hodně a jejich správa a komunikace s nimi by byla zbytečně náročná.
přijde jako jedna z nejpřehlednějších možných. Hlavně proto, že je v ní naprosto jasné, kudy program chodí a co kdy alokuje a uvolňuje. Cleanupovací atribut někdy až příliš zamlžuje, v jakém pořadí se věci dějí.Ale jo, já ti rozumím, že chceš všechno vidět jako by to bylo v assembleru :). Ale asi je ti jasné, že nám je pořadí nezávislých dealokací či třeba uvolnění file deskriptorů putna.
Ale asi je ti jasné, že nám je pořadí nezávislých dealokací či třeba uvolnění file deskriptorů putna.Jenže ono na tom pořadí tu a tam záleží a když ho popletu, dějí se věci... Proto mi přijde praktičtější pořadí dodržovat vždy a nepřemýšlet nad tím, kdy je to potřeba a kdy ne. Zkrátka alokace a dealokace jsou jako závorky a program by měl být správně uzávorkovaný.
Jenže ono na tom pořadí tu a tam záleží a když ho popletu, dějí se věci...Bavíme se stále ještě o pořadí uvolnění několika nezávislých alokací?
Zkrátka alokace a dealokace jsou jako závorkyTady se asi neshodneme.
Bavíme se stále ještě o pořadí uvolnění několika nezávislých alokací?Nikoliv. Bavíme se o uvolňování alokací, aniž by bylo potřeba přemýšlet o tom, zda zrovna jsou nezávislé nebo ne. V prakticky jakémkoliv větším programu dřív nebo později potkáš alokace, které nezávislé nejsou. Pokud si to o nich neuvědomíš, objeví se dost těžko debugovatelné chyby. Takže alternativy jsou dvě: buďto pokaždé přemýšlet, zda jsou nezávislé (nejen při psaní, ale i při každé budoucí úpravě kódu), nebo si zvyknout dodržovat pořadí všude. Mně se daleko víc osvědčilo dodržovat pořadí všude, protože je to zjevně správně a myšlenkovou kapacitu si mohu šetřit na ty části programu, které ji skutečně potřebují. Tohle je nejspíš největší problém programátorů v Céčku: stráví příliš mnoho úsilí ošetřováním všelijakých technických detailů a nezbude jim sil na to hlavní. Dobrý céčkař věnuje úsilí především na to, aby se těmi technickými detaily nemusel zabývat (třeba zavedením nějakých memory poolů, automatického resource trackingu, či třeba transakčního systému, nebo prostě jenom šikovnými konvencemi) a pak už od technikálií má klid na důležité věci.
Nikoliv. Bavíme se o uvolňování alokací, aniž by bylo potřeba přemýšlet o tom, zda zrovna jsou nezávislé nebo ne.To pak ano. Ale na to nenarážím, protože uvolňuju objekty a ne kusy paměti, tudíž v případě závislosti už v tuto chvíli, tedy i bez 'cleanup' nevolám free, ale specifickou uvolňovací funkci. Pokud bych to tak nedělal, což je možná tvůj případ, tak by to opravdu stálo za úvahu.
V prakticky jakémkoliv větším programu dřív nebo později potkáš alokace, které nezávislé nejsou. Pokud si to o nich neuvědomíš, objeví se dost těžko debugovatelné chyby. Takže alternativy jsou dvě: buďto pokaždé přemýšlet, zda jsou nezávislé (nejen při psaní, ale i při každé budoucí úpravě kódu), nebo si zvyknout dodržovat pořadí všude.V tuto chvíli opravdu pokaždé závislosti řešíme. To by se mělo týkat jak kódu NetworkManageru, tak nejspíš i většiny dalších projektů psaných nad Glib. A přemýšlím nad tím ne ve chvíli, kdy řeším dealokaci, ale už ve chvíli, kdy řeším alokaci.
Mně se daleko víc osvědčilo dodržovat pořadí všude, protože je to zjevně správně a myšlenkovou kapacitu si mohu šetřit na ty části programu, které ji skutečně potřebují.Chápu. Nicméně nám by to asi nic neušetřilo.
Tohle je nejspíš největší problém programátorů v Céčku: stráví příliš mnoho úsilí ošetřováním všelijakých technických detailů a nezbude jim sil na to hlavní. Dobrý céčkař věnuje úsilí především na to, aby se těmi technickými detaily nemusel zabývat (třeba zavedením nějakých memory poolů, automatického resource trackingu, či třeba transakčního systému, nebo prostě jenom šikovnými konvencemi) a pak už od technikálií má klid na důležité věci.Tak u nás se z toho důvodu na část věcí používají hotové prostředky z Glib a na většinu ostatních se používají alespoň stejné nebo podobné konvence. Tohle je věc, která přišla rovněž ze světa Glib, ale kvůli nepodpoře na MSVC nebyla zařazena přímo do Glib.
primarne jej pouziva Gnome a to si drzi striktni C89 kompatibilituNo jo, není od věci se občas podívat na kalendář a zkontrolovat, jaké se píše století
for, mimo jiné proto, že je pak evidentní, že na proměnnou nesahám někde mimo cyklus, kde už nemá její hodnota smysl.
Sice NetworkManager je freedesktop.org projekt, ale primarne jej pouziva GnomeGnome je jen jedním z projektů, které komunikují s NetworkManagerem.
a to si drzi striktni C89 kompatibilitu.NetworkManager prý striktní C89 kompatibilitu nedrží, podle toho, co říkal Dan. Možná mi dával i nějaký konkrétní příklad, ale nevzpomínám si.
Je to predevsim z historickych duvodu a dnes mozna jiz tyto duvody pominuly, predpokladajic, ze Solaris, OpenBSD a dalsi uz presli na gcc ci clang.A jak je to s tím Gnome a případnou závislostí na systemd?
A jak je to s tím Gnome a případnou závislostí na systemd?Zatim se o tom dohadujou, neni to jen vec systemd, ale obecne tvrdych zavislosti. Vypada to tak, ze pro zakladni funkcionalitu bude relativne minimum zavislosti a pro tu rozsirenou uz bude potreba systemd. Takze zkompilovat to pujde, ale nebude se jednat o full feature set (coz ja to tak v podstate pouzivam v Gentoo, bez nekterych zbytecnych veci). Diskuze ale stale probiha.
Zatim se o tom dohadujou, neni to jen vec systemd, ale obecne tvrdych zavislosti. Vypada to tak, ze pro zakladni funkcionalitu bude relativne minimum zavislosti a pro tu rozsirenou uz bude potreba systemd.To by mě zajímalo, jaké volitelné funkce můžu těžit ze systemd.
systemd-logind nahrazuje ConsoleKit, čili drobnosti jako zamykání session, uspávání, zakázání logind, aby obsluhoval některé speciální klávesy a podobně.
Stejně tak pro DM je logind nezbytný, takže minimálně gdm, tak i kdm jej používají namísto ConsoleKitu.
No a systemd byl od počátku psán jako univerzální správce "sezení", takže do budoucna i gnome-systemd-session, nebo tak něco, ale to by nejspíše nešlo o volitelnou závislost
Jednak systemd-logind nahrazuje ConsoleKit, čili drobnosti jako zamykání session, uspávání, zakázání logind, aby obsluhoval některé speciální klávesy a podobně.Ok, takže z toho máš pak takové XFCE…
Stejně tak pro DM je logind nezbytný, takže minimálně gdm, tak i kdm jej používají namísto ConsoleKitu.Co si tak pamatuju, tak gdm by mělo predatovat jak systemd, tak consolekit.
No a systemd byl od počátku psán jako univerzální správce "sezení"Až na to, že ne každý si pod slovem univerzální představuje Linux-only.
Další projekty, které na tomto rozšíření závisí jsou upstart a systemd, a pravděpodobně se přidají další. To naznačuje, že kompilátor pro linuxový svět tento atribut bude muset tak jako tak implementovat.Upstart neznam, ale vsadim se ze jako spravna canonicalovina nereflektuje nic za hranicemi LTS ubuntu. Systemd je, bez urazky, ditko stejnych rukou jako pulse audio. To bych nepovazoval za reprezentativni vzorek linuxoveho sveta. To spis samotnej network manager by se za nej dal povazovat.
To spis samotnej network manager by se za nej dal povazovat.To mě zajímá :).
tak je to spis tim ze ho nechce nebo nepotrebuje nez ze by delal bordel a zral maly deti.
Tak nejak mi pripada ze NM uspesne pronika ruznyma distrama bez toho aby vzbuzoval kontroverze jako vytvory canonicalu nebo poetteringa.Takhle… NetworkManager způsobuje problémy spíše chybami nebo chybějícími funkcemi, než vědomě vtisknutými vlastnostmi. A případné problémy se snažíme řešit. Ale v některých ohledech je jeho použití jako reprezentativního vzorku dosti nelichotivé.