• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    SPIRALIRust - Programovací jazyk
    VELDRANE
    VELDRANE --- ---
    SHINING_KATE: Pro me jako systemaka bude zajimave sledovat, zda se Rust etabluje jako linux kernel language nebo ne. Koukal sem na prvni vlastovku v podobe prepsaneho driveru pro e1000 a vypada to luxusne hlavne co se citelnosti tyka citelnosti kodu a jeho pochopeni:

    GitHub - fujita/rust-e1000
    https://github.com/fujita/rust-e1000

    Na druhou stranu i kdyz ten jazyk je fakt super a vylozene me bavi zkoumat vsechna jeho zakouti (btw Rust book je uplne bozi a nema smysl kupovat predrazeny knizky), obavam se, ze ta komplexita spoustu lidi proste odradi. Prijde mi, ze spousta uz vcelku advanced veci je spis “must have”, aby clovek v Rustu moh vubec nejak pracovat. Mozna je muj pohled zkreslenej tim, ze zkratka nejsem kovanej programator (i kdyz me to vlastne ted zivi a spis se povazuju za sys admina.

    Co mam na mysli konkretne ? Hlavne zaziti typovyho sytemu, generik a traitu, protoze bez toho je imho clovek casto dost ztracenej kdyz chce pouzit nejakou komplexnejsi knihovnu, framework apod. viz:

    How to read complicated Rust types
    https://youtu.be/uh9i3be2wIE
    SHINING_KATE
    SHINING_KATE --- ---
    Ugh, úplně jsem zapomněla zmínit https://eurorust.eu/
    Konference to była fakt dobrá, zvlášť na první ročník. Spousta přednášek byla na mě až trochu moc basic, ale i tam bylo příjemné porovnat best practices s ostatními. Přednáška o governingu Rust projektu byla super, byla tam i panelová debata se zástupci několika firem, mimo jiné Ferrous Systems a Meta.

    Zvlášť to co bylo řečeno od Ferrous Systems bylo celkem zajímavé - Ferrous Systems se zabývají mimo jiné školeními a konzultacemi pro další firmy zvažující adopci Rustu, zejména v embedded. Zmínili že pracovní trh může vypadat v téhle době ještě celkem prázdně, ale opak je pravdou. Jen se firmy zatím moc nehrnou do náboru celých nových Rust teamů, ale přeučují stávající. Znělo to, že do budoucna o práci pro Rust devy nouze nebude :) A kdyby někdo zkušenější hledal už teď, Mainmatter, hlavní pořádající organizace, nabírá :) https://gist.github.com/marcoow/0a1ad1a18462e536e655043687a3e024
    SPIKE411
    SPIKE411 --- ---
    GitHub - smallnest/concurrency-programming-via-rust
    https://github.com/smallnest/concurrency-programming-via-rust

    I have a plan to write a book about conncurrency programming via rust. The below is the contents of it and this repo contains all source codes.
    SPIKE411
    SPIKE411 --- ---
    Avoiding allocations in Rust to shrink Wasm modules
    https://nickb.dev/blog/avoiding-allocations-in-rust-to-shrink-wasm-modules/
    SPIKE411
    SPIKE411 --- ---
    Rust programming language outlines plan for updates to style guide | ZDNET
    https://www.zdnet.com/article/rust-programming-language-outlines-plan-for-updates-to-style-guide/
    SPIKE411
    SPIKE411 --- ---
    Rust programming language: Driving innovation in unexpected places | ZDNET
    https://www.zdnet.com/article/programming-languages-why-these-developers-like-rust-in-their-cars/
    SPIKE411
    SPIKE411 --- ---
    Hot Reloading Rust — for Fun and Faster Feedback Cycles | Robert Krahn
    https://robert.kra.hn/posts/hot-reloading-rust/
    SPIKE411
    SPIKE411 --- ---
    PrettySize 0.3 release and a weakness in rust’s type system
    https://neosmart.net/blog/2022/prettysize-0-3-release-and-a-weakness-in-rusts-type-system/
    SPIKE411
    SPIKE411 --- ---
    GitHub brings supply chain security features to the Rust community | The GitHub Blog
    https://github.blog/2022-06-06-github-brings-supply-chain-security-features-to-the-rust-community/
    SPIKE411
    SPIKE411 --- ---
    SPIKE411
    SPIKE411 --- ---
    GitHub - quambene/rust-concurrency: Rust Concurrency Cheat Sheet
    https://github.com/quambene/rust-concurrency
    SPIKE411
    SPIKE411 --- ---
    SPIKE411
    SPIKE411 --- ---
    Rust's Unsafe Pointer Types Need An Overhaul - Faultlore
    https://gankra.github.io/blah/fix-rust-pointers/
    SPIKE411
    SPIKE411 --- ---
    Writing Rust the Elixir way - 18 months later | Lunatic
    https://lunatic.solutions/blog/writing-rust-the-elixir-way-1.5-years-later/
    BONEFLUTE
    BONEFLUTE --- ---
    Ahoj. Rád bych do svého projektu zakomponoval scriptovací jazyk na řešení handlerů a rutin. V repozitářích je několik zajímavých projektů. Konkrétně mě zaujali: https://crates.io/crates/gluon a https://crates.io/crates/dyon
    Máte s tím nějaké praktické zkušenosti? Nebo i s jinými?
    BONEFLUTE
    BONEFLUTE --- ---
    SPIRALI: Moc děkuji za vysvětlení.
    SPIRALI
    SPIRALI --- ---
    BONEFLUTE: Cilem hry je ziskat:
    (1) Uvoleneni zdroju kdyz uz je nikdo nevyuziva
    (2) Zabranit tomu aby nekdo ziskal zaroven read and write referenci nebo dve write.

    Rc resi (1) tim ze ma counter ktery pocita kolik je uzivatelu te reference, kdyz spadne na 0 tak uvolnuje. "get_mut" na Rc pak ve specialnim pripade kdy counter ma hodnotu prave 1 umoznuje vratit &mut referenci, protoze tim ze vime ze jsme jedini kdo ma tuto referenci, tak je to bezpecne i vzhledem k (2). Pokud uz ale Root ma alespon dva Itemy tak Rc counter bude alespon na 2 a tedy get_mut selze (i kdyz nikdo zrovna nema read/write pristup). Proto je tam nutne dat RefCell, ktery slouzi k reseni (2) a zavede dalsi counter, ktery pocita rozpujcovane reference.

    Zkracene: Rc pocita kolik existuje mist na kterych o nas vedi, RefCell pocita kolik mist cte, pripadne jestli do nas nekdo zrovna nezapisuje.
    Oboji idealne hlida prekladac v dobe prekladu, ale nekdy to nejde vyjadrit a je treba tyto kontrolu shodit pomoci Rc/RefCellu do runtimu.
    BONEFLUTE
    BONEFLUTE --- ---
    SPIRALI: Ou! Paráda. A já se s tím tady mořím.
    Díky moc!

    Mohl by jsi mi prosím vysvětlit princip, proč to s get_mut() nefungovalo, a filozofii toho RefCell? Abych to pochopil, co za tím je.
    SPIRALI
    SPIRALI --- ---
    BONEFLUTE: Ah zapomel jsem jeste dodat ze to musis obalit RefCellem, Rc::get_mut ti nebude realne fungovat kdyz se refcounter zvedne.

    Tady je refcell reseni:
    Rust Playground
    https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=30ba12c987875ee3cb76f7b490473098
    BONEFLUTE
    BONEFLUTE --- ---
    Aha :-(

    fn append_to_root(root: &mut Rc<Root>, name: String) {
        Rc::get_mut(root).unwrap().items.push(Item {
    		name: name,
    	});
    }
    Kliknutím sem můžete změnit nastavení reklam