• ú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
    WILD_A
    WILD_A --- ---
    XCHAOS: Kdybych se ja vrhal do takovyhle veci asi bych vzal LLVM a psal backendy pro cilovy jazyky, pricemz treba Javascript uz je "hotovy". LLVM bitcode je imho srozumitelny narozdil od gcc gimple :)
    DACAN
    DACAN --- ---
    popcorn++
    REDGUY
    REDGUY --- ---
    JANFROG: Njn. Ja si zase myslim, ze kdyz vidim nekoho placat blbosti, tak bych mu to proste mel napsat, at uz dojel na kole do Ciny nebo ne. Kazdej mame neco.

    A btw, jestli si o me delas zavery na zaklade toho, co o me doslova nevis, tak nevim nevim. Rozumej, jestli si o me myslis, ze jsem curak, protoze jsem osklivej na XChaose, oukej, takovej nazor aspon vychazi z faktu. Ale jinak... no, delej, jak myslis 8)
    JANFROG
    JANFROG --- ---
    REDGUY:
    No kazdopadne se tesim, az ten projekt v nejaky funkcni podobe predstavis. Kdy tak zhruba to bude? 8))

    At uz si o nekterych XCHAOSovych myslenkach myslim cokoliv, jedna vec se mu neda uprit: predstavil minimalne dva ambiciozni a realizovane projekty (web browser a solarni kolo). To je vic, nez jsi - alespon co me je znamo - ukazal Ty. Mohu se plest, samozrejme

    Ja osobne si respektuji vice lidi kteri neco delaji byt treba ne skvele nez lidi, co jen hospodsky kritizuji a navazeji se do jinych byt sami nic nepredvedli a sedi coma na prdeli.
    REDGUY
    REDGUY --- ---
    XCHAOS: dnes jsou jazyky dost složitý - Muzes to prosim nejak rozvest? Jak je "slozitej" treba python? Jako jasne, je hodne veci, ktery se MUZES o pythonu naucit. Ale abys mohl pouzivat "bindingy na mysql a cteni formularu", tak staci naucit se par veci a jedes. V cem je tohle slozity? A v cem bude tvuj zazrak jednodussi?

    Ostatne, kdyz se podivas na Arduino, tak zjistis, ze i z C++ se da udelat dost dobre pouzitelnel subset, kterej je velmi jednoduchej na nauceni.

    A mimochodem - podle toho, jak porad mavas tim "binarnim FastCGI", mam pocit, ze jsi krapet mimo, co se tyce soucasnejch webovejch technologii. Mozna si nejdriv neco nastudovat 8))

    cílem je přesně to,co jsem popsal: lidi mají někde PHPhosting a potřebujou to, co usmolej, hned deploynout - a k cemu jim pak bude to, ze maji ten "FastCGI C zdrojak"? V cem je vyhoda proti tomu to proste usmolit rovnou v PHP, ktery pouzivaj milion lidi, neni problem se s nekym poradit, rychly je v soucasny dobe vic nez dost, ma knihovny na cokoliv a hlavne, na rozdil od xZazraku, existuje? 8)))

    Jo, prosim, jak je to s tim lock-inem? Vysvetli mi to. Prece nebudes zase delat tu starou vec s ignorovanim nepohodlnejch otazek 8))
    KEJML
    KEJML --- ---
    XCHAOS: Samozřejmě ambicioznost záleží na komplexitě toho tvýho jazyka. Pokus skončí u podpory if a for, tak to zas taková věda nebude, ale zas nevím jak velký v tom někdo bude psát, aby bylo nějak potřeba řešit rychlost kompilace :)

    Ale pořád nechápu tu aplikaci. Proč bych měl začít psát začít psát aplikaci v tvým jazyku místo JS? Jen proto, že se bojím, že příští rok už JS nebude kde spustit? Nebo naopak, když mám zdroják v PHP, co mi přinese jeho převod do JS?
    XCHAOS
    XCHAOS --- ---
    KEJML: tak zas tak ambiciózní to není, dnes jsou jazyky dost složitý, takže pořád jsou lidi, kteří jen primitivně skriptujou v shellu, což je overkill směrem na druhou stranu.

    spíš mám po letech chuť něco naprogramovat. podle kámoše co dělá v PHPse dnes všechno píše spíš v node.js... ale cílem je přesně to,co jsem popsal: lidi mají někde PHPhosting a potřebujou to, co usmolej, hned deploynout. nicméně, když se budou učit to moje prostředí, tak jim paralelně vyjede i zdroják v C pro FastCGI, nebo (snad) i ten node.js

    nebude to nic extra složitýho, spíš prostě webová platforma.. bindingy na mysql a čtení formulářů, apod...
    REDGUY
    REDGUY --- ---
    XCHAOS: jednak se vyhnu lock-inu na jedne platforme (coz je nakonec i gcc, jakkoliv svobodne) - poslechnete, Kefalin, co vy si predstavujete pod takym "Lock-in na jedne platforme"? Protoze GCC je schopny generovat kod pro procesory od AVR pres x86 az po treba IBM mainframy. Ja tam ten "lock-in" nejak nevidim, tak se tesim, az mi to vysvetlis 8)

    No kazdopadne se tesim, az ten projekt v nejaky funkcni podobe predstavis. Kdy tak zhruba to bude? 8))
    KEJML
    KEJML --- ---




    XCHAOS: Když máš v klubu právo mazat, vidíš všechny, včetně ignorovaných, jinak bys nemohl zodpovědně zastávat moderátorskou roli.

    XCHAOS: Jazyk, co se bude prodávat do několika jiných jazyků - velice ambiciózní projekt. Jakou si představuješ aplikaci v praxi? Takhle z fleku mne nenapadá situace, kdy bych si řekl, že přesně tohle bych potřeboval.
    XCHAOS
    XCHAOS --- ---
    REDGUY: chtel bych treba napsat i neco jinyho, nez generator iptables... ale pokud te to opravdu vzdava, tak snahu o nejake zjednoduseni C asi pomalu vzdam a uvazuju ted spis o generatoru kodu pro vice platform (tedy definovat si vlastni primitivni jazyk, napsat jeho parser, a generovat z nej kod pro C, PHP, Python, atakdal).

    Tahle cesta je zajimava z vice duvodu: jednak se vyhnu lock-inu na jedne platforme (coz je nakonec i gcc, jakkoliv svobodne), jednak umozni srovnat vykon ruznych platforem provadejicich fakticky to same, jednak jsou mozne budouci optimalizace dilcich targetu bez nutnosti prepisovat hromady zdrojaku... no a v neposledni rade, je jasne, ze treba nejake binarni fastcgi bude vzdycky provozovat jen par geeku, zatimco siroke masy si nainstalujou jen to, co jim bude chodit na PHP hostingu.

    Takovy code generator, i kdyz asi bude natruc napsany v C (rychlost se u compileru snad porad jeste ceni), ovsem asi v tomhle klubu kupodivu bude offtopic.
    REDGUY
    REDGUY --- ---
    XCHAOS: jak to že tě tady vidím, když tě už mám v ignore - Ja ti odpovim na tvoji otazku a tohohole se mi do dostane? No teda 8)) Ale hele, nevim proc. Mozna se ti i Nyx snazi naznacit, ze neni dobrej napad zase po x-letech rozvijet debatu na tema "XChaos vymejsli novej alokator pro C". Uz to tady parkrat bylo a nikdy to nedopadlo 8))

    Ostatne, i to co pises označit kus heapu jako asociovaný s aktuální hodotou stack pointeru je jen variace na to, co uz jsi psaval. Nic noveho a hlavne to neni reseni problemu s alokaci pameti v glorifikovanym assembleru. Jestli se neco jmenuje s podrzitkem nebo ne neni podstatny, hlavni problem je slozitost pouziti a nachylnost k chybam. Ona neni nahoda, ze prakticky vsechny moderni jazyky maji memory management automatickej. A jestli opravdu strasne nemas rad GC a opravdu nutne potrebujes pro svoje generatory konfiguraci iptables kazdej takt vykonu (lol), podivej se, jak to dela Rust. Akorat ze to samozrejme nejde udelat jen na urovni knihovem, ale proste kolem toho musi bejt postavenej celej jazyk.

    ale více nebudu psát v odpovědi pro tebe - ouch. To me ranilo 8))
    XCHAOS
    XCHAOS --- ---
    XCHAOS
    XCHAOS --- ---
    tak jsem dospěl někam sem:
    c - Print out value of stack pointer - Stack Overflow
    https://stackoverflow.com/questions/20059673/print-out-value-of-stack-pointer

    napadlo mi, že kdyby alokátor seskupoval alokace podle hodnoty stack pointeru v momentě alokace, tak by při prvním volání po návratu z funkce mohl nějak vyhodnotit, které položky může už zahodit - bylo by to překvapivě bezpečné i pro nestandardní způsoby opuštění funkce (longjmp). takovýto "pseudo garbage collection" by šlo iniciovat i mimo volání alokátoru, kdyby bylo potřeba, ale alokátory by ho volaly minimálně pokaždé, když by jim došla pre-alokovaná paměť...

    v podstatě by šlo o to vždy označit kus heapu jako asociovaný s aktuální hodotou stack pointeru. přičemž odmazávat by se měla vždy především "poslední předchozí", dle logiky věci.. akorát mi tam hapruje, jak jí odlišit např. od předposlední, která ještě může být platná, pokud se v té poslední nealokovalo nic.

    alokátory paměti by pak v podstatě pro běžný život stačily dva, zhruba ekvivalentní prastarým Basicovským levelům "local" a "global" (což mimochodem velmi dobře odpovídá C světu do sebe nevnořovaných funkcí). lokální alokátor by pak podle nejlepších C zvyklostí pro označování privátních a lokálních hodnot mohl začínat podtržítkem...
    XCHAOS
    XCHAOS --- ---
    REDGUY: jak to že tě tady vidím, když tě už mám v ignore? :-(

    jinak ano, zamýšlím se nad tím, googlím... a alloca() asi fakt nebude řešením pro moje pokusy o nějakou sadu zásad pro bezstarostné programování v C... ale více nebudu psát v odpovědi pro tebe.
    REDGUY
    REDGUY --- ---
    XCHAOS:
    man bash
    a hledej ulimit, switch -s. A zamysli se nad organizaci pameti a tim, jake dusledky ma pro moznou velikost stacku 8))
    XCHAOS
    XCHAOS --- ---
    ANT_39: no ale jak je to vůbec s velikostí stacku např. v Linuxu? to je tam pořád omezení na fixní limit jako kdysi v DOSu?
    JANFROG
    JANFROG --- ---
    ANT_39: Plus takove veci, ze pristup do alloca() pameti po pouziti longjmp() je UB (pokud se dobre pamatuji) a podobne legracky...
    ANT_39
    ANT_39 --- ---
    XCHAOS: S alloca a VLA je problem, ze pro prilis velky alokace se muzes snadno dostat mimo stack. Tusim v glibc a elfutils jsem normalne videl kod ve stylu if (x > a lot) malloc(x) else alloca(x) (a odpovidajici tomu free nebo nic). V linuxovym kernelu se dela na nahrade vsech pripadu alloca a VLA za alkoace na halde, mimo jine protoze ten stack overrun je potencialni bezpecnostni riziko.
    XCHAOS
    XCHAOS --- ---
    popravdě, jestli ještě budu někdy cokoliv dělat se stringama v C, tak uvažuju o tomto:
    Advantages of Alloca (The GNU C Library)
    https://www.gnu.org/software/libc/manual/html_node/Advantages-of-Alloca.html
    GIOMIKY
    GIOMIKY --- ---
    Ahoj, budu vdecny za jakykoliv nazor. Ted zrovna resim, proc mi interaktivni moc nabehne do prazdne obrazovky. Ale nejsem si jisty proc.
    Je to prohlizec ans souboru pro utf-8 terminaly. Je to psany tak nejak zbesile, ale pro svoje ucely mi to staci.
    http://elinks.xf.cz/pub/ansiu/
    Kliknutím sem můžete změnit nastavení reklam