CreepyLink.com je nový zkracovač URL adres, 'díky kterému budou vaše odkazy vypadat tak podezřele, jak je to jen možné'. Například odkaz na abclinuxu.cz tento zkracovač převádí do podoby 'https://netflix.web-safe.link/logger_8oIlgs_free_money.php'. Dle prohlášení autora je CreepyLink alternativou ke zkracovači ShadyURL (repozitář na githubu), který dnes již bohužel není v provozu.
Na blogu Raspberry Pi byla představena rozšiřující deska Raspberry Pi AI HAT+ 2 s akcelerátorem Hailo-10 a 8 GB RAM. Na rozdíl od předchozí Raspberry Pi AI HAT+ podporuje generativní AI. Cena desky je 130 dolarů.
Wikipedie slaví 25. výročí svého založení. Vznikla 15. ledna 2001 jako doplňkový projekt k dnes již neexistující encyklopedii Nupedia. Doména wikipedia.org byla zaregistrována 12. ledna 2001. Zítra proběhne v Praze Večer svobodné kultury, který pořádá spolek Wikimedia ČR.
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.
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-)