4 ms·
https://ferrous-systems.com/ferrocene/ https://ferrous-systems.com/ferrocene/ This link contains more information. I guess some sectors care about having a co
by insanitybit 3y ago
https://ferrous-systems.com/ferrocene/ https://ferrous-systems.com/ferrocene/
This link contains more information.
I guess some sectors care about having a compiler that conforms to some sort of ISO standards. This doesn't really tell me what that means but I know that I'm not the target.
- MHard 3y agoThe standards mentioned in the article seem to be required to deploy rust code as part of safety critical systems in cars and other industrial applications. This might be a big deal to get rust code into cars but I’m just guessing
- rcxdude 3y agoIt means you can use it in certain safety critical applications, and works as a proof of some extra verification work compared to a non-certified piece of software. Probably most of it you only care about if you need that specific standard for your specific application due to some regulations, but also if you want to have a greater than normal level of confidence that it will work as expected.
- insanitybit 3y agoI get that it means that, I meant it doesn't tell me what getting that certification entails - someone else mentioned it involves things like tests to ensure certain behaviors.
- Xylakant 3y agoI'd like to clarify a little here: There's an ISO certifiation in here - but it's not an ISO standard for the language. Essentially, the ISO 26262 certification mostly verifies that the compiler release process conforms to a certain standard. It does not create an ISO standard for rust, not does it aim to. At part of the certification process we had to write a spec for the rust language, but it is a descriptive spec of how certain aspects of the rust language behave for one specific release of the compiler. The certification builds on this to ensure that tests catch deviations between spec and implementation, known problems are documented etc. So rust as a language is unaffected, as is the rust project. The spec is open source and might be useful to others, you can find it at https://spec.ferrocene.dev/ https://spec.ferrocene.dev/ The target sectors for ISO 26262 and related industrial certification are clearly sectors that require such certification: automotive, medical, etc. Ferrocene itself however, is not only the ISO certified downstream of the rust compiler, it also offers for example long term support and tracking of known issues which the rust project does not provide. This is also important for certain applications that do not strictly require certifications. Disclosure: I'm one of the founders of Ferrous Systems, but I'm only involved in the Ferrocene project on a moderately high level, so forgive minor technical inaccuracies :)
- jeddy3 3y ago> Essentially, the ISO 26262 certification mostly verifies that the compiler release process conforms to a certain standard. It does not create an ISO standard for rust, not does it aim to. Sorry for a stupid question, but what does this mean? Is it only that Rust itself (the language) is no use in a certification, but rather a specific compiler version? I.e. basically leading to the same outcome in the end. Or does this mean to not get the hopes up (right now) for using Rust in a ISO26262 certified project?
- steveklabnik 3y agoNot your parent, and haven't worked directly in these areas, but this is my understanding. "certification" is something that is done to a process that produces a software artifact. So yes, in some sense it is "particular compiler version." The result of certification says "this compiler will do this when given this, and here is how we ensure that that is true, and here's the process for when that's not true, etc etc etc." Users can then use that specific compiler. > I.e. basically leading to the same outcome in the end. The difference is pretty important. Getting this certification does not require that the abstract concept of the Rust language is being specified in any specific way. It does require that a specific inputs to the compiler are described, and because compatibility with upstream Rust is desired, those specific inputs happen to map to inputs to rustc that are identical, but it is important to understand that this can happen completely independently of what the Rust Project decides is best for the language; this is a downstream project. In theory, if the Rust project wanted a specification, starting with some of the work Ferrocene has done would be an option. But the qualification process doesn't require that. > Or does this mean to not get the hopes up (right now) for using Rust in a ISO26262 certified project? The opposite, this means you can use Rust in these places. Even though this work does not specify Rust.
- jeddy3 3y agoThank you for an exhaustive answer! > The difference is pretty important. Getting this certification does not require that the abstract concept of the Rust language is being specified in any specific way. Sorry, I was being vague. I meant the outcome for "us", the users, creating certified software relying on Ferrocene. Totally on board with that there is a huge difference for certifying Ferrocene itself. > The opposite, this means you can use Rust in these places. Even though this work does not specify Rust. Nice, that's what I was hoping for. We are currently in a project creating safety certified software (in C, as are our other code) and are curiously looking at Rust, partly because of this effort.
- andrewl-hn 3y agoUsually, it means that there's a whole lot of paperwork done to say "This specific version of the compiler can run on that specific combination of hardware" with extra things like "if you try to do A, B, or C it will break this or that way, so don't do it". Note that it doesn't have to be a separate version with patches - it may as well be a recent stable release of Rust. But the paperwork has to be created just fro this release. And these standards require a team to spend months and months documenting everything. That's why having it all done by a vendor like Ferrous Systems is attractive: once the work is done adapting it to some other "compiler version + hardware" combination will take a lot less time. There was an audio interview where Ferrous people talked about it https://rustacean-station.org/episode/067-quentin-ochem-florian-gilcher/ https://rustacean-station.org/episode/067-quentin-ochem-flor...
- Xylakant 3y ago> it may as well be a recent stable release of Rust. It essentially is, we're pretty open about this. There's a tiny patchset that's required to enable some guarantees (literally a handful of patches), none of them of interest to the upstream project. Every major change has been contributed upstream. Even the spec that was built as part of the effort is open source.
- kouteiheika 3y ago> There's a tiny patchset that's required to enable some guarantees (literally a handful of patches), none of them of interest to the upstream project. Do you perhaps have a link where we could see those patches? Purely for curiosity's sake.
- Xylakant 3y agoNo, for mostly organizational reasons this lives in a private repo that we can't easily grant access to. I'll take that on my list of things that we should consider, but we're pretty busy right now - so no promises.
- lumisota 3y agoSome nice background reading on these standards here: https://solidsands.com/safety/iso-26262 https://solidsands.com/safety/iso-26262
- markstos 3y agoISO 26262 specifically mentions automotive applications. This seems to a step towards using Rust in critical automotive systems. https://en.wikipedia.org/wiki/ISO_26262 https://en.wikipedia.org/wiki/ISO_26262