Firma X zaslala předžalobní výzvu vývojáři projektu Nitter (Wikipedia), open-source alternativního frontendu k sociální síti X (ex-Twitter), a provozovatelům instancí jako XCancel, které umožňovaly číst příspěvky bez přihlášení, reklam a javascriptu. Údajně se dopouštějí „sběru dat“. Zdrojový kód Nitteru vývojář archivoval. Vývoj již dříve přerušil v roce 2024 po tehdejším omezení API X. X je dceřiná společnost SpaceXAI Elona Muska, provozující mj. kontroverzního chatbota Grok.
Bylo vydáno Ubuntu 26.04.1 LTS, tj. první opravné vydání Ubuntu 26.04 LTS s kódovým názvem Resolute Raccoon. Přehled novinek a oprav na Discourse.
Národní úřad pro kybernetickou a informační bezpečnost (NÚKIB) vydal Zprávu o stavu kybernetické bezpečnosti ČR za rok 2025 (pdf). Incidentů ubylo, sofistikovanost útočníků roste.
Open source softwarový stack AMD ROCm (Wikipedie) pro vývoj AI a HPC na GPU od AMD byl vydán v nové major verzi 10.0. S ROCm.AI. Přehled novinek v aktualizované dokumentaci.
Finanční skupina Partners se stala minulou neděli obětí kybernetického útoku, při kterém se útočníci dostali k některým osobním údajům klientů. Společnost o tom informovala ve čtvrtek. Ujišťuje, že peníze klientů nejsou v ohrožení. „Kybernetický útok zasáhl část IT infrastruktury naší společnosti. Ihned po zjištění útoku jsme s pomocí externích bezpečnostních odborníků začali intenzivně pracovat na minimalizaci škod. Útočníci se
… více »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.
Premennú prostredia CFLAGS používa gcc pri
kompilácii zdrojových kódov v jazyku C. V Gentoo túto premennú nastavujeme v súbore
/etc/make.conf a Portage ju pred kompiláciou balíčka prečíta a
nastaví. Premenná CXXFLAGS funguje rovnako, ale pre jazyk
C++.
Ak nemáte problém s diskovým priestorom, ani s časom potrebným na
kompiláciu, môžete bezpečne použiť nasledujúcu hodnotu CFLAGS
a CXXFLAGS:
CFLAGS="-O3 -fomit-frame-pointer -pipe"
CXXFLAGS="$(CFLAGS)"
Výsledný program však nebude ušitý na mieru vášmu procesoru a bude využívať iba inštrukčnú sadu procesora i386 (samozrejme ak vlastníte procesor založený na tejto architektúre).
Najprv by sme si mali povedať pár slov o tom, ako pracuje GCC. Ako už možno viete, GCC obsahuje viac kompilátorov naraz - kompilátory pre jazyky C, C++, Objective C, Fortran a Javu, ale aj ďalšie. Kompilátor GCC sa skladá z dvoch častí - frontend a backend.
Každý jazyk má vlastný frontend. Frontend načíta (preparsuje) a spracuje samotné zdrojové kódy. Výstupom frontendu je reprezentácia zdrojového kódu v jazyku RTL (Register Transfer Language). Dá sa povedať, že RTL je abstraktný štruktúrovaný assembler. Je to veľmi všeobecný a zložitý jazyk zároveň, preto nemá zmysel ho používať pre bežné programovanie.
Strom RTL sa pri kompilácii nachádza v pamäti len v binárnej forme. V binárnej forme vstupuje do backendu kompilátora GCC, ktorý je všeobecný pre celý kompilátor. Backend generuje z RTL stromu kód assemblera pre určený procesor. Backend tiež vykonáva optimalizácie nad RTL stromom a aj pri generovaní assemblera.
Backend vie vykonať niekoľko desiatok rôznych optimalizácií a nie všetky sú vhodné v každej situácii. Preto sú rôzne druhy optimalizácií roztriedené do skupín, aby ich bolo možné jednoducho zapínať - o chvíľku si o nich povieme.
Zostali vám nezodpovedané otázky? Ak vás zaujíma, ako vyzerá RTL, skúste
skompilovať jednoduchý program s parametrom -dr:
gcc -dr zvyšné parametre
Ak chcete vedieť, ako prebiehajú rôzne optimalizácie v backende kompilátora GCC, prečítajte si článok The GNU Instruction Scheduler z roku 1989 (podstata GCC sa nezmenila).
Najdôležitejší je parameter optimalizácie -Ox.
Určuje, ktorú skupinu optimalizácií chceme pri kompilovaní použiť. Písmeno
x treba nahradiť číslom, alebo písmenom želanej skupiny. Popis
jednotlivých skupín optimalizácií:
-O0-O1-O2-O3-Os-O2, ktoré nezväčšia veľkosť výsledného programu a pridá
ďalšie optimalizácie pre veľkosť výsledku. Rýchlosť a nároky na pamäť sú
podobné, ako pri -O2.Ak špecifikujete viac parametrov -Ox naraz, použije
sa iba posledný.
Parameter -fomit-frame-pointer znemožní debugovanie
(používateľ to nepotrebuje) a zmenší veľkosť binárky.
Parameter -pipe urýchli kompiláciu, pretože
gcc nebude medzivýsledky ukladať na disk, ale ponechá ich v
pamäti.
Každý typ procesora má vlastnú inštrukčnú sadu - inštrukcia je jeden úkon, ktorý procesor dokáže vykonať. V assembleri nepoužívame príkazy, ale priamo inštrukcie procesora. Z toho vyplýva, že program v assembleri je závislý na procesore, pre ktorý je určený a nedá sa spustiť na inom.
Našťastie nové procesory poznajú všetky inštrukcie starších procesorov a inštrukčnú sadu len rozširujú o ďalšie inštrukcie. Túto vlastnosť majú procesory z radu Intel x86 - procesory bežných PC (i386, i486, Pentium atď.).
Ako som už povedal, kompilátor GCC generuje z RTL kódu kód assembleru a potrebuje teda vedieť, pre ktorý procesor má assembler vygenerovať. Na platforme x86 generuje predvolene pre procesor i386 a ten je možné použiť na ktoromkoľvek vyššom procesore.
Parameter -march=architektúra určuje inštrukčnú sadu
procesora, na ktorom má program fungovať. Ak chceme, aby program fungoval
aj na starších procesoroch, ale chceme ho optimalizovať pre svoj procesor,
môžeme použiť jeden z parametrov:
-mcpu=architektúra (gcc verzie 3.3 a nižšie)-mtune=architektúra (gcc verzie 3.4 a vyššie)(Verziu gcc zistíme pomocou prikazu: gcc -v.)
Za slovo architektúra dosaďte označenie procesora, pre ktorý kompilujete. Označenia všetkých procesorov nájdete v manuálovej stránke GCC. Ak kompilujete pre procesor typu x86, hľadajte sekciu Intel 386 and AMD x86-64 Options (jednoduchšie je nechať vyhľadať na manuálovej stránke reťazec athlon).
LDFLAGS používa linker (program, ktorý spája časti zdrojových kódov do spustiteľného súboru, alebo knižnice). Bezpečná hodnota premennej LDFLAGS je:
LDFLAGS="-Wl,-O1"
Ak chcete dostať zo systému maximum a ste ochotný trochu riskovať:
LDFLAGS="-Wl,-O1 -Wl,--sort-common -z -combreloc -Wl, \
--enable-new-dtags -Wl,--relax"
V niektorých prípadoch sa pri kompilácii glibc môžu
vyskytnúť problémy. Je lepšie nepoužívať v hodnote LDFLAGS
parameter -Wl,--relax:
LDFLAGS="-Wl,-O1 -Wl,--sort-common -z -combreloc
-Wl,--enable-new-dtags"
Problémy pre kompilácii robia aj OpenOffice.org a
GStreamer. Tu sa odporúča radikálne riešenie - nepoužívať
žiadnu hodnotu LDFLAGS:
LDFLAGS=""
V týchto špeciálnych prípadoch si môžete usporiť námahu s editovaním
súboru /etc/make.conf a premenné určiť priamo z príkazového
riadku:
# LDFLAGS="" emerge gstreamer
# LDFLAGS="" emerge openoffice
Nástroje: Tisk bez diskuse
Tiskni
Sdílej:
-march ktere pouzivaji bezne distribuce misto -mcpu. Existuji "objektivni testy" mezi temito rezimy?
$ mplayer MPlayer 1.0pre7-4.0.1 (C) 2000-2005 MPlayer Team CPU: Intel Pentium M Banias (Family: 6, Stepping: 5) Detected cache-line size is 64 bytes CPUflags: MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1 Compiled with runtime CPU detection - WARNING - this is not optimal!... no nezdá se mi, že by v mojí binární distribuci byl mplayer zkompilován zcela bez optimalizací
No mě se zase zdá, že to, co tady vidíme, je jen detekce procesoru.ovšem výsledkem této detekce se pak mplayer řídí a používá kód optimalizovaný pro dané možnosti ... což jaksi vyvrací názor, který se snaží článek vsugerovat, a to že binární distribuce optimalizace nepoužívají ...
... binární distribuce optimalizace nepoužívají ...
To som nikdy nepovedal! Povedal som, že binárne distribúcie nie sú prispôsobené každému procesoru na mieru, ale len pre nejakého spoločného predchodcu väčšiny procesorov.
A tento príklad je zmätočný, pretože sa týka iba jedného programu (mplayer) a nie celej distribúcie.
ano, takto doslovně ne, na druhou stranu já jsem neřekl, že jsi napsal přímo toto, takže mi taky taky nepodsouvej něco, co jsem neřekl! inkriminovaná věta zní: "Pretože binárne balíky nie sú optimalizované pre váš procesor a sú badateľne pomalšie." mezi "přebásněním" slov "nie sú optimalizované pre váš procesor" na "optimalizace nepoužívají" je z významového hlediska pouze jediný rozdíl, a to že jsem si dovolil zobecnit "ne pro váš procesor" na "pro žádný procesor", jelikož sjednocení množin {váš procesor} v případě čtenářů ábíčka zahrnuje nejspíš téměř všechny architektury, na kterých Linux běhá - pokud s tím nesouhlasíš, měl bys dokázat, že průnik množin {všechny modely procesorů, pro které jsou některé balíky v různých binárních distribucích optimalizovány} a {všechny modely procesorů, na kterých čtenáři provozují Linux} je prázdný... binární distribuce optimalizace nepoužívají ...To som nikdy nepovedal!
Povedal som, že binárne distribúcie nie sú prispôsobené každému procesoru na mieru, ale len pre nejakého spoločného predchodcu väčšiny procesorov.kde se toto tvrzení v článku vyskytuje?
A tento príklad je zmätočný, pretože sa týka iba jedného programu (mplayer) a nie celej distribúcie.zmatečná je jedině tvoje reakce, kolega J, na kterého jsem reagoval, psal o tom, že optimalizace má smysl u jednotlivých programů a uvedl: "Vyplati se to pro veci jako trebas mplayer.", v dané souvislosti je tedy nesmysl mluvit o celé distribuci
Compiled with runtime CPU detection - WARNING - this is not optimal!
No, nezda se ze by tady nekdo umel cist.
No, nezda se ze by tady nekdo umel cist.ok, až se to naučíš, tak začni od článku a pokračuj mojí první reakcí, pak třeba pochopíš, proč jsem na tvoji zmínku o mplayeru reagoval takto (případně si přečti ještě moji odpověď lzapovi)
$ mplayer MPlayer dev-CVS-060102-08:04-3.4.5 (C) 2000-2005 MPlayer Team CPU: Advanced Micro Devices Athlon 64 Newcastle,Winchester,San Diego,Venice; Sempron Palermo (Family: 15, Stepping: 0) CPUflags: MMX: 1 MMX2: 1 3DNow: 1 3DNow2: 1 SSE: 1 SSE2: 1 Přeloženo pro CPU x86 s rozšířeními: MMX MMX2 3DNow 3DNowEx SSE SSE2
, anebo nějakou jinou, super rychlou paměť (stačilo by tak o řád pomalejší jak RAM).
Keep in mind that -O3 enables optimizations that generally make code worse, not better. Use it only if you know it will improve your code.A občas sa stane, že kvôli tomu niečo padne. V každom prípade použitie kompilátoru od Intelu má omnoho lepší efekt :)
Ok, priznávam, že -O3 nemá vo väčšine prípadov tie najlepšie výsledky, ale aj tak sú tie najhoršie prípady takmer rovnaké ako pri -O2 (vyvracajúci dôkaz ocením).
Ja som nepovedal, že --omit-frame-pointer znemožní debugovanie na všetkých platformách.
Nejvíc mi padá stejnak Opera, která je snad jediným binárním programem v mém PC...(ano, OOo si překládám)
Vyplati se -O3 nebo -Os? Zatim pouzivam -O3, ale možná by bylo vhodnějšíByly doby, kdy jsem nadsene kompiloval s -O3. Od te doby, co jsem redukoval na -02, vyrazne klesl pocet komplikaci pri kompilacich (de facto na 0). Jineho efektu si nejsem vedom. Myslim, ze je to i ve smyslu doporuceni vyvojaru Gentoo, viz prispevek vyse.
# MAKEOPTS provides extra options that may be passed to 'make' when a # program is compiled. Presently the only use is for specifying # the number of parallel makes (-j) to perform. The suggested number # for parallel makes is CPUs+1. #MAKEOPTS="-j2"Zdroj: /etc/make.conf.example
Bežne sa odporúča použiť hodnotu: počet procesorov + 1To je pro másla 8-)