Poštovní klient Thunderbird byl vydán v nové verzi 145.0. Podporuje DNS přes HTTPS nebo Microsoft Exchange skrze Exchange Web Services. Ukončena byla podpora 32bitového Thunderbirdu pro Linux.
U příležitosti státního svátku 17. listopadu probíhá na Steamu i GOG.com již šestý ročník Czech & Slovak Games Week aneb týdenní oslava a také slevová akce českých a slovenských počítačových her.
Byla vydána nová verze 9.19 z Debianu vycházející linuxové distribuce DietPi pro (nejenom) jednodeskové počítače. Přehled novinek v poznámkách k vydání. Vypíchnout lze například nový balíček BirdNET-Go, tj. AI řešení pro nepřetržité monitorování a identifikaci ptáků.
Byla vydána nová verze 3.38 frameworku Flutter (Wikipedie) pro vývoj mobilních, webových i desktopových aplikací a nová verze 3.10 souvisejícího programovacího jazyka Dart (Wikipedie).
Organizace Apache Software Foundation (ASF) vydala verzi 28 integrovaného vývojového prostředí a vývojové platformy napsané v Javě NetBeans (Wikipedie). Přehled novinek na GitHubu. Instalovat lze také ze Snapcraftu a Flathubu.
Byl vydán Debian 13.2, tj. druhá opravná verze Debianu 13 s kódovým názvem Trixie. Řešeny jsou především bezpečnostní problémy, ale také několik vážných chyb. Instalační média Debianu 13 lze samozřejmě nadále k instalaci používat. Po instalaci stačí systém aktualizovat.
Google představil platformu Code Wiki pro rychlejší porozumění existujícímu kódu. Code Wiki pomocí AI Gemini udržuje průběžně aktualizovanou strukturovanou wiki pro softwarové repozitáře. Zatím jenom pro veřejné. V plánu je rozšíření Gemini CLI také pro soukromé a interní repozitáře.
V přihlašovací obrazovce LightDM KDE (lightdm-kde-greeter) byla nalezena a již opravena eskalace práv (CVE-2025-62876). Detaily v příspěvku na blogu SUSE Security.
Byla vydána nová verze 7.2 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Tor Browser byl povýšen na verzi 15.0.1. Další novinky v příslušném seznamu.
Česká národní banka (ČNB) nakoupila digitální aktiva založená na blockchainu za milion dolarů (20,9 milionu korun). Na vytvořeném testovacím portfoliu, jehož součástí jsou bitcoin, stablecoiny navázané na dolar a tokenizované depozitum, chce získat praktickou zkušenost s držením digitálních aktiv. Portfolio nebude součástí devizových rezerv, uvedla dnes ČNB v tiskové zprávě.
Abyste si nemyslel, že jsem Darling vzdal...
Tohle je postup prací od posledního zápisku z října:
A teď pár převážně kritických témat
Mikrokernel Mach je velmi, velmi pomalý. Je natolik pomalý, že synchronizační nástroje (lockset, semaphores...) běží řádově rychleji pod mou emulací daných volání na Linuxu než na původním systému. Zatímco na Linuxu proběhne test s 30 000 uzamčeními v několika vláknech stabilně za 0,13 sekundy, na OS X to trvá náhodně mezi 2 a 8 sekundami.
Přemýšlím nad implementací Mach Ports (IPC; popis v GNU Hurd). Musel by to být jaderný modul, už mám jakousi kostru, která vytvoří /dev/machipc, nad kterým lze dělat volání pomocí ioctl(). Otázka je, jestli to má smysl, protože moc aplikací asi pro vlastní komunikaci Mach Ports nepoužívá. On s tím hlavně nikdo moc neumí a je to takové poněkud zapeklité.
Přemýšlel jsem o podpoře platforem ppc a ppc64, neboť až do roku 2005 byl OS X provozován na PowerPC hardwaru. Hned jsem si vzpomněl na můj PlayStation 3, který je také PPC. Já blbec jsem ale někdy před rokem aktualizoval firmware na verzi 4.00, která nejde bez rozebrání a ručního přeflashování hacknout tak, abych z toho měl linuxový stroj.
QEMU bohužel není řešení. Emulace ARM mi pod QEMU funguje krásně, ale PPC a PPC64 mi ani jedno nefunguje (nebo to trvá tak dlouho, že jsem to po 2 minutách načítání jádra vzdal).
Kdyby tedy někdo z vás měl třeba nepoužívaný starý Mac Mini G4 a byl by ochoten ho darovat (protože peníze se mi za to dávat nechce), byl bych moc rád
To jen taková samochvála. Kdykoliv najdete na opensource.apple.com hezký, přehledný kód, tak není od Apple. Jakmile je to totální slepenec, ve kterém aby se čert vyznal, tak je to jejich původní kód. Když se někdy podívám, jak to udělali oni a jak jsem to udělal já, tak se prostě musím pochválit, jak elegantní ten výsledek je :-P
Na úrovni dynamického loaderu bych rád podporoval i platformu ARM, ze softwarového hlediska tedy iOS (iPod/iPad/iPhone). Aby z toho bylo něco opravdu užitečného, tak by bylo nutné dopsat příslušná API v iOS SDK nad něčím jiným (Android?). Půjde tedy spíše o proof of concept.
Práce je obrovské množství. Našla by se spousta práce, která není nijak obtížná, ale přesto je nutné ji udělat. Kdyby se našli zájemci, jistě by se našla témata (knihovny) pro volný čas, semestrálky, bakalářky apod. Třeba takové Apple Events se dají relativně snadno napsat nad libdbus.
Tiskni
Sdílej:
Existuju nejaké vzorky kódu Applu a opensource verzie ?
Dôvod portovania linuxu na hardvér applu ?
Existuju nejaké vzorky kódu Applu a opensource verzie ?opensource.apple.com a git.dolezel.info. Tohle není úplně 100% ukázka, ale první díl tohoto souboru (až po #else) a tento můj soubor to také trochu ilustrují. Nebo třeba masochismus Applu, který se dá nahrazovat minimem assembleru pro snazší portování. Hodně věcí v Applu se šije horkou jehlou, bez rozmyslu. Pak jsou výsledkem hacky kvůli zachování ABI, nahodile vlepované kusy kódu do jiného kódu, duplicity apod.
Dôvod portovania linuxu na hardvér applu ?Nejak jsem nepochopil otázku. Já Linux neportuju, Linux na ppc dávno chodí.
setjmp/longjmp mě mírně děsí
Stručně jde o to, že zatímco 64bit ObjC výjimky používají "standardní" mechanismus výjimek na bázi libunwind a spol., takže to jde stejnou cestou jako výjimky C++, na 32bit to mají z nějakého historického důvodu jinak.
Každý vstup do try bloku se tedy mění na volání objc_exception_try_enter, kterému se předá výstup funkce setjmp() volané hned před tím, a výstup z try bloku se analogicky mění na objc_exception_try_exit. Je-li hozena výjimka, runtime si vezme poslední try blok, který má na interním stacku, a udělá na něj longjmp(). To vede k tomu, že se program vrátí na to volání setjmp(), ale tentokrát ta funkce vrátí jinou hodnotu, což indikuje, že bylo skočeno zpět - tzn. došlo k výjimce.
Na to vygenerovaný kód programu reaguje skokem do oblasti catch handlerů. Tam se kód ptá pomocí objc_exception_match(), jestli handler pro typ XYZ může handlovat výjimku, kterou si to získalo přes objc_exception_extract(). Pokud tam takový handler není, tak se opět - nanovo - volá objc_exception_throw(), které tu výjimku hodí přes try blok o úroveň níž.
No každopádně, "zajímavě" to mají v tom ObjC pánové vyřešeno, jen co je pravda
Je vidieť ako ľudia chránia vyvojárov pred super ultra mega užasným Apple systémom. Ktorý je tak úžasne súper, že si užívateľia nechaju diktovať čo je správne a čo nie. Alebo nemôžu zniesť, že by ich užasné MAC aplikácie fungovali na inom systéme ako len jedinom správnom systéme.
register n = (count + 7) / 8; /* count > 0 assumed */
switch (count % 8)
{
case 0: do { *to = *from++;
case 7: *to = *from++;
case 6: *to = *from++;
case 5: *to = *from++;
case 4: *to = *from++;
case 3: *to = *from++;
case 2: *to = *from++;
case 1: *to = *from++;
} while (--n > 0);
}
Toto je validní C kód ( žádná chyba ).
switch vevnitř v do, ne obráceně jako v Duff's device. Duff's device slouží k ompimalizaci - částečnému rozbalení smyčky, kdežto v tom článku ten switch slouží k rozlišení výstupu setjmp(). Celej ten switch mají ještě obalen v do { ... } while(0), nejspíš proto, aby tím vznikl vlastní sub-scope pro jmp_buf.