• ú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í
    KOJA
    KOJA --- ---
    DAVIDOWITCH: Ja prave zil v domneni, ze nejen hry ale i renderovani 3D modelu jsou hlavne o GPU. Ted koukam, ze ne vzdy: http://blender.stackexchange.com/questions/47598/should-i-buy-a-better-cpu-or-gpu
    Co je pro vas hlavni duvod pouzivat CPU, malo pameti na GPU?
    DAVIDOWITCH
    DAVIDOWITCH --- ---
    KOJA: Quadro tam je taky, ale neni relevantni. Ja nedelam hry (ty bezej na GPUcku), ja delam grafiku pro film. To je takrka vylucne domena CPU (a tam C++, obcas nejaky kusy z nejakejch magickejch duvodu v C, ale spis to je C++ co je "ocesany" na C nez ze by to bylo C jako C)
    KOJA
    KOJA --- ---
    DAVIDOWITCH: To je zajimavy, na renderovani bych cekal spis neco jako quadro od nvidie a ne dva xeony ale jsem laik, nevidim do toho. Nechces se podelit o nejake zajimave info?

    Pardon za OT ostatnim.
    DAVIDOWITCH
    DAVIDOWITCH --- ---
    KOJA: Ja na tom primarne renderuju.. ze to taky celkem rychle buildi je prijemnej bonus :-D
    KOJA
    KOJA --- ---
    DAVIDOWITCH: Tak to je pekny. Nemuzu rict, ze by me nejak omezovalo buildit vzdalene a podelit se ale mit takovy hracky na stole bych asi taky vydrzel :-)
    XCHAOS
    XCHAOS --- ---
    C jako jeden z cílových jazyků pre-compileru... což je přesně to, co mi zajímá...
    New Release Of Nim Borrows From Python, Rust, Go, and Lisp - Slashdot
    https://developers.slashdot.org/...1/0516219/new-release-of-nim-borrows-from-python-rust-go-and-lisp
    XCHAOS
    XCHAOS --- ---
    JANFROG: no může to být dlouhý, protože se mu tam vygenerovala spousta symbolů (s tím, že některý symboly jsou automaticky vygenerované těmi templaty, takže o nich ani neví... právě tyhle budou asi způsobovat to, proč je to celé obří)

    každopádně, tenhle klub není až tolik o C++ a přitom se tu začíná řešit skoro víc, než v tom zdejším NYXovém C/C++ :-)
    ANT_39
    ANT_39 --- ---
    JANFROG: Internovani stringu neni povinne, ale bezne se dela (DW_FORM_str vs. DW_FORM_strp myslim, jestli je to to, co myslis).
    DAVIDOWITCH
    DAVIDOWITCH --- ---
    KOJA: moje je konkretne moje pracovni stanice s 2x Intel Xeon E5-2630 v4, nikoliv build server.
    KILLUA
    KILLUA --- ---
    Jo asi se mi to skutečně plete, tenhle klub sem si vyhledal asi před 2 lety když sem si s C hrál, ale pak sem přestal - ale snad ne nadobro :)
    KOJA
    KOJA --- ---
    KILLUA: Co se tyka linuxu, tak prekladace jsou porad jednovlaknove a paralelizace se resi na urovni build systemu. Typicky pouzijes "make -j" nebo treba "make -j 4" a ruzne targety se buildi paralelne (samozrejme tak jak to jejich zavislosti dovoli).
    KOJA
    KOJA --- ---
    KILLUA: To si mozna pletes vkladani hlavickovych souboru a dynamicke linkovani knihoven. Hodne uzce to souvisi ale jelikoz tu resite jak presne probiha build binarky, tak to uz nejde uplne zamenovat/ztotoznovat.
    KOJA
    KOJA --- ---
    KILLUA: Typoval bych nejaky build server (treba s 20 jadrovym xeonem a HT). Pro distribuovane buildy se podivej treba na distcc. Slysel jsem od cloveka z jedne banky, ze u nich resi distribuovany build celeho systemu tak, ze se pouzivaji desktopy vsech lidi v budove (pravdepodobne s nejakym skalovanim prostredku podle vytizeni toho desktopu).
    JANFROG
    JANFROG --- ---
    XCHAOS: Nechapu...
    XCHAOS
    XCHAOS --- ---
    JANFROG: symbol tape?
    JANFROG
    JANFROG --- ---
    KILLUA: rekl bych, ze linkovani je o neco slozitejsi, nez ze se "vkládají většinou na začátek" :-)
    KILLUA
    KILLUA --- ---
    Jo teď mi to dochází, mega soubory jsou ony linkované knihovny co se vkládají většinou na začátek, že?
    KILLUA
    KILLUA --- ---
    No vidíš, to je docela věc co mě zajímala, takže jde skutečně jenom o vlákna - to sem nevěděl. Jsou v C++ mega soubory běžné? Já se teď v PHPku snažim držet soubory spíš vyloženě malé max 500-1000 řádků pro přehlednost.
    DAVIDOWITCH
    DAVIDOWITCH --- ---
    KILLUA: Hele, dela se vesmes vsechno z toho.
    A ten dotaz je takovej hodne "nejasnej".. treba neni uplne moc rozdil mezi jednom serveru s vice procesory a jednom serveru s jednim hodne-vlaknovym procesorem. Obecne plati, ze co zdrojovej soubor, to 1 thread. Takze kdyz mas fakt hodne souboru, muzes kompilovat hodne siroce paralelne. A tim ze casto to je 1 vstup -> 1 vystup, muzes i distribuovane. Pak uz zalezi co presne vyrabis. My treba mame dve verze naseho softu, staticky a dynamicky linkovana. Staticky linkovani je pak single-threaded a trva tak 1-2 minuty. Dynamicky linkovany je bleskovy (a ty jednotlivy dso se linkuji separatne, paralelne), ale zase trochu platis pri startup time... Takze tak.. cim vetsi projekt a vic zdrojovejch souboru, tim vic vlaken uzivis a jestli to je 1 velky CPU, 1 server s vic CPU, nebo vic serveru je ti vicemene jedno (pochopitelne taky se resi IO a pamet apod, ale to je spis separatni otazka)
    KILLUA
    KILLUA --- ---
    No nic no, jen mě zajímalo na čem se kompiluje s 40 jádry, když to tu padlo.
    KILLUA
    KILLUA --- ---
    Dotaz někoho kdo se o C zajímá jen okrajově, ale už víc o multijádra, jaké procesory jsou pro tyhle věci nejlepší? Beru z rozhovoru, že "kompilátory" plně podporují multijádra/multivlákna?

    Takže pro nadšence by bylo reálné mít třeba tenhle 10 jádrový 20 vláknový? Intel Xeon E5-2630v4 za 20K?

    Nebo jsou nějaké alternativy? Jakože kompilujete na více fyzických serverech? Nebo jednom serveru s více procesory?
    Kliknutím sem můžete změnit nastavení reklam