23 ms·
Volvo is using Rust for its in-vehicle software
- donw 4y agoThat’s nothing. Chevrolet has built its cars with rust for decades now.
- mherrmann 4y agoAnd there I was, already looking at Wikipedia to come back here and school you that Rust hasn't been around that long. Got it just in time.
- abusaidm 4y ago“ Why Rust is actually good for your car.” That gave me a chuckle. It’s a better title the one in here too
- chrismorgan 4y ago> Um… yeah. Rust is bad. — https://dilbert.com/strip/1997-01-12 https://dilbert.com/strip/1997-01-12 (“buying a car”)
- frozencell 4y ago
- dcz_self 4y agoFunnily enough, about a month ago I gave a presentation about deliberately putting Rust on my bike. https://dcz_self.gitlab.io/posts/jazda_rust/ https://dcz_self.gitlab.io/posts/jazda_rust/ Pictures of the less-desired rust included.
- ta8903 4y agoI was just thinking about how if Rust were a community driven project the top comments on any HN post would be about how "it's terrible marketing for your language meant for industrial applications to be called rust" and "OSS needs to get its shit together."
- tazjin 4y agoMakes sense that one of the most safety focused manufacturers would go for it.
- ElCheapo 4y agoADA has existed for a loooong time
- ChuckNorris89 4y agoAnd the market for available ADA devs is ... <crickets> Even the USAF and defense contractors like Lockheed Martin switched to C++ from ADA for the F-35. ADA is basically dead and buried outside of maintenance for 35+ year old planes, but I doubt those are seeing much active SW development done on them.
- aliqot 4y ago> ADA is basically dead and buried This made me clutch my chest and gasp and I have no idea why
- 29athrowaway 4y agoAnd the results suck
- ChuckNorris89 4y agoProducts can suck regardless of the programing language used.
- 29athrowaway 4y agoThey spent trillions of dollars in the project including millions of dollars of rework. I would rather feed students in school quality food, give them school supplies, and take care of their needs, rather than wasting valuable resources fixing avoidable defects.
- 4y ago
- he0001 4y agoI own a 2021 Volvo and the blinkers doesn’t blink regularly. They may blink fine for a awhile but then stops for a period, and then suddenly all missed blinks blinks in a rapid succession. It’s extremely annoying. There are other bugs, like when you are using the auto pilot where it sometimes may suddenly jerk the wheel even though there is nothing wrong with the road. Scares the shit out of you. That has happened thrice now.
- chinathrow 4y agoWhat does your dealer say? Your car is under warranty, I assume.
- he0001 4y agoThat it’s a bug and should be fixed with a upgrade, but it hasn’t been fixed yet.
- pfortuny 4y agoWow, the jerking also? That is enough for a recall, or should be! If you are in the EU, have you spoken to the consumer ombudsman (or whatever name it has)?
- WHATDOESIT 4y agoThe exact same thing was happening to a Volvo I've driven around 5 years ago (I have never chosen Volvo again since then because of it). I don't think they're going to help now.
- nequo 4y agoIf you’re in the US, report it to the NHTSA: https://www.nhtsa.gov/report-a-safety-problem#index https://www.nhtsa.gov/report-a-safety-problem#index
- tobyhinloopen 4y agoMy dealer just said classics like “we can’t reproduce the issue”, “it’s new software, some bugs still need fixing, we can’t do anything about it”, “weird, we looked at it but couldn’t find anything” and “we changed $something and this should fix $issue” (and it didn’t) I’ve been at the dealer 6 times in 7 months to fix random shit on a brand new car and they managed to fix only two things: the ticking sun roof, and the charge port not opening. (Which is kinda annoying on an EV). Some EV fans like to claim EVs are more reliable because they have less moving parts. These people obviously never owned a computer.
- chimen 4y ago
- lpapez 4y agoYou can literally make that with a one-liner Userscript in your browser.
- quickthrower2 4y agoWould filter out trust, crust, …
- tmtvl 4y agoThat would be frustrating. Unless the matching is made case-sensitive, which would probably be a good idea when trying to filter out a proper name.
- alserio 4y ago> frustrating nice work
- quickthrower2 4y agoassuming people always case things correctly.
- ArchieMaclean 4y ago/([^a-z]|^)rust([^a-z]|$)/i
- lpapez 4y agoWhy? You could just match on word boundaries '\bRust\b' You would still get false positives with that but only regarding actual word semantics (i.e. articles mentioning Rust as oxidation process and not as programming language) but that's the tradeoff I guess
- unrealhoang 4y ago
- amelius 4y agoDoes it run on a GPU now?
- Onewildgamer 4y agoI love Volvo cars. I hope they have enough investment in support and engineering, because Rust isn't an easy language to pick up. I wouldn't want to escalate minor software problems through the management that needs engineering team's response and I'm waiting because there is not enough people to support across continents.
- pornel 4y agoPeople keep asking "why should I learn Rust if there aren't any (non-blockchain) Rust jobs?". Here you have it. They're creating Rust jobs.
- Onewildgamer 4y agoI welcome new Rust jobs, I myself have attempted to learn (and fail). But having it in a customer facing and a software embedded in customer's car is not what I expected. Maybe starting in a backend service that they can monitor and deploy changes in events of outage would be an easy start. For something a scale of customer owned cars, I hope they are prepared.
- 42e6e8c8-f7b8-4 4y agoIt is hard to learn on your own. I tried off and on, but found a gig where I could learn on the job, 40 hours per week. I love it now.
- stubish 4y agoIf you pick a new tech that is interesting to potential employees, it can really help hiring. You can get a lot of experienced applicants wanting to sink their teeth into the new tech. Lots of places found this when they went with Go. Unless you need to produce vast amounts of mediocre code, you generally want to hire the people interested and able to pick up a language even though it isn't easy.
- helloguillecl 4y agoI have never done any Rust, but I love Volvo (I have driven 3 different Volvos) and I'd buy them without trying them (done it twice) if you want a car that is consistent and user-friendly, this is the one to go for. Now I have a reason to try Rust.
- nazka 4y agoYou may end up liking it too much. :D Just a few warnings. Everybody when they start are “fighting with the borrow checker”. And some people are frustrated by it. But you have to see that it is a good thing. Because Rust is warning you about a whole type of bug that your old way of doing things were actually creating this kind of bug. And now rust can catch them! It’s like a guy the frustration of someone coming from a dynamic language to a typed language and being frustrated because he has a type number but now he wants it to be a string. Sure you can do that in a dynamic language but it can created all kind of bug. And another point. Remember what the language is made for and also not made for. Yes you are going to be faster in X language for different things. But for what Rust is good at, the power it gives you, the dev experience, and the performance are amazing. I usually would grab Typescript first for the back and then reach to Rust where speed and security safety is critical. And it’s so good to code in it. Have fun!
- Galanwe 4y ago> Rust is telling that your old way of doing things were actually creating a whole kind of bug that now rust can catch! As an experienced C programmer learning Rust, my frustration is less "oh it prevented a bug I would have made" and more "no but its fine in this context leave me alone" :-)
- unrealhoang 4y agoUnsafe, pointer and transmute will tell Rust to leave you alone.
- 411111111111111 4y ago
- tus666 4y agoBit scary there is probably a bunch of code in a car explicitly marked as "unsafe".
- Gigachad 4y agoPeople lose their minds over 5 lines in an unsafe block but sleep soundly seeing tens of thousands of lines of unsafe C powering their car.
- tus666 4y agoI wonder if there are legal implications though if there was a crash and it provides evidence that the maker actually knew it was unsafe.
- uninstallgentoo 4y ago
- kevincox 4y agoYeah, unsafe isn't the best keyword but alternatives like manually_verified are a bit too long.
- eutectic 4y agoI think it's supposed to be a bit scary, so you pay extra close attention.
- cesarb 4y agoPerhaps it's a bit different if you're not a native English speaker, since the emotional aspects of the word are missing. To us, it's just a foreign-language keyword, like "if" or "for".
- maxerickson 4y agoThe compiler can't enforce manual verification, so that would be potentially misleading in a bad way.
- jokoon 4y agoWhat are the most commonly used UI software for rust? I don't think there is a QT equivalent? I guess there are bindings for QT, though, but I don't know if it plays well with the particularities of QT.
- pjmlp 4y agoActually there are some ex-Qt developers doing just that. https://slint-ui.com/ https://slint-ui.com/
- justinclift 4y agoThanks, that looks pretty interesting. They explicitly support the RP2040 as well, with demo code. Very useful. :)
- nicoburns 4y agoRust doesn’t play well with QT. GTK is commonly used, as is electron, or Tauri which is also web based. Rust doesn’t really have a good native GUI story yet.
- huhtenberg 4y agoPolestar is a Volvo subsidiary that does electrical vehicles that overlap a lot with Volvo's own EVs. Polestar 2 is their main model and its specs are nice, pretty much the second best after Tesla. However what PS2 is also known for is an absolute shite quality of their firmware. Cars refusing to start and requiring a "service" out of blue (with one lucky guy scoring this in the middle of a forest). Chargers not engaging or, better yet, not disengaging. Basic functions, like blinkers and car locks, breaking after an update. Updates, in general, are more of "oh, fuck, not again" events rather than the positive news. Like, I understand it's a complex software. I had a Bimmer show at "-10 km to destination", an Audi refusing to open a truck if parked too close to the wall, but the amount of bugs in Polestar is insane over the baseline. But, yeah, it's (possibly) written in Rust. Yay. [1] https://www.polestar.com https://www.polestar.com [2] https://www.reddit.com/r/Polestar/ https://www.reddit.com/r/Polestar/ --- Edit - Added "(possibly)". The point was that the choice of the language matters less if your bugs are higher level and your QA process is lacking.
- the_mitsuhiko 4y agoThe Polstar software is written in Rust?
- faitswulff 4y agoThere's no mention of the Rust language on the site or their careers page, at least with queries like `rust site:www.polestar.com/us/` or `rust site:about.polestar.com/careers/jobs/`.
- namdnay 4y agoKeep in mind that 90% of the engineering done in a car comes from a supplier or the supplier of supplier
- aeonik 4y agoI'm not the OP, and I don't know about Polestar specifically, but I've worked with many other vehicle systems, and they are incredibly complex. Each ECU in a car is running it's own firmware, and the larger ones can be running their own OS. There's usually a mix of Assembly, Simulink, C, C++, Java, JavaScript, Shell scripts, Python, etc... I've seen the OS be various flavors of embedded Linux, QNX, or even Ubuntu. You can usually find a bit of everything even in a single vehicle. The code is integrated by an OEM and can come from dozens of potential suppliers.
- sgt 4y agoThey used to keep the rust in the chassis. Now it's on chips. That's progress!
- techwiz137 4y agoProgressive on the cars, but their VIDA software uses terrible and slow database, and requires...get this: Internet Explorer to work on modern PCs.
- tobyhinloopen 4y agoVolvos software is absolute shit since they went with android
- stephc_int13 4y agoI can see where Rust could fill the same niche Ada once occupied.
- pxmpxm 4y agoWould love to hear how - validated constraints on input/types/flow is one of the design objectives of Ada. In what way is Rust relevant here?
- mustache_kimono 4y agoCan you describe what you mean here? I don't understand this feature re: Ada.
- elcritch 4y agoEven just the Ada ability to define integer and other ranges always seemed great! Rust doesn't provide integer overflow checking on release builds unless you use specialized methods. I think creating new number types like "Positive" also seems to require using unsafe, or at least the stdlib used it for a few of the number types I looked into.
- lizardactivist 4y agoThey're hard at work in this thread today; people must be convinced to buy Tesla, and to stay away from Polestar.
- davedx 4y agoIs this post being astroturfed or something? Lots of irrelevant, un-constructive or plain trashy comments
- robocat 4y ago“Please don't post insinuations about astroturfing, shilling, bots, brigading, foreign agents and the like. It degrades discussion and is usually mistaken. If you're worried about abuse, email hn@ycombinator.com and we'll look at the data.” https://news.ycombinator.com/newsguidelines.html https://news.ycombinator.com/newsguidelines.html
- TheRealDunkirk 4y agoA lot of comments so far are complaining about the software quality in cars now. But what did you expect? This is what happens when you hire the same kinds of people to write the software for your car that you've hired for 25 years to write the terrible internal applications inside the company that everyone hates, and in the same terrible way. The end result is going to be exactly the same. Over the years, I've seen various discussions brush up against the issue of professional certification. Professional Engineer, in civil engineering, is a serious credential, which can hold people professionally liable for bridges that fail, or buildings that fall over. Making cars a network of computers that all talk to each other, operated entirely "by wire," and giving up any consideration of mechanical backups (like with a plane) is going to very quickly drive the point home that the programming profession needs a similar credential. As a mechanical engineer who has made a living writing software for 30 years, I understand the difference, but the legal externalities are not going to care that software is VASTLY more complicated than, say, designing a plane wing with a factor of safety. Now, I have to go figure out why my Rails application can no longer restart the delayed_job process on deploy. Is the problem in Rails, Ruby, my gems, Capistrano, permissions, SSH, or some updated package on my Linux VM? Designing a bridge, frankly, is easier, because it's "concrete" and closed-form. Sure, I'll figure out my deployment problem, but next month some obscure thing in the 24 layers that make up a simple web app these days is going to get updated, and break something else. At least once a bridge is built, it's done.
- uup 4y agoI actually find it ridiculous that engineers can be held personally liable for work performed for a company. It's not a model I would support moving towards, at all.
- bb611 4y agoAgreed. We know issues at the design stage can be avoided by improving systems, making that the personal problem of someone with a PE is a bandaid solution. Improve regulation, fund regulators, incentivize companies to fund quality processes.
- TheRealDunkirk 4y ago
- jeena 4y agoI remember proposing looking into introducing Rust as a second language next to C++ just 3 years ago while working with a German car manufacturer in Berlin, every single architect refused and most of them were making fun of me, anyway I'm not bitter ... Actually back then it was the beginning of me stopping carrying about improving and just go with the flow like a dead fish. Everyone is happier, I have much less clashes with coworkers much less stress and you know what they say: Nobody got ever fired for choosing IBM. I think this is the main reason for the state of software quality in cars now. People who care can't stand the industry and leave, if you want to stay you have to stop carrying.
- krater23 4y agoOh, when you really think so, I think you are wrong. I'm working now for several years in software for the german car industry. There are many people that try to improving everything in the workflow. But they don't want to add more complexity with a language that is in heavy development, changing fast, is not certified and can read only from a small piece of developers in the field only for a new hype. The real problem with the software quality is, that everytime when anything works it is tried to make it cheaper and outsource anything whats possible until all breaks and the people that had any idea how it worked changed to another company.
- fny 4y agoIt sounds like you didn't read the article. The problem is that despite good software practice, esoteric memory bugs are still an issue. If switching to Rust eliminates an entire class of bugs, the choice is obvious especially if you already have a competent development team.
- IshKebab 4y agoI know how you feel. There are definitely workplaces that attract naysayers and eventually the whole culture becomes one of naysaying. It becomes self-reinforcing because anyone that actually wants to improve things is in the minority, gets shut down by their coworkers and eventually gets frustrated and leaves. You can't really do anything about it. In my experience that kind of culture comes from the top and at least where I am those people are part of the problem. Look for another job.
- jugg1es 4y agoWhat's up with all these "X uses Rust!" articles recently? Is it that surprising that a memory-safe, low level language with a large community is actually getting used in production?
- timeon 4y agoWe cant have Rust thread without "why Rust in title" comment can we? Anyway > Is it that surprising that where is it implied that it is "surprising" just because it is posted?
- esskay 4y agoHoneslty I'd rather they just did as minimal programming as possible. Slap an open api on all cars and let carplay/android auto/any other piece of software have access to said api to do as they please. The longevity of in car software is utterly attrocious. Taking a very basic car like a Toyota Aygo as an example, in 2015 they released their mid-range models with a large touchscreen in the center console, boasting support for connecting your phone and such. In reality it didn't work from day 1. They used Mirrorlink which had already become out of date tech and wasn't supported by any of the handsets anymore. Now, they could've released a software update to fix this. Except they didnt. They kept selling that car for several years, advertising phone integration that didn't work. Car manufacturers give absolutely no care at all to their software and never have.
- manmal 4y agoYou‘d still need a ton of C/Rust if you provided only CarPlay/AndroidAuto APIs.
- jcampbell1 4y agoIsn't the car side of CarPlay and AndroidAuto not much more than providing a video player and sending the screen touches back to the phone? I haven’t used either much, but I don’t think it interacts with much more than the touch screen and audio. The in-house code should be minimal.
- manmal 4y agoCurrently, yes. But Android Automotive and future CarPlay run on the car‘s hardware and get access to the CAN or an abstraction over the CAN. Those still supersede only the user-facing code (dashboard, buttons, entertainment), and all the other low level code still needs to be written: engine control unit, ABS/ECS etc, airbags, battery management, indicators, windows, heating, wipers, drive by wire, etc - and let’s not forget all the glue code (essentially an OS of its own) to tie all those components together, OTA orchestration, etc.
- 4y ago
- ardel95 4y agoThey do claim to be the safest cars!
- logicchains 4y agoIt's fitting as Rust is the Volvo of programming languages (and I mean that in a positive way, much as Volvo characterised itself in its successful "Bloody Volvo Driver" advertising campaign).
- jandrewrogers 4y agoEvery automotive code base I've seen has been a dumpster fire. This (mostly) isn't the fault of the developers and Rust won't fix it. The business process creates this outcome. No one likes it but little is done to address it. The software development timeline is slaved to the rigid manufacturing timeline. There is no allowance for slippage, so making things work By Any Means Necessary is the rule of the day. Concurrency problems often are not debugged; locks and similar are just sprinkled around until they disappear in testing. It is TDD taken to an extreme -- passing the enumerated tests, technically, is the definition of done even if the code is obviously poor or broken. There are a vast number of software and hardware components sourced from myriad vendors that are swapped out every year to save a few dollars or deal with a supply chain issue. There is no stable baseline but all of these components need to work together. The code has to constantly adapt to the reality that someone sourced parts for a new model year that work differently or are in a different programming language. This code is usually required to be supported for 10+ years. The developers don't just have this year's tech stack and code base to deliver on a rigid schedule, they are required to maintain several older implementations concurrently, often built in different languages and architectures. Basically, the automotive industry has failed badly at the transition from being hardware manufacturing companies to being hardware + software manufacturing companies, and try to run their software processes the same way they ran their traditional hardware processes. Choice of programming language is the least of their concerns, that isn't the source of their code quality issues.
- iancmceachern 4y agoThis is the case for a lot of engineering, I've seen it time and again. The business processes force the engineering work product to be a dumpster fire. The great companies dont.
- ParetoOptimal 4y ago> Choice of programming language is the least of their concerns, that isn't the source of their code quality issues. I'm curious to see if the Rust programmers affect the organizations as well by introducing unions to combat this kind if thing. On another note I disagree that language will have no meanigful effect, even in a hostile environment such as this.
- plankers 4y agoSo I guess this means Volvos will be... crashing... less?
- cultofmetatron 4y agoas much as I love rust. why not ADA. it was designed for this sort of use case.
- robomartin 4y agoI am truly astounded by the hatred exhibited in some of the comments in this thread. Wow. A few points: If your software development experience is limited to web or mobile development, please understand you lack a massive amount of context when it comes to software in the context of complex hardware manufacturing. To put it in simple terms, you really don't know what you are talking about. It's like someone who writes code for embedded systems in clothes washing machines having a strong opinion about how to engineer, deploy and maintain a tech stack for a SaaS. Next, the cults formed around programming languages are some of the funniest things I read on HN. Except, they are not funny at all. There is nothing wrong with C or C++. Nothing. The problem is people who don't know how to program. At the core, to perform a certain function the microprocessor will, for the most part, do pretty much the same things, regardless of what language might be used to describe that. Blink a light in response to a button being pressed? At some point you are sensing and de-bouncing the input and then setting an output pin. Maybe there's I2C, SPI or CANbus in between, but what you have todo is the same. Languages like C and C++ have been around for longer than most people reading this have been alive. They have been used --successfully and without issues-- for more projects, products and systems than anyone can imagine and at scales from a watch to spacecraft and everything in between. This cult of languages as solutions to problems caused by bad programming is nonsensical. One can write bad code in any language. Professional certifications. This isn't going to stop people from writing bad code. At all. Designing and implementing complex code for real time systems is far more complex than designing a bridge or a building. Certifications are not magical inoculants against bugs and system design problems. Trying to view and fit software engineering from the context of other engineering disciplines is a mistake. They are not the same thing. When you are dealing with fault-tolerant hardware + firmware systems things can get exponentially harder. Folks who work on web products have the luxury of being able to make lots of mistakes and fix them as fast as their deployment system allows. Imagine if you got ONE CHANCE to ship a non-trivial codebase and it has to be guaranteed to work to a high degree of certainty for ten or twenty years. Once you ship it, there will be millions of users and you cannot touch it at all. In fact, you have to telemetry data of any kind. You don't know if there are issues, if it has random failures, race conditions or odd failure modes you cannot possibly simulate at scale in the lab. Imagine this next time you deploy an update. Imagine you are not allowed to touch it at all after that and it has to work. Imagine that, and maybe you can get a sense of what some of this work can be like. This isn't limited to automotive. This goes for commercial, industrial, aerospace and other domains. Hardware is a million times more difficult that pure software products, particularly web type software. We just shipped a thousand units of one of our new products for installation in a large industrial facility. The firmware had to go through a year of testing before we dared ship even a single unit. That's another thing to imagine; the idea of having to test and qualify your web SaaS --not with clients as test subjects, on your own-- for a year or more before you can launch your business (and you are not allowed to touch it after that). Anyhow. Don't be language cultists. That isn't the problem. Bad programmers and bad process is far more of an issue. Changing languages isn't going to magically fix that. It isn't a solution. You can build anything with C or C++. If written correctly, it will perform better than just-about anything and be reliable within the bounds of system specifications.
- rapind 4y agoThe goal being an SEO takeover of Rust + Volvo...
- benced 4y agoThey are the safest car manufacturer.
- ddalex 4y agoI drive a Volvo and it's the most amazing car that I've driven. The comfort of long range drives is something else.
- singhrac 4y agoI saw a lot of fairly unstructured C in embedded programming - copied source / header files, hacked together Makefiles, lots of "works on my machine". Almost no abstraction to prevent use-after-free (mostly rigorous code review). I always saw that the problem it would solve is more about tooling - Rust would be a fairly good fit because it has a good cross-compilation story, and the tooling around e.g. cargo and running builds is quite good (in my opinion). The blocker right now is absolutely vendor support; no reasonable hardware company can afford to hack their own HAL without vendor support (and in fact they pay a lot for support right now, and use it). I think what these companies usually miss (good for Volvo) is that iteration time in a "higher-level language" like Rust can actually be much faster than in something like C. The setup time for a dev environment in embedded can be a week (making sure exact version match between compilers, checking out files, compiling, resolving build failures). On top of that, just having access to a language with strings and algebraic types is huge. I think there's maybe room for a Rust consultancy that could take one of the existing large manufacturers, build a toolchain around it (possibly with their blessing / support). Ferrous Systems does this (I hope there is as much demand as I am imagining).
- autotech 4y agoI'm an automotive technician, I have worked for an EV startup. Some of the most frustrating diagnoses I have been involved in were caused by bugs in the software. We had one where a power trunk would not release if the vehicle was out in the sun. The ambient light sensor and the power trunk actuator were not even on the same network bus. We had a gut feeling that it was software, but by the time we were sure, it had been 2 full days of extensive testing.
- eggy 4y agoI know Rust has many goals on paper that align with this decision, however, what large codebases in the field of high-integrity software are written in Rust? Does Rust comply with high-integrity software standards (CENELEC EN 50128, DO-178C,DEFSTAN 00-56, or IEC 61508) in any capacity? SPARK2014 has been around much longer, does comply with those standards, is a formally defined PL with a great set of verification tools specifically designed for high-integrity software. There are large codebases (software for the safe operation of helicopters at sea (27k LOC of SPARK2014); NATS iFACTS air traffic control system (>529K LOC of SPARK2014). I am glad that AdaCore is teaming up with Ferrous Systems to help bring some of Ada and SPARK's goodies to Rust, but it's nowhere near them at this point. This seems more a Rust champion at Volvo convinced their group to use it. >>>JG: Then I pitched to the managers, “If we want to do a serious Rust effort within the company, then I want to take part in that and become an employee”, since I was a consultant at that point. The availability of programmers in either Rust or SPARK2014 shouldn't be a heavily weighted factor, since anyone working in SPARK2014 probably already has the relevant experience no matter how few apply, whereas the dozens or more of Rust programmers who might like working at Volvo would be cutting their teeth trying to build 1/20 of what Ada/SPARK2014 already have, and possibly deliver far less. Rust is to C++ as SPARK2014 is to Rust at this point in my opinion, but current popularity wins out a lot in all human endeavors. I'll stick with SPARK2014 and Zig for now until Rust catches up SPARK2014.
- mikessoft_gmail 4y ago