Po více než dvou letech od vydání předchozí verze 2.12 byla vydána nová stabilní verze 2.14 systémového zavaděče GNU GRUB (GRand Unified Bootloader, Wikipedie). Přehled novinek v souboru NEWS a v aktualizované dokumentaci.
Google Chrome 144 byl prohlášen za stabilní. Nejnovější stabilní verze 144.0.7559.59 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 10 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře (YouTube).
Microsoft zveřejnil zdrojový kód XAML Studia a uvolnil ho pod MIT licencí. XAML Studio je nástroj ze světa Windows, určený pro tvorbu uživatelského rozhraní aplikací pomocí XAML (Extensible Application Markup Language). Stalo se tak zhruba po osmi letech od prvního prohlášení Microsoftu, že se tento kód chystá zveřejnit.
TimeCapsule, 'časová kapsle', je jazykový model trénovaný výhradně na datech z určitých míst a časových období, aby se tak napodobila autentická slovní zásoba, způsob vyjadřování a názory dané doby. Na Hugging face jsou k dispozici modely natrénované na historických textech dostupných v oblasti Londýna mezi lety 1800 až 1875.
Radicle byl vydán ve verzi 1.6.0 s kódovým jménem Amaryllis. Jedná se o distribuovanou alternativu k softwarům pro spolupráci jako např. GitLab.
Zemřel Scott Adams, tvůrce komiksových stripů Dilbert parodujících pracovní prostředí velké firmy.
Sdružení CZ.NIC vydalo novou verzi Knot Resolveru (6.1.0). Jedná se o první vydanou stabilní verzi 6, která je nyní oficiálně preferovanou a doporučovanou verzí, namísto předešlé verze 5. Více o Knot Resolveru 6 je možné se dočíst přímo v dokumentaci.
Byl vydán Linux Mint 22.3 s kódovým jménem Zena. Podrobnosti v přehledu novinek a poznámkách k vydání. Vypíchnout lze, že nástroj Systémová hlášení (System Reports) získal mnoho nových funkcí a byl přejmenován na Informace o systému (System Information). Linux Mint 22.3 bude podporován do roku 2029.
Wine bylo po roce vývoje od vydání verze 10.0 vydáno v nové stabilní verzi 11.0. Přehled novinek na GitLabu. Vypíchnuta je podpora NTSYNC a dokončení architektury WoW64.
Byl vydán Mozilla Firefox 147.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Firefox nově podporuje Freedesktop.org XDG Base Directory Specification. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 147 bude brzy k dispozici také na Flathubu a Snapcraftu.
typedef struct {
word OfsWR; // Pozice cteni
word OfsRD; // Pozice zapisu
word Cnt; // Pocet ulozenych bytu
byte * Buf; // Buffer
word BufSize; // Velikost bufferu
} Fifo_t;
word FifoGetCount (Fifo_t * Fifo){
return Fifo->Cnt;
}
word FifoGetFree (Fifo_t * Fifo){
return Fifo->BufSize - Fifo->Cnt;
}
byte FifoAddByte (Fifo_t * Fifo, byte Src){
if (Fifo->Cnt >= Fifo->BufSize) return 0;
Fifo->Buf[Fifo->OfsWR++] = Src;
Fifo->Cnt++;
if (Fifo->OfsWR >= Fifo->BufSize) Fifo->OfsWR = 0;
return 1;
}
byte FifoGetByte (Fifo_t * Fifo){
byte b;
if (!Fifo->Cnt) return 0;
b = Fifo->Buf[Fifo->OfsRD++];
Fifo->Cnt--;
if (Fifo->OfsRD >= Fifo->BufSize) Fifo->OfsRD = 0;
return b;
}
void FifoInit (Fifo_t * Fifo, byte * Buf, word BufSize){
Fifo->OfsRD = 0;
Fifo->OfsWR = 0;
Fifo->Cnt = 0;
Fifo->BufSize = BufSize;
Fifo->Buf = Buf;
}
volatile. Bez toho compilator nerata, ze hodnota sa moze zmenit mimo kontext aktualneho kodu. Kompilator moze optimalizovat kod tak, ze si udaje drzi v registroch a necita udaje z pamate. Tym padom zmena z prerusenia nie je reflektovana v hlavnej slucke kodu.ATOMIC_BLOCK". Inac povedane, funkcia FifoGetByte by mala docasne vypnut prerusenie a zapnut ho az ked su vsetky zmeny zapisane do pamate. V opacnom pripade moze nastat situacia, ze funkcia "FifoGetByte" a "FifoAddByte" sa bude prelinat a navzajom si prepisu data. Situacia, ked sa napr. nacitaju data pre if a/alebo dekrementaciu. V preruseni dojde k zmene udajov, ale k naslednemu zapisu dojde podla pred tym nacitanych dat a nie realnych .... o tomto by sa dalo dlho hovorit. Ked si pohladas "ATOMIC_BLOCK" v avr-gcc dokumentacii tak najdes hromadu roznych prikladov, preco sa to ma pouzivat.
Tiskni
Sdílej: