• ú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
    KEJML
    KEJML --- ---
    XCHAOS: Viděl jsi někdy OpenMP? Použil jsem to párkrát, na triviální operace, kde mi šlo o hrubej výkon. Prostě před for cyklus napíšu #pragma omp for a všechno samo funguje. Defaultně si to vezme tolik vláken, kolik je v systému procesorů (s jistě mnoha způsoby konfigurace) a všechno krásně běží. Není to to, co hledáš?
    DAVIDOWITCH
    DAVIDOWITCH --- ---
    Me to neda, ja do toho trochu stouchnu :-D
    Vubec to neni na web. Necekam ze by to nekdy vzniklo ale..
    Znate Inteli SPMD compiler ISPC?
    V drevnich dobach, nez se rozhodli udelat tenhle oficialni, tak existovaly 2 verze. ISPC (napsal drzitel Oskara Matt Pharr) a Unnamed compiler (napsal nedrzitel Oskara, Ingo Wald).. z toho je videt ze Intel ma preference bud pro hezka jmena, nebo pro drzitele Oskara, pripadne oboji.

    Anyway, oba prekladace delaj to co dela Cuda, tj: napisu:
    float dot(Vector3f a, Vector3f b) { return a[0]*b[0] + a[1]*b[1] + a[2] * b[2]; }

    A prelozi to do neceho co umi pracovat na nekonecne dlouhejch vektorech (ty Vector3f se prelozi jako SoA) a to pomoci SIMD instrukci (clovek si muze zvolit jaky instrukce).

    ISPC jde rovnou do binarky a je to nuda.

    To co umel ten od Ingo Walda bylo, ze to prelozil do citelnyho C++ kodu (ale velmi C-ish, jen si tam pomahal templatama a pretizenejma operatorama), kterej slo pripadne dal upravovat.
    Protoze kdo nekdo psal SIMD rucne vi, ze to je vetsinou zbesilej vopruz a mit neco co vezme normalni kod a udela mi z nej SIMD kod by bylo fajn, ale mit kvuli tomu separatni prekladac ze kteryho vypadne .o ktery musim linkovat.. to uz je vopruz. Takze.. kdyby misto trivialniho pthreadu z toho padaly SIMD intrinsicy, tak by to i k necemu bylo. Food for thought. (A napsal to jeden clovek behem par mesicu, vesmes po vecerech, takze to je celkem pricetnej cil.. a ani nemel Oskara)
    REDGUY
    REDGUY --- ---
    XCHAOS: A napsat funkci, ktera se bude jmenovat go a bude ti pocitat ty thready, to je fakt hrozne slozity. Tak strasne slozity, ze se vyplati kvuli tomu Cecko vyhodit a prejit na uplne novej jazyk 8)))

    a už mi fakt neunavuj - hele, ja chapu ze te to sere, ale kdybys to doakzal aspon na momenticek prekonat, tak si uvedomis, ze v jedny zasadni veci mam proste pravdu: nic z toho, cos zatim vyblabolil, proste neni zasadni vyhoda, ktera by k xJazyku nekoho prilakala. Bud proto, ze to jsou neobhajitelny pitomosti od kterejch po par tejdnech mlzeni sam ustoupis ("lidi si budou cist generovanej kod a ucit se z nej"), nebo marginalnosti ("misto funkce na vytvareni threadu mam keyword") nebo veci tak extremne specificky, ze teoretickou hodnotu maji mozna pro dva lidi na svete (viz ten seznam podminek, co jsem nedavno psal). Jestli si chces napsat jazyk jen tak pro zabavu, tak je to samozrejme jedno. Ale zjevne miris na jazyk, kterej by byl uzitecnej pro vic lidi. Takze by ses mel fakt zamyslet nad tim, jaky opravdu uzitecny vlastnosti bude mit pro pripadny uzivatele.

    Ale jasne, kdyz z toho nic nebude a jde jen o to si zafantazirovat, jakou "frajerinu" bys napsal, kdyby te udajny trollove neotravovali, tak je to vlastne jedno 8)))
    XCHAOS
    XCHAOS --- ---
    REDGUY: v podstatě, ano, napsat "go" následované indentovaným blokem mi přijde stručnější, než napsat "pthread_create". Které si fakt nehlídá, kolik vláken si už spustil, atd.

    a už mi fakt neunavuj...
    REDGUY
    REDGUY --- ---
    XCHAOS: se dá předpokládat, že by zaujal část programotorů, co ještě občas v C programují, aby místo vývoje kódu přímo v C použili tento vygenerovaný mezikód, resp. psali přímo v "xjazyku" - no urcite. "Mam leta zkusenosti s C, spoustu knihoven, nastroju a hotovyho kodu. Hmmm... uz vim. Vsechno to zahodim a misto toho se naucim zbastlenej xJazyk, kterej nema debugger, nema knihovny, nema nastroje, nikdo ho neumi takze mi neporadi, stejne preklada do C, ale hura, umi "automaticky paralelizovat zpracovani kontejneru", protoze napsat rucne to pthread_create je pro me neprekonatelnej problem. Anebo, jako alternativu k prechodu na xJazyk, se muzu bodat rezarvym sroubovakem do oka, coz mozna bude trochu prijemnejsi. Dejte mi jeste chvili, rozmyslim se" . Jo, urcite, "predpokladat" se to da 8)))

    Momentálně mám popravdě asi jiné starosti. Takze z toho nic nebude. As expected, jen svalnaty recicky. Procs to nerekl hned? 8)))
    XCHAOS
    XCHAOS --- ---
    REDGUY: no dobře, z téhle věty jsem ochoten slevit.

    fakticky, pokud se mi ten nástroj podaří vymyslet, aby nebyl jen hračka, tak se dá předpokládat, že by zaujal část programotorů, co ještě občas v C programují, aby místo vývoje kódu přímo v C použili tento vygenerovaný mezikód, resp. psali přímo v "xjazyku". (počátky C++ taky směřovaly ke generování C mezikódu, pokud vím)

    (podotýkám, že čistě teoretická možnost, že by se s generátoru mezikódu stal časem plnohodnotný kompiler, generující assembler, samozřejmě existuje... pouze bych takový projekt nebyl schopen realizovat já... ale měl by na to rozhodně našlápnuto líp, než jazyky, které mají pouze interpretery...)

    Momentálně mám popravdě asi jiné starosti. Ale pochopitelně každý asi má nějaký wishlist typu "co bych asi naprogramoval, kdyby ch měl čas a chuť"... nebo nemá?
    REDGUY
    REDGUY --- ---
    XCHAOS: Jen teda abych ukoncil tvoje trapeni: konkretne mi jde o tuhle tvoji poznamku: programátoři, co ovládají C a bude se jim líbit, že nový nástroj generuje mezikód, který je pro ně srozumitelný a ze kterého třeba můžou čerpat inspiraci pro svoje vlastní aplikace v C . Jaka kategorie programatoru v C a za jakych okolnosti by podle tebe chtela cist nejaky generovany kod a "cerpat z nej inspiraci"? Obvzvlast pokud ten kod je, jak rikas, generovanej pomoci "jednoradkovejch templat"?
    REDGUY
    REDGUY --- ---
    XCHAOS: To neni vysvetleni proc by nekdo cetl generovanej kod, to je vysvetleni proc by nekdo cetl zdrojaky templatu. A neni to zadna specificka vyhoda xJazyka, protoze cist a modifikovat zdrojaky muzes u kazdyho open-source interpretru/prekladace.

    Takze, dalsi pokus?
    XCHAOS
    XCHAOS --- ---
    REDGUY: "svým způsobem"? ty už fakt nevíš coby :-)

    obecně - nejen ty, ale podíval by se na to kdokoliv, kdo by měl pocit, že on to dokáže udělat líp. A vyhodili by z templatů moje templaty pro mezikód a vložily tam lepší (v čemž spočívá síla open source, protože já bych pak měl k dispozici lepší nástroj, než byl můj původní :-)
    REDGUY
    REDGUY --- ---
    XCHAOS: Haha. Dalsi humor, kterej vubec, ale vubec neni jen dalsi vykrucovani a mlzeni 8) I kdyz, svym zpusobem to na otazku odpovida. Takze diky 8))
    XCHAOS
    XCHAOS --- ---
    REDGUY: ty :-) budeš mi chtít dokázat, že ten mezikód generuju blbě a že by ho šlo udělat líp,
    REDGUY
    REDGUY --- ---
    XCHAOS: A zase: to neni odpoved na otazku. To je zase mlzeni, vykrucovani a odvadeni debaty od tematu (plus blabol jako bonus). Neptam se na to, co je podle tebe "vyzva". Psal jsi, ze lidi se budou koukat na ten generovanej kod a neco se z neho ucit. Kdo je podle tebe takovej typickej clovek, kterej by tohle delal a proc?
    XCHAOS
    XCHAOS --- ---
    REDGUY: nic moc esoterickýho... jako use-case jsem uvedl intuitivní podobu iterace přes prvky nějakého seznamu s paralelizací... vzhledem k tomu, že dnes programátor dostane seznam jak jako tak setříděnej, jak si řekne, tak daleko častější výzva je dnes využít všechna dostupná jádra CPU celkem na jakoukoliv blbost, bez velkého přemýšlení...

    ...i když i ten quicksort přes víc threadů je svým způsobem zajímavá výzva...
    Time sharing based multithreading approach to Quicksort - IEEE Conference Publication
    https://ieeexplore.ieee.org/abstract/document/7977314
    REDGUY
    REDGUY --- ---
    XCHAOS: Jakmile jako argument použiješ BUAHAHAHAHAHAHAHAHAHAHAHAHA, tak je vidět, že se diskuze blíží ke konci a ban se neodvratně blíží. - pochopitelne. Protoze pokud jsi klesl tak hluboko, ze za "argument" povazujes i "kdyz nemam zadny knihovny a tooly, je to vlastne dobre, protoze v nich nemuzou bejt bugy", tak jednak me proste nezbyva, nez se tvoji idiocii smat a druhak ty jsi zjevne v tak tezky argumentacni nouzi, ze skutecne nezbyva nez ten ban. Nebo trapne mlceni, tak jako v pripade [ REDGUY @ ANSI C/C99 (specifikace), GNU C (gcc, glibc), Tiny C (tcc) a POSIX - ne nutně C++,g++,libstdc++ nebo Win32 API ] . A ostatne, na [ REDGUY @ ANSI C/C99 (specifikace), GNU C (gcc, glibc), Tiny C (tcc) a POSIX - ne nutně C++,g++,libstdc++ nebo Win32 API ] jsi vlastne taky neodpovedel, misto toho jsi zacal blabolit o Wordpressu 8)))
    XCHAOS
    XCHAOS --- ---
    REDGUY: tenhle typ útoků fakt nemám rád. Jakmile jako argument použiješ BUAHAHAHAHAHAHAHAHAHAHAHAHA, tak je vidět, že se diskuze blíží ke konci a ban se neodvratně blíží.

    Každopádně, kdyby ses místo věčného trollingu obeznámil s mým konceptem "agile security by obscurity", tak... :-)
    REDGUY
    REDGUY --- ---
    XCHAOS: XCHAOS: že něco chci "vědomě omezovat" (teda pokud se nepletu) ach boze. Citoval jsem to jednou, ocituju znova:

    je to spíš zacílené na původní vývoj. třeba i jen hračkového kódu. nic velkého.
    Já uvažoval o něčem jednodušším, bližším skriptovacím jazykům, po kterých dnes sáhne většina vývojářů, když se rozhodnout napsat jen něco malého


    Doslova a do pismene pises "jen hrackoveho kodu, nic velkeho, jen neco maleho". To mi prijde jako zcela jasny vedomy omezeni. Tak bych rad, abys to vysvetlil. Jak vypada programovaci jazyk na "vyvoj neceho maleho"? A v cem se lisi od jazyka "na vyvoj neceho velkeho"?

    jakmile množství dostupných knihoven a nástrojů v rámci prostředí narůstá, tak je jen otázkou času, než zrecykluješ něco, v čem jsou neznámé chyby nebo díry - takze tvuj pristup k bezpecnosti je "nabidnu jen minimum knihoven a nastroju, takze bude malo veci, ve kterejch by mohli bejt bugy"? BUAHAHAHAHAHAHAHAHAHAHAHAHA. Idiot.

    možnost kdykoliv se překlopit na jinou platformu pak může zajímavá v případě, že se v některé z cílových platforem např. objeví nečekaná fatální bezpečnostní díra - ty budeš mít pořád svůj zdroják, ale prostě jen z fleku přejdeš na jinou provozní platformu. - Ze ty sis zase nevzal prasky?
    XCHAOS
    XCHAOS --- ---
    REDGUY: nikde jsem nepsal, že něco chci "vědomě omezovat" (teda pokud se nepletu). pouze v něčem jednoduchým, co začínáš od nuly, toho na začátku asi spousta nebude.

    popravdě - jaká míra komplexity nějaké platformy je přesně ještě žádoucí, to je myslím DOST zajímavá otázka. jakmile množství dostupných knihoven a nástrojů v rámci prostředí narůstá, tak je jen otázkou času, než zrecykluješ něco, v čem jsou neznámé chyby nebo díry, nebo co už není podporované a další upgrade celého prostředí to nepřežije, apod.

    a nemyslím si, že si vymýšlím úplně abstraktní hrozbu: vezmi si jen ekosystém WordPressu + jeho pluginů - to je prý z hlediska bezpečnosti naprostá katastrofa...

    chci říct, že obscureware přiměřeně omezeného rozsahu může mít výhodu i v tom, že si uživatelská základna udrží určitou kontrolu nad tím, co se v ekosystému vlastně děje.

    možnost kdykoliv se překlopit na jinou platformu pak může zajímavá v případě, že se v některé z cílových platforem např. objeví nečekaná fatální bezpečnostní díra - ty budeš mít pořád svůj zdroják, ale prostě jen z fleku přejdeš na jinou provozní platformu.

    představ si to jako v klasické počítačové hře pro 8bity, když Manic Miner skáče po bludišti a některá políčka jsou bažina :-) "agilní security" by v tomhle pojetí mohla znamenat rychlou a neočekávanou migraci produkčního kódu mezi různými produkčními platformami :-)
    XCHAOS
    XCHAOS --- ---
    REDGUY: use-case? xChaos je zvědavej a chce si hrát. (Pro mě je to dostatečný důvod)

    Cílová skupina: lidi, co si uměj otevřít v Linuxu shell a zkoušet si z něj instalovat různý věci + lidi, kteří jsou v roce 2018 ochotni editovat plain-text soubor bez syntax highlightingu (nevím, jestli někdo takovej existuje, a než se objeví pro můj jazyk nějaký zviditelňovátko syntaxe, tak to potrvá.. i pokud předpokládám, že to bude hodně podobný pythonu). stručně řečeno - cílová skupina jsou ostatní hračičkové.
    REDGUY
    REDGUY --- ---
    XCHAOS: Haha, jo, jasne, dobrej humor. Ale jinak teda fakt dobra prace jak odvest rec od nepohodlnejch otazek jako [ REDGUY @ ANSI C/C99 (specifikace), GNU C (gcc, glibc), Tiny C (tcc) a POSIX - ne nutně C++,g++,libstdc++ nebo Win32 API ] nebo [ REDGUY @ ANSI C/C99 (specifikace), GNU C (gcc, glibc), Tiny C (tcc) a POSIX - ne nutně C++,g++,libstdc++ nebo Win32 API ] . Uplne se ti je podarilo odscrollovat pryc. Jen stacilo chvili blabolit o historii C a bylo to 8)))
    REDGUY
    REDGUY --- ---
    XCHAOS: pokud to bylo zaměření systému, který byl do C přepsán, tak to bylo i zaměření C - nemůžu si pomoct. - ne. "Zpracovavat text" a "Psat nastroje na zpracovani textu" jsou dve rozdilne veci.

    nebo to lze formulovat jako "C bylo vymyšleno na implementaci operačního systému zaměřeného na práci s textem" - kdybys to tak formuloval, nebyl by to blabol.

    pokud se nějaké trvzení nelíbí id REDGUY, tak prostě neexistuje argumentační linie, která mohla dokázat, že to tvrzení je správné, pravdivé, whatever. - protoze "nelibi se Redguyovi" treba v tomhle pripade znamenalo "Redguy vi ze to neni pravda, protoze o historii C a Unixu neco vi a zna historicka fakta". A ano, argumentacni linie ktera by ty objektivni historicky fakta, dokazany treba wikipedii nebo knihou, kterou napsali sami autori C, vyvratila, tak tak opravdu neexistuje. Na tom fakt neni nic divneho 8)))

    jakékoliv tvrzení id XCHAOS je předem podezřelé, vhledem k jiným tvrzením, které id XCHAOS mělo a nebo ještě mít bude. - s ohledem na to, ze XChaos ma dlouho tradici lhani, vymysleni, prekrucovani, manipulovani, mlzeni a blaboleni, tak ano, kazde tvrzeni XChaose je a priori podezrelejsi a zaslouzi si dukladnejsi kontrolu, nez tvrzeni nahodneho cloveka. To, ze ses vyse zminenim lhanim, vymyslenim atd pripravil o duveru, kterou automaticky kazdemu by default davam, je ciste jen tvoje chyba.
    Kliknutím sem můžete změnit nastavení reklam