ChanServ changed the topic of #rust-embedded to: Welcome to the Rust Embedded IRC channel! Bridged to #rust-embedded:matrix.org and logged at https://libera.irclog.whitequark.org/rust-embedded, code of conduct at https://www.rust-lang.org/conduct.html
dav1d has quit [Server closed connection]
dav1d has joined #rust-embedded
Luc[m]1 has joined #rust-embedded
<bartmassey[m]> Luc: Windows, Linux or Mac host? Are you sure your host's routing is correct?
xnor has quit [Server closed connection]
xnor has joined #rust-embedded
<ManuelHatzl[m]> <t-moe[m]> "Thanks. Subscribed...." <- I am currently writing my master thesis about requirements tracing and coverage between requirements and code.
<ManuelHatzl[m]> The test runner is part of it, but not the main focus. So later this year is definitely fine.
<JamesMunns[m]> <ManuelHatzl[m]> "I am currently writing my master..." <- > <@mhatzl:matrix.org> I am currently writing my master thesis about requirements tracing and coverage between requirements and code.
<JamesMunns[m]> > The test runner is part of it, but not the main focus. So later this year is definitely fine.
<JamesMunns[m]> This sounds very interesting! I have experience with this in safety critical for C (I worked in Avionics, where what you describe is part of the mandatory "traceability matrix", I'd be more than happy to chat about it, and I'm generally interested in what you're planning for Rust!
PedroFerreira[m] has quit [Quit: Idle timeout reached: 172800s]
kenny has quit [Ping timeout: 264 seconds]
kenny has joined #rust-embedded
ivmarkov[m] has quit [Quit: Idle timeout reached: 172800s]
Makarov has joined #rust-embedded
Makarov91 has joined #rust-embedded
Makarov has quit [Ping timeout: 250 seconds]
Makarov9 has joined #rust-embedded
Makarov91 has quit [Ping timeout: 250 seconds]
andar1an[m] has joined #rust-embedded
<andar1an[m]> Does anyone know of any job posting sites that may relate to rust embedded? Or does anyone know of any companies hiring for rust work especially if related to risc-v?
<JamesMunns[m]> https://www.theembeddedrustacean.com/ articles tend to mention some
<JamesMunns[m]> I also run the rustembedded twitter, so general reminder:
<JamesMunns[m]> * if you are a person looking to get hired, and can post publicly on twitter about it, tag @rustembedded and I'll retweet it (don't spam, but like 1/mo is cool)
<JamesMunns[m]> * if you are a company posting a role, tweet about it and tag @rustembedded, and I'll retweet it. The rule is generally that you must have a public job posting, and it must mention Rust (even as a "nice to have") and be embedded-related. Similarly, 1/mo plz
<JamesMunns[m]> We haven't made a rust embedded bluesky, but I'm active there, if you tag me personally (@jamesmunns.com), I'll repost it personally with generally the same rules.
Makarov9 has quit [Ping timeout: 250 seconds]
diondokter[m] has quit [Server closed connection]
diondokter[m] has joined #rust-embedded
<Luc[m]1> <bartmassey[m]> "Luc: Windows, Linux or Mac host?..." <- Linux host, will check with other device
<Luc[m]1> Hmm... good call! it works on iOS... not sure why not on my Arch machine but 🤷
<birdistheword99[> <JamesMunns[m]> "I also run the rustembedded..." <- > <@jamesmunns:beeper.com> I also run the rustembedded twitter, so general reminder:... (full message at <https://catircservices.org/_matrix/media/v3/download/catircservices.org/cEYMVlxqERTCgMhLSSFayUVE>)
<thejpster[m]> Very few companies are talking about embedded rust because they all consider it a secret super-power they've unlocked and none of them want their competitors to know.
<thejpster[m]> I have taught Rust to many companies you know, and embedded rust to several, and I can tell you about none of them beyond what you'll see at www.ferrous-systems.com.
<thejpster[m]> I do offer a management-focussed seminar called "Why Rust?", if it would help hear some evangalism from a "professional" rather than an internal team member. That has worked well for a few teams. You can find out about that on my website.
<Flix[m]> thejpster[m]: Is that sarcasm? I'm not sure.
<JamesMunns[m]> Yep, have done both those things, both at Ferrous, as well as at my own company, OneVariable. I agree 100% with what thejpster is saying
<thejpster[m]> No, I'm quite serious.
<thejpster[m]> You should have see the companies we had at the "Embedded Rust" round-table at RustNL's "Industry" track
<Flix[m]> I had a good time writing my amateur firmware with Rust, but I read online that pros prefer C currently because that's what is supported by constructors.
<JamesMunns[m]> Yep, I don't know if they necessarily consider it as a "super power", but I would certainly confirm:
<JamesMunns[m]> * most embedded companies don't talk about what they do, so everyone assumes EVERYONE is doing the "average", which is C today
<JamesMunns[m]> * some companies are being quiet about it as they worry it might be considered "so bleeding edge", because the industry isn't talking about it (see point one)
<Flix[m]> s/constructors/manufacturers/
<JamesMunns[m]> Flix[m]: Also, don't assume that random forum posters are always so informed: lots of people assume "what we do at my company" is what EVERYONE does.
<JamesMunns[m]> Feel free not to believe me at my word either! But as JP mentioned: there ARE folks showing up, in person, and Ferrous, TweedeGolf, and OneVariable have not been short of embedded work over the last years :)
<Flix[m]> No, that's a good point, they can only talk about their own experience, and I do believe you
<thejpster[m]> I wouldn't be selling an ISO 26262 and IEC 61508 qualified toolchain if I had no customers.
<birdistheword99[> * I have the opposite problem, I have just completed a 4 week assessment of embedded rust at my work and have kind of fallen in love with it, mainly because unlike C, I spent more time thinking about the logic of my program rather than 'How' its implemented and whether each design decision is safe code. The... (full message at <https://catircservices.org/_matrix/media/v3/download/catircservices.org/qcIKCKvPeVTAdnICdPAnLttY>)
mkj[m] has joined #rust-embedded
<mkj[m]> <birdistheword99[> "> <@jamesmunns:beeper.com> I..." <- > <@birdistheword99:matrix.org> I have the opposite problem, I have just completed a 4 week assessment of embedded rust at my work and have kind of fallen in love with it, mainly because unlike C, I spent more time thinking about the logic of my program rather than 'How' its implemented and... (full message at
<Flix[m]> I should start my own Rust consulting company, when I read you, but not in the embedded world, of course :P
<JamesMunns[m]> mkj[m]: +1 to this: I think starting a smaller, non critical project, for example test tooling or internal tools, in Rust, is a great way to get "low risk" experience for both devs and a company
<mkj[m]> JamesMunns[m]: or event larger critical parts that are drop in. ffi works ewll
<mkj[m]> s/ewll/well/
<JamesMunns[m]> JamesMunns[m]: like, "we need to evaluate 4 new sensors for our next product", do THAT in embedded rust first, instead of "start the next core company project and move 50 devs over in one step"
<birdistheword99[> mkj[m]: I think the the concern is still maintainability. As soon as its written, we then have to always have people on the team that can write rust.
<birdistheword99[> JamesMunns[m]: This is how I started in rust, any test tools I needed I write in rust on my PC just to get exposure, the first couple of applications were hard but it soon became way easier
<JamesMunns[m]> birdistheword99[: yep, "organizational experience using rust" is also as important as "individual developer experience using Rust"!
<mkj[m]> hopefully there will be some number of developers in the company who see "something that's a progression from C" who are keen to try it
<ryan-summers[m]> QUARTIQs firmware is all open sources embedded rust, albeit much smaller company
<birdistheword99[> I actually expected embedded rust to be a lot harder to get up and running with, but I wrote two identical projects in C and rust and spent longer getting the code in Keil-UVision to work than I did with rust!
<birdistheword99[> Huge shoutout to the embedded rust community by the way, I wish I could tag you all but then you'd probably kick me out the room 🤣
JomerDev[m] has quit [Quit: Idle timeout reached: 172800s]
<ryan-summers[m]> Also yeah, the white house directive last year is changing the game. A lot of my medical device clients are now taking rust much more seriously because they see the FDA potentially forcing them to use it soon
<JamesMunns[m]> ryan-summers[m]: yep, most recently:... (full message at <https://catircservices.org/_matrix/media/v3/download/catircservices.org/YxDfeTHSdTrwDNSbqicmWYcm>)
<JamesMunns[m]> it's starting to get to the point where if someone says "we did our current project in Rust", there isn't surprise and shock anymore, even if the people hearing it haven't started using Rust yet, which is a HUGE reduction in friction for adoption, IMO.
jessebraham[m] has joined #rust-embedded
<jessebraham[m]> <thejpster[m]> "Very few companies are talking..." <- I wish they would get more involved and/or be more vocal. Been maintaing HALs for years now and it honestly feels like almost nobody outside of our community of hobbyist cares.
<jessebraham[m]> I would absolutely love to get ANY feedback from people trying to use our stuff in production haha
rolodondo34[m] has joined #rust-embedded
<rolodondo34[m]> f
<JamesMunns[m]> Oh wow, Mbed OS just got EoL'd: https://os.mbed.com/blog/entry/Important-Update-on-Mbed/
AlexandrosLiarok has joined #rust-embedded
<AlexandrosLiarok> ^ Working for a well known boutique analog synthesizer company that has been going on for more than a decade. The next project is one of the largest so far and it will be all in Rust. Basically taking current domain knowledge and porting it, it is also a good opportunity to clean up various utilities. The greatest thing for me is the tooling after having to maintain the complete C++ Conan infrastructure, packaging and
<AlexandrosLiarok> toolchains. Then you have the awesome static analysis, functional features and pre- monomorphization generics checking . Thankfully we are a small team that practices modern C++ so training for Rust is relatively easy but I could see this being hard for larger companies.
<rolodondo34[m]> what's the opinion on mimalloc implementation in Rust
<rolodondo34[m]> I'm looking for a malloc implementation that is current and has good security
<JamesMunns[m]> rolodondo34 specifically for embedded/microcontrollers?
<AlexandrosLiarok> Main pain point is getting away from C++ patterns that don't apply well to rust like intrusive lists and construction-based dependency injection, weak const-generics support so companies will need to do some RnD for this stuff, it is not always easy to fix.
<AlexandrosLiarok> So I guess common rust issues not relevant to embedded specifically.
TomB[m] has joined #rust-embedded
<TomB[m]> <AlexandrosLiarok> "^ Working for a well known..." <- makes sense unless you need xtensa dsp stuff
<TomB[m]> <AlexandrosLiarok> "Main pain point is getting..." <- Intrusive lists could work with move like semantics?
<AlexandrosLiarok> Not intrusive lists per se but intrusive list-based event handling. You need to pin everything and manage xor mutability rules which hurts ergonomics.
<JamesMunns[m]> Yeah, you can definitely do intrusive list stuff, cordyceps is a good library too. Agreed it makes ergonomics rules a lot worse tho.
<TomB[m]> not sure what you mean by that, lilos has it specifically for a timer queue/wait queue it appears (very RTOS like) which I mean... is event handling
<JamesMunns[m]> Though usually, at least with async, you can handle that "one layer up", for example, `maitake-sync` has a WaitQueue, which allows multiple async tasks to await a single waker. It uses intrusive linked lists to do this, but it works really well for queues or lists of tasks that are all waiting for a single notification.
richardeoin has quit [Server closed connection]
richardeoin has joined #rust-embedded
<vollbrecht[m]> getting more movement in [rust itself](https://rust-lang.github.io/rust-project-goals/2024h2/rfl_stable.html) about blocking/unstable stuff that is related to "Rust for Linux" will also benefit the view onto using Rust. So for company's that are deep into C and seeing that it works even directly in the Linux kernal can be convincing.
<vollbrecht[m]> next 6 month at least will be interesting here ;D
<AlexandrosLiarok> <TomB[m]> "not sure what you mean by that..." <- Think general observers. In older firmware, subsystems would be able to react to main domain state parameter changes by registering intrusive list handles to the parameters which would act on shared state. Of course other subsystem methods could access this state as well. This worked fine in principle because it was all single threaded but it is awkward to directly port to
<AlexandrosLiarok> rust.
<AlexandrosLiarok> * Think general observers. In older firmware, subsystems would be able to react to main domain state parameter changes by registering intrusive list handles to the parameters which would act on the subsystem's state. Of course other subsystem methods could access this state as well. This worked fine in principle because it was all single threaded but it is awkward to directly port to rust.
embassy-learner[ has quit [Quit: Idle timeout reached: 172800s]
<JamesMunns[m]> <AlexandrosLiarok> "Think general observers. In..." <- To be fair, there are definitely patterns that fit with this! Tokio's broadcast channels, and I think embassy's pubsub channels? This largely comes down to:
<JamesMunns[m]> * registering wakers (typically intrusively)
<JamesMunns[m]> * providing mutex-like behavior (in embassy-sync, you can use a Noop or ThreadMode mutex for this, in some cases)
<JamesMunns[m]> On a different topic, I've started the conversation on Zulip for the long term sunsetting of Working Groups: https://rust-lang.zulipchat.com/#narrow/stream/392734-council/topic/Sunsetting.20of.20Working.20Groups/near/450520420
<JamesMunns[m]> I raised this in the wg-embedded meeting [a bit back](https://github.com/rust-embedded/wg/discussions/769#discussioncomment-9874340), and wanted to make folks aware. Please feel free to chime in on Zulip, I'll plan to add this to the next meeting's agenda as well.
inara has quit [Quit: Leaving]
inara has joined #rust-embedded
ni has quit [Server closed connection]
ni has joined #rust-embedded
<andar1an[m]> <JamesMunns[m]> "https://www.theembeddedrustacean..." <- This domain rocks haha
<andar1an[m]> Is there going to be embedded and linux talks at this years rustconf? Need to go look at schedule again
<andar1an[m]> Looks like there will be, certai. For linux and likely part of some other talks to do with robotics, satellites, etc.
<andar1an[m]> * Looks like there will be - certain for linux - likely part of some other talks to do with robotics, satellites, etc.
<andar1an[m]> * Looks like there will be - certain for linux - likely part of some other talks to do with robotics, satellites, etc for embedded
GenTooMan has quit [Remote host closed the connection]
GenTooMan has joined #rust-embedded
<andar1an[m]> Actually, certain for embedded and wasm too! Score
ithinuel[m] has joined #rust-embedded
<ithinuel[m]> <thejpster[m]> "You may be on an M0 which doesn..." <- Soooo, Once again, @ithinuel is a dum-dum.
<ithinuel[m]> Enabling `critical-section` on portable-atomic in the workspace AND adding this dependency in the rp-pico crate did the trick, 👍️
<ithinuel[m]> I’ll be testing with the right embedded-hal-bus version now.
<ithinuel[m]> ithinuel[m]: Unsurprisingly, I get the very same results 🙂
Foxyloxy_ has quit [Quit: Textual IRC Client: www.textualapp.com]
Foxyloxy has joined #rust-embedded
Lumpio- has quit [Server closed connection]
Lumpio- has joined #rust-embedded
<therealprof[m]> <JamesMunns[m]> "Oh wow, Mbed OS just got EoL'd..." <- No surprise really. The lack of updates for years was telling...
geky[m] has quit [Quit: Idle timeout reached: 172800s]