abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 12:55 | Nová verze

    Lazygit byl vydán ve verzi 0.42.0. Jedná se o TUI (Text User Interface) nadstavbu nad gitem.

    Ladislav Hagara | Komentářů: 0
    dnes 12:22 | IT novinky

    K open source herní konzole Picopad přibyla (𝕏) vylepšená verze Picopad Pro s větším displejem, lepšími tlačítky a větší baterii. Na YouTube lze zhlédnout přednášku Picopad - open source herní konzole z LinuxDays 2023.

    Ladislav Hagara | Komentářů: 0
    17.5. 13:44 | Nová verze

    Byla vydána (𝕏) nová major verze 17 softwarového nástroje s webovým rozhraním umožňujícího spolupráci na zdrojových kódech GitLab (Wikipedie). Představení nových vlastností i s náhledy a videi v oficiálním oznámení.

    Ladislav Hagara | Komentářů: 0
    17.5. 12:22 | Komunita

    Sovereign Tech Fund, tj. program financování otevřeného softwaru německým ministerstvem hospodářství a ochrany klimatu, podpoří vývoj FFmpeg částkou 157 580 eur. V listopadu loňského roku podpořil GNOME částkou 1 milion eur.

    Ladislav Hagara | Komentářů: 0
    17.5. 01:55 | Komunita

    24. září 2024 budou zveřejněny zdrojové kódy přehrávače Winamp.

    Ladislav Hagara | Komentářů: 12
    16.5. 23:33 | Nová verze

    Google Chrome 125 byl prohlášen za stabilní. Nejnovější stabilní verze 125.0.6422.60 přináší řadu oprav a vylepšení (YouTube). Podrobný přehled v poznámkách k vydání. Opraveno bylo 9 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.

    Ladislav Hagara | Komentářů: 2
    16.5. 21:11 | Nová verze

    Textový editor Neovim byl vydán ve verzi 0.10 (𝕏). Přehled novinek v příspěvku na blogu a v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    16.5. 20:55 | Nová verze

    Byla vydána nová verze 6.3 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Přehled změn v příslušném seznamu. Tor Browser byl povýšen na verzi 13.0.15.

    Ladislav Hagara | Komentářů: 0
    16.5. 13:33 | IT novinky

    Dnes ve 12:00 byla spuštěna první aukce domén .CZ. Zatím největší zájem je o dro.cz, kachnicka.cz, octavie.cz, uvycepu.cz a vnady.cz [𝕏].

    Ladislav Hagara | Komentářů: 10
    16.5. 13:22 | Nová verze

    JackTrip byl vydán ve verzi 2.3.0. Jedná se o multiplatformní open source software umožňující hudebníkům z různých částí světa společné hraní. JackTrip lze instalovat také z Flathubu.

    Ladislav Hagara | Komentářů: 0
    Podle hypotézy Mrtvý Internet mj. tvoří většinu online interakcí boti.
     (78%)
     (5%)
     (9%)
     (8%)
    Celkem 366 hlasů
     Komentářů: 16, poslední 14.5. 11:05
    Rozcestník

    Administrace komentářů

    Jste na stránce určené pro řešení chyb a problémů týkajících se diskusí a komentářů. Můžete zde našim administrátorům reportovat špatně zařazenou či duplicitní diskusi, vulgární či osočující příspěvek a podobně. Děkujeme vám za vaši pomoc, více očí více vidí, společně můžeme udržet vysokou kvalitu AbcLinuxu.cz.

    Příspěvek
    8.7.2019 11:12 hermes | skóre: 6 | blog: Elektro | BA
    Rozbalit Rozbalit vše Re: Vlastný programovací jazyk - tail rekurzia

    Neni to až také jednoduché, skúsim to priblížiť. V mojom jazyku sa takáto funkcia (reprezentujúca cyklus):

    let loop = func i max -> (
        log ("Iteration: " + i)
        if i = max then ()
        else loop (i + 1) max
    )
    
    loop 0 5
    

    skompiluje na takéto AST: AST obrázok

    a z neho potom vygenerujem takýto JS kód:

    (() => {
        const loop = i => max => {
            console.log(`Iteration: ` + i);
            return (
                i === max
                    ? undefined
                    : loop(i + 1)(max)
            );
        };
        return loop(0)(5);
    })()
    
    takže medzi returnom a rekurzívnym volaním sa nachádza ešte vetvenie, ako teda detekujem koncové volanie keď rekurzívne volanie neni úplne na konci? Skúšal som aj on the fly TCO optimalizáciu cez takúto trampoline funkciu:
    function tco(f) {
        var value, active = false, accumulated = []
        return function accumulator() {
            accumulated.push(arguments)
            if (!active) {
                active = true
                while (accumulated.length) value = f.apply(this, accumulated.shift())
                active = false
                return value
            }
        }
    }
    ale tá bohužiaľ nefunguje s curried funkciami (funkcia poskladaná viacerých funkcií - čo argument to vnorená funkcia), ale ajtak riešenie až v run-time sa mi nepáči Takže ešte sa vrártim k pôvodným otázkam: 1. ako detekujem ten tail call. 2. ako ho nahradím Hľadám najjednoduchšie riešenie. Vôbec by mi nevadilo keby sa o TCO postaral nástroj tretej strany. Uvažujem nad tým že prepíšem generátor a nebudem generovať priamo js kód, ale to prevediem do LLVM IL a až LLC sa postará o optimalizáciu (LLVM to podporuje) a (z LLVM sa dá vraj generovať aj JS kód) otázka je ako si LLVM poradí s tými curried funkciami a či dokáže optimalizovať aj tie.

    V tomto formuláři můžete formulovat svou stížnost ohledně příspěvku. Nejprve vyberte typ akce, kterou navrhujete provést s diskusí či příspěvkem. Potom do textového pole napište důvody, proč by měli admini provést vaši žádost, problém nemusí být patrný na první pohled. Odkaz na příspěvek bude přidán automaticky.

    Vaše jméno
    Váš email
    Typ požadavku
    Slovní popis
    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.