MP3JOSS

Intrusive lists for fun and profit

Intrusive lists for fun and profit

Choose Download Format

Download MP3 Download MP4

Details

TitleIntrusive lists for fun and profit
AuthorSelf-Directed Research
Duration58:43
File FormatMP3 / MP4
Original URL https://youtube.com/watch?v=ct10kgmcFmE

Description

*(on embedded)*
Sure, it's unsafe, but it's not like, UNSAFE unsafe

This episode is sponsored by Depot https://depot.dev/?utm_source=sdrpodcast&utm_medium=podcast&utm_campaign=sdr_podcast_may2025: the build acceleration platform that's on a mission to make all builds near instant.

[00:00:00] Start
[00:01:26] Intrusive lists for fun and profit
[00:03:11] "intrusive" linked lists
[00:05:04] but linked lists are bad, right?
[00:13:27] can't have a vec if you don't have alloc
[00:17:20] so how do you have a "variable" quantity w/o vec?
[00:27:33] maybe linked lists aren't so bad?
[00:34:29] I made a crate for this: PinList
[00:42:09] since as long as it's on the list, it exists...
[00:47:37] ergot: embedded networking library
[00:57:39] Sponsor

- EuroRust https://eurorust.eu/
- "What are you syncing about?" https://sdr-podcast.com/episodes/syncing/
- garbage collection 'GC' https://en.wikipedia.org/wiki/Garbage_collection_(computer_science), Rust GC notes https://github.com/graydon/rust-prehistory/blob/700d6a89895f611b222d0319f9c5da94105f74ee/src/boot/me/transutil.ml#L4-L56, Rust Blog 2015 https://blog.rust-lang.org/2015/05/11/traits/, The History of Rust talk https://www.youtube.com/watch?v=79PSagCD_AY&t=24s
- More Pre-1.0: Actor Model https://users.rust-lang.org/t/what-are-the-chances-to-bake-actor-model-into-compiler/24927/4, removing Green Threads https://github.com/rust-lang/rfcs/blob/master/text/0230-remove-runtime.md, The Rust That Could Have Been talk https://www.youtube.com/watch?v=olbTX95hdbg
- 'SRAM' https://en.wikipedia.org/wiki/Static_random-access_memory & 'DRAM' https://en.wikipedia.org/wiki/Dynamic_random-access_memory, CPU cache levels https://en.wikipedia.org/wiki/CPU_cache#MULTILEVEL, 'DDR' memory https://en.wikipedia.org/wiki/DDR_SDRAM, 'LPDDR' memory https://en.wikipedia.org/wiki/LPDDR
- Optimization Settings https://doc.rust-lang.org/cargo/reference/profiles.html#opt-level
- 'DMA' https://en.wikipedia.org/wiki/Direct_memory_access
- "Learn Rust With Entirely Too Many Linked Lists https://rust-unofficial.github.io/too-many-lists/ by Aria Desires / @Gankra https://github.com/Gankra
- Mumble mumble... https://rust-unofficial.github.io/too-many-lists/#mumble-mumble-kernel-embedded-something-something-intrusive
- Miri https://github.com/rust-lang/miri. 1st commit of too many linked book https://github.com/rust-unofficial/too-many-lists/commit/b9975488a096aa5a862ee96cb6cb9c9a4e928948 in 2015, 1st commit to miri https://github.com/rust-lang/miri/commit/cf49d6b080bb685304c63379a3e101dc7df4ab14
- tinyvec https://docs.rs/tinyvec/latest/tinyvec/ and heapless https://docs.rs/heapless/latest/heapless/
- itch.io app https://itch.io/app
- Red Zones https://en.wikipedia.org/wiki/Red_zone_computing
- Endianness https://en.wikipedia.org/wiki/Endianness, MMU https://en.wikipedia.org/wiki/Memory_management_unit
- 'MPU' https://en.wikipedia.org/wiki/Memory_protection_unit
- `MSPLIM` and `PSPLIM` https://developer.arm.com/documentation/107656/0101/Registers/Special-purpose-registers/CONTROL-register/Stack-pointer-limit-registers
- `flip-link` https://github.com/knurling-rs/flip-link from Ferrous Systems https://ferrous-systems.com/
- `/dev/mem` https://man7.org/linux/man-pages/man4/mem.4.html
- `axum` https://github.com/tokio-rs/axum, `tower` https://github.com/tower-rs/tower, "Box Dyn Trait" https://doc.rust-lang.org/rust-by-example/trait/dyn.html
- Hyper in "The HTTP crash course nobody asked for" https://fasterthanli.me/articles/the-http-crash-course-nobody-asked-for, `dyn` https://doc.rust-lang.org/rust-by-example/trait/dyn.html
- `RawWaker` https://doc.rust-lang.org/stable/std/task/struct.RawWaker.html and `RawWakerVTable` https://doc.rust-lang.org/stable/std/task/struct.RawWakerVTable.html
- Function `std::mem::forget` https://doc.rust-lang.org/std/mem/fn.forget.html
- the `Pin` type https://doc.rust-lang.org/stable/std/pin/struct.Pin.html & the `pin` module https://doc.rust-lang.org/stable/std/pin/index.html, `Box` https://doc.rust-lang.org/std/boxed/struct.Box.html
- "Pin and suffering" https://fasterthanli.me/articles/pin-and-suffering
- `boats`/`withoutboats` https://without.boats/
- Dmitry Vyukov https://www.1024cores.net/home lockfree & waitfree https://www.1024cores.net/home/lock-free-algorithms/introduction
- One Direction https://www.youtube.com/watch?v=QJO3ROT-A4E
- Pinlist https://docs.rs/pinlist/latest/pinlist/
- Deadlock https://en.wikipedia.org/wiki/Deadlock_(computer_science), `with_lock` interface https://docs.rs/mutex/latest/mutex/struct.BlockingMutex.html#method.with_lock
- "How old are you?" https://www.youtube.com/shorts/DYC9mg029Zs
- `cfg-noodle` https://lib.rs/crates/cfg-noodle
- `ergot` https://docs.rs/ergot/latest/ergot/
- Eliza Weisman https://www.elizas.website/, cordyceps crate https://lib.rs/crates/cordyceps
- Mutex crate https://lib.rs/crates/mutex, 'CBOR' https://en.wikipedia.org/wiki/CBOR, CBOR library https://docs.rs/minicbor/latest/minicbor/

🎧 Just For You

🎵 Happy - Pharrell Williams 🎵 Golden - Huntr/X, Ejae, Audrey Nuna, Rei… 🎵 Love The Way You Lie - Eminem Feat… 🎵 Titanium - David Guetta Feat. Sia 🎵 Dont Stop Believin - Journey 🎵 All The Way - Bigxthaplug Feat. Bailey… 🎵 Love All Night - Amo & Aymen 🎵 The Giver - Chappell Roan 🎵 Golden - Huntr/X 🎵 Party Rock Anthem - Lmfao Feat. Lauren… 🎵 Born Again Freestyle - Samba Jean-Baptiste 🎵 Thinking Out Loud - Ed Sheeran