• ú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
    VITEX
    VITEX --- ---
    GitHub - yhirose/cpp-peglib: A single file C++ header-only PEG (Parsing Expression Grammars) library
    https://github.com/yhirose/cpp-peglib
    XCHAOS
    XCHAOS --- ---
    Elissa: "EDIT: no part of this post is a question. I am no…" - eigenmagic.net
    https://eigenmagic.net/@vampiress/113450161380981899
    docela zajímavé diskuzní vlákno.... MSVC vyhodnocuje parametry funkce zprava doleva, místo zleva doprava. Maličkost, ale u imperativního programovacího jazyka docela zásadní, protože ve specifických případech nemusí být výsledky deterministické (gcc samozřejmě vyhodnucuje parametry funkce zleva doprava, stejně jako expressiony, ostatně čárka je v C stejně jen operátor, vyzkoušejte si to :-)
    XCHAOS
    XCHAOS --- ---
    A Nice Intermediate Language(ANIL)
    GitHub - AnilBK/ANIL: ANIL(A Nice Intermediate Language) Python & C++ inspired programming language that transpiles to C and can be embedded within C source files.
    https://github.com/AnilBK/ANIL

    No, o transpilery do C jsem se v poslední době začal zajímat, ale tenhle mi moc nebere...
    XCHAOS
    XCHAOS --- ---
    eh, C++ pořád stejně:
    vitaut 🤍❤️🤍 🇺🇦: "Mod ern C++" - Mastodon
    https://mastodon.social/@vitaut/112928944039188074
    XCHAOS
    XCHAOS --- ---
    začal jsem si pročítat zdrojáky tohohle:
    grunfink/snac2: A simple, minimalistic ActivityPub instance written in portable C - Codeberg.org
    https://codeberg.org/grunfink/snac2

    a je třeba říct, že jde o hodně zvláštní styl codeřiny v céčku :-) včetně například funkcí na generování HTML. je to poměrně hodně čisté C, na druhou stranu, i když místy docela specifické (skládání HTML tagů voláním funkcí vracejících stringy, apod.)
    XCHAOS
    XCHAOS --- ---
    také byste někdy chtěli, aby v C, které umíte i pozpátku, šlo napsat některé věci stručně, jako ve skriptovacích jazycích?

    no, "pod kapotou" by muselo být něco jako tohle:¨

    Iterator in C language - Stack Overflow
    https://stackoverflow.com/questions/4961860/iterator-in-c-language
    XCHAOS
    XCHAOS --- ---
    Reimplementace libc. Neznal jsem....
    musl libc
    https://musl.libc.org/
    XCHAOS
    XCHAOS --- ---
    DANIELSOFT: "new standard's nonfeatures, misfeatures, and defeatures"? :-)
    DANIELSOFT
    DANIELSOFT --- ---
    Catch-23: The New C Standard Sets the World on Fire - ACM Queue
    https://queue.acm.org/detail.cfm?id=3588242
    THERIDANE
    THERIDANE --- ---
    Mezi Zigem a V je propastnej rozdíl, zatímco v zigu děláme bare metal firmware pro stm32, desktop setup tool a webovou appku (wasm) a bez wrapperů používáme Cčkový knihovny (i/hlavně na webu), tak vlang teprve zvažuje jestli má smysl "dělat" embedded nebo ne, a vymýšlí jestli bude nějaká ucelená architektura nebo to bude co kus, to jinej kus lepicí pásky :-)

    Jinak zig je excelentní C/C++ kompilátor, stačí v makefilech nahradit `cc` za `zig cc` a máš z toho hotovej transpiler, bez práce a instalace toolchainů zkompiluješ stejnej program pro libovolnou architekturu a platformu, protože si zig nese pro prakticky všechno port libc (musl nebo glibc).
    XCHAOS
    XCHAOS --- ---
    Jinej podobnej směr je jazyk V. Hodně sázej na to, že všechno maj immutable (const), což samozřejmě z hlediska bezpečnosti nejde moc rozporovat...
    The V Programming Language
    https://vlang.io/

    lze konstatovat, že klíčové slovo "fn" je u derivátů Céčka populární. DEF FN, v Basicu ... :-)
    XCHAOS
    XCHAOS --- ---
    Jeden z směrů od Céčka dál - ani k C++, ani k Rustu, ale úplně do pryč. Zig je jakési splašené céčko bez for() smyček a bez malloc() - ale zato s vestavěnými unit testy (či čím?)
    Chapter 0 - Getting Started | ziglearn.org
    https://ziglearn.org/
    https://developers.slashdot.org/story/23/03/11/2326237/meet-zig-the-modern-alternative-to-the-c-programming-language
    XCHAOS
    XCHAOS --- ---
    XCHAOS
    XCHAOS --- ---
    You Can't Always Hash Pointers in C
    https://nullprogram.com/blog/2016/05/30/
    The most important consideration is that the integer form isn’t guaranteed to have any meaningful or stable value. In other words, even in a conforming implementation, the same pointer might cast to two different integer values.
    XCHAOS
    XCHAOS --- ---
    ANT_39: tak je to jen vtip, no.
    ANT_39
    ANT_39 --- ---
    XCHAOS: GCC to nesezere, a standardni to taky neni:
    6.10.2 Source file inclusion
    [...]
    A preprocessing directive of the form
    # include new-line
    XCHAOS
    XCHAOS --- ---
    ANT_39: nezkoušel jsem. mě na tom překvapil ten první řádek, ale asi dává smysl, že se zbytek řádku s direktivou preprocesoru prostě ignoruje, jen jsem o tom nikdy nepřemýšlel. Zbytek by měl jít zkompilovat na první pohled bez větších záludností...
    ANT_39
    ANT_39 --- ---
    XCHAOS: Melo by to jit vybuildit?
    XCHAOS
    XCHAOS --- ---
    WILD_A
    WILD_A --- ---
    XCHAOS: trigraphy a makra jsou zaklad pro C obfuscation contest nicmene za normalnich okolnosti trgraphy nikdy.
    XCHAOS
    XCHAOS --- ---
    To jsem nevěděl, že Python je tak nebezpečný... :-)
    XCHAOS
    XCHAOS --- ---
    ANT_39: tak zase ten zápis vypadá poměrně cool, že jo :-)
    ANT_39
    ANT_39 --- ---
    XCHAOS: A je tomu tak dobre.
    XCHAOS
    XCHAOS --- ---
    Trigraphy jsou hodně zapomenutá věc v C :-)
    What does the ??!??! operator do in C? - Stack Overflow
    https://stackoverflow.com/questions/7825055/what-does-the-operator-do-in-c
    XCHAOS
    XCHAOS --- ---
    LUDO: to je z twitteru :-)
    LUDO
    LUDO --- ---
    dobre photoshop skillz
    XCHAOS
    XCHAOS --- ---
    Neměli by tam radši něco Carbon neutral? :-)
    JANFROG
    JANFROG --- ---
    GIOMIKY: Nejsem buh, jen nam zkusenosti. Hodiny stravene v GDB ladenim podobnych (a mnohem "zajimavejsich") problemu :-)

    > za linkovaci figl
    Ta SO odpoved to vysvetluje.
    JANFROG
    JANFROG --- ---
    GIOMIKY: Mas to IMHO blbe slinkovane:

    Program received signal SIGSEGV, Segmentation fault.
    0x0000000000000000 in ?? ()
    (gdb) up
    #1  0x000000000073ebec in __register_frame_info_bases.part.5 ()
    (gdb) disass
    Dump of assembler code for function __register_frame_info_bases.part.5:
       0x000000000073ebb0 <+0>:	push   %rbp
       0x000000000073ebb1 <+1>:	push   %rbx
       0x000000000073ebb2 <+2>:	mov    %rsi,%rbx
       0x000000000073ebb5 <+5>:	sub    $0x8,%rsp
       0x000000000073ebb9 <+9>:	mov    $0x67ecd0,%rbp
       0x000000000073ebc0 <+16>:	movq   $0xffffffffffffffff,(%rsi)
       0x000000000073ebc7 <+23>:	mov    %rdx,0x8(%rsi)
       0x000000000073ebcb <+27>:	mov    %rcx,0x10(%rsi)
       0x000000000073ebcf <+31>:	mov    %rdi,0x18(%rsi)
       0x000000000073ebd3 <+35>:	movq   $0x7f8,0x20(%rsi)
       0x000000000073ebdb <+43>:	test   %rbp,%rbp
       0x000000000073ebde <+46>:	je     0x73ebec <__register_frame_info_bases.part.5+60>
       0x000000000073ebe0 <+48>:	lea    0x1bf319(%rip),%rdi        # 0x8fdf00 <object_mutex>
       0x000000000073ebe7 <+55>:	call   0x0 ; <--- ?!?
    => 0x000000000073ebec <+60>:	mov    0x1bf345(%rip),%rax        # 0x8fdf38 <unseen_objects>
       0x000000000073ebf3 <+67>:	mov    %rbx,0x1bf33e(%rip)        # 0x8fdf38 <unseen_objects>
       0x000000000073ebfa <+74>:	mov    %rax,0x28(%rbx)
       0x000000000073ebfe <+78>:	mov    0x1bf324(%rip),%eax        # 0x8fdf28 <any_objects_registered>
       0x000000000073ec04 <+84>:	test   %eax,%eax
       0x000000000073ec06 <+86>:	je     0x73ec30 <__register_frame_info_bases.part.5+128>
       0x000000000073ec08 <+88>:	test   %rbp,%rbp
       0x000000000073ec0b <+91>:	je     0x73ec20 <__register_frame_info_bases.part.5+112>
       0x000000000073ec0d <+93>:	add    $0x8,%rsp
       0x000000000073ec11 <+97>:	lea    0x1bf2e8(%rip),%rdi        # 0x8fdf00 <object_mutex>
       0x000000000073ec18 <+104>:	pop    %rbx
       0x000000000073ec19 <+105>:	pop    %rbp
       0x000000000073ec1a <+106>:	jmp    0x0  ; <--- ?!?
       0x000000000073ec1f <+111>:	nop
       0x000000000073ec20 <+112>:	add    $0x8,%rsp
       0x000000000073ec24 <+116>:	pop    %rbx
       0x000000000073ec25 <+117>:	pop    %rbp
       0x000000000073ec26 <+118>:	ret    
       0x000000000073ec27 <+119>:	nopw   0x0(%rax,%rax,1)
    --Type <RET> for more, q to quit, c to continue without paging--
    

    rychle stackoverllowing naslo: https://stackoverflow.com/questions/35116327/when-g-static-link-pthread-cause-segmentation-fault-why.
    Kliknutím sem můžete změnit nastavení reklam