• ú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í
    REDGUY
    REDGUY --- ---
    XCHAOS: po změně seedu jsou výsledky úplně stejné. - ne, nejsou. Vysledny soucet je jiny 8), stejne jako pocet scitanejch cisel.
    Ale samozrejme, vzhledem k tomu kolik tech nahodnejch cisel generuju, tak ruzne seedy nemaji nejak zasadni vyznam. Co jsem si prave vyzkousel, tak pocty scitanej cisel se pro ruzne seedy lisi max o cca 0.6%, coz bude asi pod chybou mereni.

    Cili prakticky vzato, ten seed neni potreba. Teoreticky vzato tam ale patri. A tech par pismenek me nezabije.
    XCHAOS
    XCHAOS --- ---
    (odpovím si sám: po změně seedu jsou výsledky úplně stejné. a tartarus jsem radši přejmenoval na tartaros ... římský militarismus mi není blízký, to už jsou lepší klasičtí řečtí sofisté, ze kterých si řada online diskutérů bere příklad dodnes)
    XCHAOS
    XCHAOS --- ---
    KEYMASTER: a sakra, vida... :-)

    REDGUY: hele... jak to tedy doopravdy je, s tím ovlivněním benchmarku tím, že ta čísla pro jistotu budou stejná ? :-))
    KEYMASTER
    KEYMASTER --- ---
    jo, protože jinak by se mohly náhodně vygenerovat čísla s moc bity, a pak by sčítání trvalo dýl :D
    XCHAOS
    XCHAOS --- ---
    REDGUY: no, tak myslím, no.
    REDGUY
    REDGUY --- ---
    XCHAOS: seeduje to pořád tím samým Coz je zcela umyslne, protoze u benchmarku mi to prijde jako velmi vhodne, nemyslis?
    REDGUY
    REDGUY --- ---
    DAVIDOWITCH: ad ten XOR reg, reg; Tohle je presne duvod, proc je celej x86 a compatible v prdeli. - jo, to me vzdycky pobavi, ta predstava ze soucasny nekolika GHz hyperthreadovy multijadrovy superpipelinovany x64 procesory jsou s primhourenim oci kompatibilini jeste s prastarou 8008 8)
    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)
    Kliknutím sem můžete změnit nastavení reklam