• ú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í
    WILD_A
    WILD_A --- ---
    XCHAOS: Mne ani to C++ nevadi kdyz je to rozumnej subset, bez zbesilyho template metaprogramovani a boostu a podobnych veci.
    XCHAOS
    XCHAOS --- ---
    WILD_A: určitě je to vhodný se tady zeptat. já bych o takovou práci taky stál... ale je vzácností narazit na to, že hledají fakt C a ne C/C++ ... já mám ten problém, že C++ prostě nestravuju.
    WILD_A
    WILD_A --- ---
    Mimochodem, nevim jestli je to tady vhodny, ale neshani nekdo C vyvojare na *nix based systemy?
    WILD_A
    WILD_A --- ---
    XCHAOS: Ja to nepouzil stylem AS IS ale vykopiroval a modifikoval jsem co jsem potreboval, takze primej example nemam.
    XCHAOS
    XCHAOS --- ---
    WILD_A: existuje někde example využití C API k tomuhle? (já ve zdrojácích hledal jen jejich dynamická pole, a dost mi zklamala, popravdě)

    (pokud tuhle debatu sleduješ dýl, možná tušíš, že já fandím spojovým seznamům...)
    WILD_A
    WILD_A --- ---
    XCHAOS: Neni to json parser, ale vlastne generator kodu, kterej to cpe do struktur, ktery se v komentarich nejak popisou.

    Jinak asociativni pole v C je imho nejlepsi obslehnout z Pythonu jejich dictionary object, aspon ja to tak udelal, rychly a dostatecne obecny.
    http://svn.python.org/projects/python/trunk/Include/dictobject.h
    http://svn.python.org/projects/python/trunk/Objects/dictobject.c
    XCHAOS
    XCHAOS --- ---
    WILD_A: tak json parser je jednoduchý udělat, složitá je ta datová struktura, do který to naimportovat, protože ta v C prostě chybí (python dictionary).

    já se o cosi co by bylo ekvivalentem asociativních polí a slovníků samozřejmě v C snažím už léta... nejde jen o to, že tam na to není syntaktický cukr, jde i o volbu vhodné datové struktury, že
    WILD_A
    WILD_A --- ---
    XCHAOS: https://github.com/eliben/pycparser C99 parser v pythonu, ma v sobe i kod generator, takze clovek muze elegantne menit AST a pak generovat kod, dobry na prepisovani kodu, pripadne statickou kontrolu nekterych veci a pod.
    Ja na to udelal takovej zatim nedotazenej generator json parsovani https://github.com/w-vi/jsoncc
    XCHAOS
    XCHAOS --- ---
    jinak pole proměnné délky vzniká (pokud to dobře chápu) na stacku, takže ho nejde například vrátit z funkce, ne? což samozřejmě znemožňuje napsat intuitivní konkatenační funkci... ta musí pořád alokovat... (taky v dokumentaci to používají jako náhradu za alloca(), tzn lokální alokaci na stacku)
    XCHAOS
    XCHAOS --- ---
    WILD_A: neznám?
    WILD_A
    WILD_A --- ---
    XCHAOS: Docela sikovny, v kodu C99 to pouzivam, vubec C99 vidim jako posun do predu, akorat teda prenositelnost je mistama slabsi. Ale jinak C99 preferuju ve spolupraci s Pythonvskym pycparserem se pak daji delat pekny veci, jako generovat kod z komentaru a pod.
    XCHAOS
    XCHAOS --- ---
    ha... pole proměnné délky v C99? (místo alokace...)
    GNU C Language Extensions
    http://tigcc.ticalc.org/doc/gnuexts.html#SEC76
    XCHAOS
    XCHAOS --- ---
    http://stackoverflow.com/...s-the-worst-real-world-macros-pre-processor-abuse-youve-ever-come-across

    baví mi např.:
    #define ever (;;)
    for ever {
    ...
    }

    ale já raději používám
    #define loop while(TRUE)
    :-)

    jinak tohle
    http://chaos-pp.cvs.sourceforge.net/chaos-pp/order-pp/example/bottles.c?revision=1.10&view=markup
    pro mě určitě bude mocný zdroj inspirace :-) ale řekl bych, že moje nápady jsou stručnější:

    http://chaos-pp.cvs.sourceforge.net/...vc/chaos-pp/order-pp/inc/order/rec.h?revision=1.6&view=markup

    jinak samozřejmě, dostal jsem se k tomu přes hledání tohohle :)

    https://gist.github.com/jcromartie/238308

    ale samozřejmě, nemám tak nízké cíle.

    BTW $ v názvech maker gcc toleruje kvůli nějaké historické kompatibilitě s VMS (a jde to zakázat, ale defaultně je to povolené)
    XCHAOS
    XCHAOS --- ---
    Torvalds: I Made Community-Building Mistakes With Linux - Slashdot
    http://linux.slashdot.org/...14/10/16/2214216/torvalds-i-made-community-building-mistakes-with-linux
    WILD_A
    WILD_A --- ---
    uselessd vypada nadejne, uvidime jestli to adoptuje FreeBSD pak by to melo sanci.
    XCHAOS
    XCHAOS --- ---
    (tak jsem už doufal, že mi někteří lidi mají fakt v ignorelistu, a ono ne :)
    XCHAOS
    XCHAOS --- ---
    no, tak vlastně první bugreport na systemd (resp. debian Jessie) je právě ten, že noťas (Eee, už dost obstarožní) mi nastartuje jen se zapojeným zdrojem, na baterky se to kousne (právě ve chvíli kdy se zavede kernel a startuje systemd). baterky jsou celkem v dobrým stavu, vydrží to na ně (když už to jednou nastartuje) skoro 4 hodiny.

    asi s tím půjdu do fóra Debian, hmm
    XCHAOS
    XCHAOS --- ---
    WILD_A: no, já šel cestu vývoje maker,kterými by šlo v C psát kód stejně snadno, jako ve skriptovacích jazycích. ale v tomhle klubu jsem dopadl právě podobně, jako ten Poettring... tak mi zaujalo, že výtvor někoho tak nenáviděného (s tím, že důvody si dokážu domyslet) postupně přejímají všechny linuxové distribuce

    takžesi myslím, že jestli C<<1 dodělám,tak z toho nakonec třeba ještě bude Debianí balíček :-) a to už je nějaká motivace :-)
    XCHAOS
    XCHAOS --- ---
    WILD_A: zkus ten jejich uselessd ....
    WILD_A
    WILD_A --- ---
    No a je pravda, ze mam doma i system s FreeBSD a systemd tam nerozbehnu ... coz mne taky stve
    WILD_A
    WILD_A --- ---
    XCHAOS: Ja se s tou kritikou prave ztotoznuju, to, ze starej init system potreboval zrychlit a treba umoznit lip vyjadrovat zavisloti apod to je mimo diskusi, ale jak rikas binarni logovani je nepochopitelny a taky to, ze ted na vsechno volam system-ctl vzdyt i o ty core dumpy si musim rikat, mozna to jde nejak vypnout at je mam klasicky.
    I kdyz popravde vlastne mne to zaclo frustrovat hlavne kvuli tomu, ze je vsechno jinak a nic neni jako driv :)
    Kliknutím sem můžete změnit nastavení reklam