• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    XCHAOSANSI C/C99 (specifikace), GNU C (gcc, glibc), Tiny C (tcc) a POSIX - ne nutně C++,g++,libstdc++ nebo Win32 API
    /* Toto je klub především pro lidi, pro které je programování jednou z mnoha massive multiplayer online počítačových her, které lze hrát.
        V tomto klubu hrozí sémantická hereze a nezdravě vysoký obsah syntaktického cukru. Nevhodné pro algoritmické diabetiky.
        Od účastníků debaty se předpokládá automaticky přístup k instalovanému GNU C: sudo apt-get install build-essential
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    C (programovací jazyk)#C99 Heslo na české Wikipedii
    Jazyk C - Základy praktického programování V Praze 2oo7 pro SSPŠ Tomáš Harvie Mudruňka a kolektiv - jak si programování v C představuje většina lidí
    http://stevenkobes.com/ctest.html C Programming Puzzlers - nepouštějte se do flamewars v tomhle klubu, pokud neuhodnete aspoň polovinu správně!
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    http://en.wikipedia.org/wiki/C99 C99 is a modern dialect of the C programming language.
    http://cprogramminglanguage.net/ C programming language
    http://cprogramminglanguage.net/c-programming-language-tutorial.aspx C programming language - úvod
    http://en.wikipedia.org/wiki/Criticism_of_the_C_programming_language C makes it easy to shoot yourself in the foot. (ještě že ne do hlavy...)
    http://en.wikipedia.org/wiki/C_preprocessor
    http://gcc.gnu.org/onlinedocs/gcc/Variadic-Macros.html C99 makra s proměnným počtem argumentů - __VA_ARGS__
    http://gcc.gnu.org/onlinedocs/gcc/ GNU C Compiler
    http://gcc.gnu.org/onlinedocs/gcc-4.2.2/gcc/Optimize-Options.html
    http://bellard.org/tcc/ Tiny C Compiler - prý C99 compliant (min. umí __VA_ARGS__) - vhodný pro skriptování v C - umí #!/usr/bin/tcc -run
    http://en.wikipedia.org/wiki/International_Obfuscated_C_Code_Contest - pokud jste neviděli tohle, tak jste ještě neviděli opravdu nečitelný C zdroják
    http://bellard.org/otcc/ Obfuscated Tiny C Compiler - z tohohle vtípku vznikl Tiny C compiler
    http://en.wikipedia.org/wiki/ANSI_C Jak se střelit do nohy standardizovaným způsobem.
    http://eli-project.sourceforge.net/c_html/c.html ANSI C Specification
    http://www.lysator.liu.se/c/ Různý ANSI C bordel
    http://www.cs.rit.edu/~ats/books/ooc.pdf Object Oriented Programming with ANSI-C - a pak že to nejde
    http://en.wikipedia.org/wiki/Longjmp co jsou to setjmp()/longjmp() knihovní funkce (pro všechny, podle kterých to bez C++ try { } catch() ... nejde)
    http://groups.google.com/group/comp.lang.c++.moderated/browse_thread/thread/dcdc710c27f47c72 C neumí správně počítat (?)
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    http://www.fastcgi.com/ FastCGI is simple because it is actually CGI with only a few extensions.
    http://www.metalshell.com/source_code/18/Mysql_Select.html How to do a simple connection and select with mysql
    http://xmlsoft.org/ The XML C parser and toolkit of Gnome
    http://curl.haxx.se/libcurl/ libcurl - the multiprotocol file transfer library
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    https://dev.arachne.cz/svn/cll1h SVN/Trac jazyka C<<1 (user-friendly nadstavba nad ANSI C99 - ve stylu JQuery vs. JavaScript)
    Benchmark iterace a serializace stringů v různých jazycích vs. v C
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        moderátor se velice zhruba řídí zvyklostmi moderace, která kdysi platila v řadě konferencí sítě FidoNet ... C != 0xdead */
    rozbalit záhlaví
    XCHAOS
    XCHAOS --- ---
    NE0: viz předchozí. na 64bit CPU to dělá (ale s tou zvláštnůstkou, že s -O3 to "anuluje" tu popisovanou zvláštnůstku), na 32bit to nedělá (asi ani tu první zvláštnůstku)
    NE0
    NE0 --- ---
    XCHAOS: To by me asi zajimalo, ja jsem na 32b, Linux version 3.3.5-1-ARCH (tobias@T-POWA-LX) (gcc version 4.7.0 20120505 (prerelease) (GCC) ) #1 SMP PREEMPT Tue May 8 05:10:33 UTC 2012
    A zcela jasne to potvrzuje, ze "popravdě... nemít přístup k Debian-style systému, kde bylo provedeno apt-get install build-essential znamená být v tomto klubu offtopic. fakt sorry..." opravdu VUBEC neresi, ze ten ASM vystup pak ma kazdej stejne uplne jinej, ze jo...
    XCHAOS
    XCHAOS --- ---
    REDGUY: pardon. seeduje to pořád tím samým :-)
    XCHAOS
    XCHAOS --- ---
    (pro rejpaly: tartarus a tartaros jsou aliasy pro ten samý stroj, jsme u nás ve své mytologické úchylce řecko-římsky kompatibilní)
    XCHAOS
    XCHAOS --- ---
    ugh, heh... tak na 32 bitovém eee to nedělá:

    xchaos@odysseus:~/svn$ scp tartaros:test.c .
    xchaos@tartaros's password:
    test.c 100% 4928 4.8KB/s 00:00
    xchaos@odysseus:~/svn$ gcc -O2 test.c -otest
    xchaos@odysseus:~/svn$ ./test
    Sum: -548636792
    Time: 3.85133
    xchaos@odysseus:~/svn$ ./test WTF
    Sum: -548636792
    Time: 3.49321
    xchaos@odysseus:~/svn$ gcc -O3 test.c -otest
    xchaos@odysseus:~/svn$ ./test
    Sum: -548636792
    Time: 3.26296
    xchaos@odysseus:~/svn$ ./test WTF
    Sum: -548636792
    Time: 3.93193
    xchaos@odysseus:~/svn$ cat /proc/version
    Linux version 2.6.38-15-generic (buildd@panlong) (gcc version 4.5.2 (Ubuntu/Linaro 4.5.2-8ubuntu4) ) #61-Ubuntu SMP Tue Jun 12 19:15:11 UTC 2012
    xchaos@odysseus:~/svn$ gcc --version
    gcc (Ubuntu/Linaro 4.5.2-8ubuntu4) 4.5.2
    Copyright (C) 2010 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions. There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    REDGUY
    REDGUY --- ---
    XCHAOS: vtipné je, jak ten kód ničím neseeduje ten random generátor, hehe - huh? A co podle tebe dela srand(1337); na radku 30 ?
    XCHAOS
    XCHAOS --- ---
    NE0: viz [ XCHAOS @ ANSI C/C99 (specifikace), GNU C (gcc, glibc), Tiny C (tcc) a POSIX - ne nutně C++,g++,libstdc++ nebo Win32 API ] - u mě se to pro -O2 fakt chová jinak, než pro -O3 ... můžu to zkusit ještě na svým notebooku, ten není 64bit
    REDGUY
    REDGUY --- ---
    XCHAOS:
    $ gcc --version
    i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00)
    Copyright (C) 2007 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions.  There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    
    XCHAOS
    XCHAOS --- ---
    (vtipné je, jak ten kód ničím neseeduje ten random generátor, hehe :-)
    XCHAOS
    XCHAOS --- ---
    REDGUY: ok, to vysvětluje hodně z tvých ostatních charakterových vlastností :-) ale to je tu offtopic, takže končím (prozradíš, čím si si to tedy kompiloval ty?)
    REDGUY
    REDGUY --- ---
    XCHAOS: že tuto konkrétní prerekvzitu splňuje - nesplnuju, protoze mam Maca 8)))
    NE0
    NE0 --- ---
    [neo@neovo ~]$ gcc -O2 test.c
    [neo@neovo ~]$ ./a.out
    Sum: -548636792
    Time: 0.486758
    [neo@neovo ~]$ ./a.out WTF
    Sum: -548636792
    Time: 0.505649
    [neo@neovo ~]$ gcc -O3 test.c
    [neo@neovo ~]$ ./a.out
    Sum: -548636792
    Time: 0.499573
    [neo@neovo ~]$ ./a.out WTF
    Sum: -548636792
    Time: 0.510791

    O3 optimalizace je na tomhle prikladu tak uzitecna, ze jinak pojmenuje labely (pro XLAMY: gcc -O3 -S test.c -o testO3.s; gcc -O2 -S test.c -o testO2.s; diff testO3.s testO2.s). Fakt by me zajimalo, do jakych spiral ses s tim O3 zase zamotal...
    XCHAOS
    XCHAOS --- ---
    NE0: mě to taky nejde narozum... ale:




    xchaos@tartarus:~$ gcc -O2 test.c -otest
    xchaos@tartarus:~$ ./test WTF
    Sum: 403504454559365000
    Time: 0.450687
    xchaos@tartarus:~$ ./test
    Sum: 403504454559365000
    Time: 2.36595
    xchaos@tartarus:~$ ./test WTF
    Sum: 403504454559365000
    Time: 0.475942
    xchaos@tartarus:~$ ./test
    Sum: 403504454559365000
    Time: 2.49658

    FYI

    xchaos@tartarus:~$ cat /proc/version
    Linux version 2.6.32-5-amd64 (Debian 2.6.32-45) (dannf@debian.org) (gcc version 4.3.5 (Debian 4.3.5-4) ) #1 SMP Sun May 6 04:00:17 UTC 2012
    xchaos@tartarus:~$ gcc --version
    gcc (Debian 4.4.5-8) 4.4.5
    Copyright (C) 2010 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions. There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    XCHAOS
    XCHAOS --- ---
    DAVIDOWITCH: dal jsem to už i do záhlaví, sorry :-) navzdory tomu, jak moc mi občas štve troll REDGUY, tak musím přiznat, že tuto konkrétní prerekvzitu splňuje (tedy občas se fakt šťourá v nějakých C ptákovinkách a přeloží si je)
    DAVIDOWITCH
    DAVIDOWITCH --- ---
    XCHAOS: Asi sem te hricce venoval vic casu nez mas k dispozici, tak te tim nebudu zatezovat.

    XCHAOS: Tvoje velmi fluidni definice toho co je on a off topic mne uz taky serou.
    Takze to je ANSI C/C99 v podani gcc na Debian-style boxu? Co kdyz mame BSD? Nebo Gentoo? Nebo ArchLinux? Nebo pouzivam ICC, protoze GCC je pomalej kram?
    XCHAOS
    XCHAOS --- ---
    (no jo rejpalové... si to samozřejmě kompilujte i na CentOSu nebo Gentoo, když musíte... jen jsem chtěl poskytnout vodítko začátečníkům, co mají nějaké to Ubuntu nebo Mint a chtějí rychle přejít ke kompilaci ukázkových C zdrojáků...)

    je to přesněji řečeno sudo apt-get install build-essential (pro úplné Ubuntu-lamy)
    XCHAOS
    XCHAOS --- ---
    DAVIDOWITCH: popravdě... nemít přístup k Debian-style systému, kde bylo provedeno apt-get install build-essential znamená být v tomto klubu offtopic. fakt sorry...

    (že jsi to ty, můžu ti udělat nějaký ssh account, možná i celý vlastní OpenVZ virtuál s vlastní IP...)
    XCHAOS
    XCHAOS --- ---
    DAVIDOWITCH: -O3 tedy zřejmě do kódu cpe více cmovge instrukcí, než ostatní optimalizace? :-)
    DAVIDOWITCH
    DAVIDOWITCH --- ---
    XCHAOS: Vsechno tohle bylo mnohem delsi nez to prelozit s -s a hodit na pastebin. Ale, u tebe sem si uz zvykl..
    XCHAOS
    XCHAOS --- ---
    DAVIDOWITCH: sorry, ale i tak jsem této hříčce věnoval víc času, než jsem dnes měl v plánu. je to ... zajímavé. je jistě zajímavá hra zjišťovat, kdo přijde na to čím to je, jaké k tomu použije nástroje. mě se to líbí, atd. - ale pro dnešek končím.
    DAVIDOWITCH
    DAVIDOWITCH --- ---
    XCHAOS: Protoze mi nekdo kdo sedi u linuxovy masiny ten -s prepinac zapnul, tak ti muzu rict, ze tam je cmovge, kterej je za tu magii zodpovednej.
    Kliknutím sem můžete změnit nastavení reklam