back to article Boffins zapped '2,000 bugs' from Curiosity's 2 MILLION lines of code

With a $2.5bn price tag, a 350-million mile journey and 2 million lines of C and some C++ code, the only bugs NASA wants its Curiosity rover to find are those possibly beneath the Martian surface. And it may not be a particularly glamorous job, but software analysis outfit Coverity was the company tasked with "ensuring that …

COMMENTS

This topic is closed for new posts.
  1. g e
    Facepalm

    WTF?

    "That particular cock-up was caused by transatlantic boffins who mixed up their measurements in inches and centimetres."

    Need a bigger facepalm. How long has the world had metric standard units for now?

    1. Anonymous Coward
      Anonymous Coward

      Re: WTF?

      They don't know why Beagle 2 failed. They don't know if it landed safely and couldn't deploy its antenna. They don't know if the atmosphere was thinner than expected and it broke up on impact. They don't know.

      This is the first I've heard of any confusion between inches and centimetres causing the failure. If it was then that is something they would know because all they would have to do is compare the measurements since every measurement they used is written down.

      1. Code Monkey

        Re: WTF?

        The confusion between inches and centimetres is oft-mentioned but I still reckon it's "citation needed". As you say - they don't know.

        1. greensun

          Re: WTF?

          The know it wasn't confusion about units.

          The genius author made that up, maybe to appeal to Dail Mail readers who want to tut about what's wrong with the world, whatever the facts

          http://en.wikipedia.org/wiki/Beagle_2

      2. Christoph
        Joke

        Re: WTF?

        Actually they've worked out what must have happened to Beagle 2.

        It was built using the very best traditions of British engineering practice.

        But the unexpectedly high heat during atmospheric entry meant that it exceeded the working temperature of the adhesive on the sticky-back plastic.

        1. This post has been deleted by its author

        2. Charles Manning

          British eh?

          How did they make it leak oil?

    2. My Alter Ego
      Facepalm

      Re: WTF?

      You're thinking of the Mars Climate Orbiter

      http://en.wikipedia.org/wiki/Mars_Climate_Orbiter#Cause_of_failure

    3. diodesign (Written by Reg staff) Silver badge

      Re: WTF?

      Actually, embarrassingly, it was the Mars Climate Orbiter that had cocked-up measurements. The Beagle 2 crash-bang-wallop was another story.

      The article has been amended. Apologies! it's damn annoying when this happens.

      C.

      1. The BigYin

        Re: WTF?

        Either way, the septics should get with the programme and join the rest of us in the 21st Century.

        And whilst they upgrade, can we please have our signs and limits change to km? Puh-leeze!

        1. Andus McCoatover
          Windows

          Re: WTF?

          Yeah, and can the US please follow the rest of the world and put ALL of its traffic lights where you really need to stop, rather than at the other side of the junction. Number of times in Irving, TX I've stopped at the lights, until I suddenly realised I was in the middle of the approaching road.....

          1. mIRCat
            Go

            Re: WTF?

            Traffic signals? Aren't those things only suggestions?

            1. Mike Flugennock

              Re: WTF?

              Traffic signals? Aren't those things only suggestions?

              Sounds like an inside joke my wife and I came up with while driving around Margarita Island, Venezuela on our honeymoon. They had the usual traffic signs, speed limits, traffic lights and such, but folks there were rather -- shall we say -- casual about paying attention to them. My wife and I began referring to them as "The Suggestions Of The Road", as opposed to the Rules Of The Road.

              The locals in many of the smaller towns on Margarita solved the problem of people ignoring traffic lights and stop signs and speeding through intersections by rolling sections of tree trunks into the centers of intersections, forcing people to slow down in order to go around them. Worked like a charm.

          2. Random K
            Trollface

            Re: Andus

            Missed the large white (usually reflective) line(s) painted on the road showing you where to stop did you? Shame that. Let's say folks decided to follow your suggestion. How exactly does one know the color of the light if parked directly under it I wonder?

            1. The BigYin

              Re: Andus

              @Random K - Simple. The blaring horns let you know when it's amber! :)

        2. Anonymous Coward
          Anonymous Coward

          Re: WTF?

          No, if you're listening Mr Government, puh-leeze don't. There are one or two more important things to spend billions on at the moment (or any other time) than changing all the numbers on the bloody road signs, ffs.

          1. Someone Else Silver badge
            Facepalm

            Re: WTF?

            Actually, if it weren't for the xenophobic and dumber-n-soup Ronald McDonald Reagan, the west side of the pond would have joined the rest of the civilized world decades ago.

          2. The BigYin

            Re: WTF?

            @AC 14:28 (Why do people use AC? It's not like El Reg has a 'Real Name' policy!)

            It (probably) has to happen sometime and I will agree that the cost will be huge if done overnight, so don't do it over night. Have a transition period. And that period will take many years.

            Are there better things to spend money on? Not really. Oh wait, you're going to say "hospitals" and "teachers" aren't you? The money doesn't go to them though, it goes to the PFI providers (just ask the hospitals going bankrupt). And we probably need fewer hospitals anyway - concentrate all the knowledge down into a few centres of excellence to improve patient care; or would you prefer that children needlessly die because their surgeons do so few operations that they are verging on the incompetent?

            Maybe you'd rather spend it on the military? Oh whoops! Won't go to the front-line troops. It'll be trousered in PFI. Again. Or wasted on jets that are massively over budget and decades behind in development. Or compensation for cancelled contracts that were failing to deliver, or...

            Police? Maybe, but in a few years time that'll be a huge PFI hole as well.

            Trains? HAH! Do not start me on that corruption which is supported by our spineless regulator.

            I could go on.

            So in summary...spending the billions of finalising this nation as metric is one investment that might actually do something and not just enrich the money laundering, tax-evaders in the City.

        3. keith_w
          Devil

          Re: WTF?

          The "septics" - the poisonous ones?

        4. Anonymous Coward
          Stop

          Re: WTF?

          You could do what Ireland did for a while in the late 1990's (until full conversion in Jan 2005) and change all the road distance signs to Km but KEEP all the speed signs in MPH.

          It was pure genius... One of the many 'strange' decisions involving driving here over the years....

        5. Anonymous Coward
          Anonymous Coward

          Re: WTF?

          "And whilst they upgrade, can we please have our signs and limits change to km? Puh-leeze!"

          No. The metric system is shit for that sort of thing. Indeed, it's not actually much use for anything other than programming computers because computers are dumb as all get out. Even then, many parts of the Imperial system are actually better suited even to computers.

          Basing your measurement system on the genetic accident of how many digits you have on your hands is no way to go about things.

          1. The BigYin

            Re: WTF?

            "Basing your measurement system on the genetic accident of how many digits you have on your hands is no way to go about things."

            Whereas basing your measurement system on the genetic accident of how wide your thumb is makes *perfect" sense?

            Any metric is superior to Imperial by the simple fact the scale is a consistent linear progression. Of course the current decimal metric is inferior to a duodecimal measuring system.

    4. Mad Hacker
      Joke

      Re: WTF?

      "How long has the world had metric standard units for now?"

      Yes but since when is the United States part of the world?

      Oh right sometime in the century 3000...

      Futurama:

      Leela: "Look, I know there are no car chases, but this is important. One of these two men will become president of the world."

      Fry: "What do we care? We live in the United States."

      Leela: "The United States is part of the world."

      Fry: "Wow, I have been gone a long time."

    5. John Smith 19 Gold badge
      Happy

      Re: WTF?

      Because you can't have an empire without "imperial units"*

      *Although Americans don't like to call them that. They feel it sounds a bit imperialist.

  2. Anonymous Coward
    Anonymous Coward

    But....

    They should have written it in <insert your language of choice here> cos I use that and its dead easy.

    1. Code Monkey

      Re: But....

      Hey I use <insert your language of choice here> as well!

      If I produced bugs at a rate of 1 per 1000 lines of code that'd be a vast improvement.

      1. Khaptain Silver badge

        Re: But....

        I suggest COBOL.

        Computer Operated Bigwheel Overland Legobot.

    2. dotdavid
      FAIL

      Re: But....

      Ridiculous! <Insert alternative language> is far superior in almost every way. Only a rank amateur would suggest developing something like this in <insert your language of choice here>.

      1. Annihilator
        Boffin

        Re: But....

        Further ridiculous! <insert your language of choice here> and <insert alternative language> are for people who don't know they were born! When I were a lad we wrote <insert chip type> assembler code.

        1. Anonymous Coward
          Anonymous Coward

          Re: But....

          I knew a man who once programmed an AVR micro-controller using a compiler he wrote on a Palm Pre... weirdo.

          1. Lockwood

            Re: But....

            TRWTF is <your choice of language>

            1. Mako

              Re: But....

              TheDailyWTF reader detected...

              So TRWTF is, of course, Java.

        2. Christoph

          Re: But....

          "When I were a lad we wrote <insert chip type> assembler code."

          And we programmed in ones and in zeros.

          And sometimes, we ran out of ones!

    3. Scott 19
      Devil

      Re: But....

      They should have written it in crayon cos I use that and its dead easy.

    4. Anonymous Coward
      Anonymous Coward

      Re: But....

      Nah, they should have written it in <horrendously complex bondage'n'discipline language of no-one's choice> because of how the <type system/contract system/complete absense of developers> makes it vastly harder to create buggy code, or indeed any code at all!

      1. Comments are attributed to your handle
        Coat

        Re: "horrendously complex bondage'n'discipline language of no-one's choice"

        Perl?

        1. Hungry Sean

          Re: "horrendously complex bondage'n'discipline language of no-one's choice"

          no, perl is more of an anarchist utopia-- the general complaint is that there's too much freedom, too many ways to do things, and not nearly enough whips and chains to save developers from themselves. I suspect the OP was thinking of something like Erlang or any other language where claims about "correct by construction", "provability", and "mathematical formalism" are major selling points.

        2. DJV Silver badge
          Alert

          Re: "horrendously complex bondage'n'discipline language of no-one's choice"

          Brainfuck - en.wikipedia.org/wiki/Brainfuck

          1. Anonymous Coward
            Anonymous Coward

            Re: "horrendously complex bondage'n'discipline language of no-one's choice"

            Aww, you guys with your 'perl' and 'brainfuck'. Such charming naievety brings a tear to me eye. No, programming bondage and discipline is something else; claiming perl is b'n'd is right up there with thinking that 50 shades is a realistic portrayal of a sadomasochistic relationship.

            No, I was thinking more of Coq formal proofs and Haskell and Ada. The sorts of nasty, serious hardcore that will never be lighthearted fun, where there are no safe words to make the type system stop and when the amount of verbosity and ceremony actually leaves scars.

            Brainfuck indeed. You have much to learn, young one. Tell me, have you ever tried... category theory?

  3. leon stok

    Beagle ?

    Don't you mean the Mars Climate Colider ?

    (where it was a Newtons vs Pounds oopsie)

    1. Chris Miller

      Re: Beagle ?

      Yep. That was the one that used the experimental lithobraking technique.

      PS 1 Newton ~ ¼ lb (this being the weight of one apple)

  4. E-Penguin
    WTF?

    Beagle2...

    Had nothing to do with Metric vs Imperial. http://en.wikipedia.org/wiki/Beagle_2#ESA.2FUK_inquiry_report

    1. diodesign (Written by Reg staff) Silver badge

      Re: Beagle2...

      Yes, you're right - that unfortunate misunderstanding has been corrected.

      C.

  5. MrT

    Misread the name...

    ... and thought the bugs had been sent to Coventry ...

    1. Destroy All Monsters Silver badge

      Re: Misread the name...

      But why that? To wait for Hermann Göring?

      1. MrT

        Re: Misread the name...

        https://en.wikipedia.org/wiki/Sent_to_Coventry

        That, and my eyes play tricks on me... I once woke up with a very small pack of cards on my nose. ;-)

    2. John Smith 19 Gold badge
      Coat

      Re: Misread the name...

      "... and thought the bugs had been sent to Coventry ..."

      I went to Coventry once.

      Looked like a bomb had hit it.

  6. The Axe

    JPL Coding Doc

    JPL follow MISRA coding rules quite a bit, and the rest is to do with making the code as simple as possible. So no C gurus with egos the size of a planet allowed.

  7. Destroy All Monsters Silver badge
    Headmaster

    Really! I am amazed as this impudence!

    "ensuring that every software defect is found"

    Every? EVERY??

  8. ChrisC Silver badge

    I wonder...

    ...how many lines of code are in the Coverity software, and what do they use to search for errors in that.

    1. FartingHippo
      Boffin

      Re: I wonder...

      They use a combination of Tarot cards, tea leaves, and a level 3 summoning grid.

    2. Anonymous Coward
      Headmaster

      Re: I wonder...

      "..how many lines of code are in the Coverity software, and what do they use to search for errors in that."

      Thats the problem with proving software - how do you know the tests or the proof is correct? In theory you could end up in an infinite regression of testing - prove the software, prove the proof, prove the proof of the proof etc etc. I guess at some point you just have to draw a line and say "its as good as its humanly possible to get".

      1. Torben Mogensen

        Re: I wonder...

        boltar says: "Thats the problem with proving software - how do you know the tests or the proof is correct? In theory you could end up in an infinite regression of testing - prove the software, prove the proof, prove the proof of the proof etc etc. I guess at some point you just have to draw a line and say "its as good as its humanly possible to get"."

        It is actually not as bad as that. Proof systems usually have a very small set of primitive rules and combining forms that are verified by hand, and then all proofs are build up from this set of primitive rules and combining forms. This means that errors in the code that generates the proofs can not generate faulty proofs (at least not without triggering run-time errors). Basically, the worst a programming error in the proof generator can cause is failure to produce any proof, but faulty proofs can not be made. Assuming, of course, that the small kernel of primitive rules is correct, but great effort has been made to ensure this.

        When proving behaviour about programs, a much larger problem is whether the formal specification of the programming language actually corresponds to the behaviour of running programs: The compiler may not conform to the specified standard. Hence, you often verify the generated machine code instead of the source code. That way, you don't have to trust the compiler and you don't need a formal language specification for the high-level language. What you need instead is a formal specification of the machine language, but that is often easier to make. A problem is, though, that the machine language does not have information about the types of values (are they integers or pointers, and pointers to what?). So you sometimes make the compiler generate typed assembly language. The types can be checked by the proof system and help verification of the correctness of the code relative to a specification. Obviously, few "standard" compilers generate typed assembly language that can be verified this way.

  9. Crisp
    Terminator

    Problem lines of code

    Rover.PrimaryTarget = "Conner, John";

    Rover.AI = new AI("Terminate");

    1. Alan_Peery
      Joke

      Re: Problem lines of code -- original lines

      No, those were the corrected lines. The original lines were:

      Rover.PrimaryTarget = "Appleseed, John";

      Rover.AI = new AI("Germinate");

      They had been intended as a stub for testing, but some bright spark figured that they were just what a (nearly) barren planet needed and left them in without authorization.

      1. Thunderbird 2

        Re: Problem lines of code -- original lines

        Imagines a Dalek meeting Curiosity.

        "YOU WILL BE INSEMINATED!!!"

        1. Swarthy
          Alert

          @ Thunderbird

          So THAT's how dub-step got started.

        2. John Smith 19 Gold badge
          Happy

          Re: Problem lines of code -- original lines

          You do know all Daleks are gay, right?

          Proof

          http://www.youtube.com/watch?v=ZfxyvrW-lUs

  10. Torben Mogensen

    Why C

    While there is a lot of "religion" in choice of programming language, I find C a particularly bad choice for writing zero-defect software: There is not enough information in the types to catch even simple mistakes (such as writing x=y instead of x==y) at compile time, memory deallocation is unchecked and unsafe, lots of behaviour is specified as "implementation dependent" or "undefined" in the standard, and so on.

    As a result, you have to throw a lot of complex analysis after the program just to catch errors that in most other languages would have given a compile-time error message or which could not even occur in these languages. And to make the analysis tractable, programmers are forced to use only the simplest parts of the language, as the more complex parts are too difficult to analyse. Of course, this allows Stanford researchers to write a few scientific papers and Coverisity to earn a few bucks. But that seems like a very costly solution.

    I don't suggest using one of the newer mainstream languages, because while they have better type systems, they are not suited for small computers running real-time software. But there are plenty of languages designed for ease of verification and control of resources. Some of these even have compilers that are verified to generate correct code, which I don't think any (full) C compiler is.

    1. Hieronymus Howerd

      Re: Why C

      Oh no, you've started it now....

      1. BoldMan

        Re: Why C

        (Gets popcorn and deckchair)

    2. BlueGreen

      Re: Why C

      Agreed but I am about 100% sure they would have used a safe subset (knocking out impl. dep. behaviour & more) + a whole lot of other procedures & doubtless other static checkers. Their figure of 1 bug per 1000 lines suggests that strongly. Also they probably define a bug more stringently than normal software dev process would.

      Odd claims like checking for null pointer dereferences, erm, you can statically do that I'm pretty sure, with suitable restrictions, much like const propagation I guess.

      I'd very much like current software dev processes - which are horrible - to grow up and become a boring engineering job. Yes, boring. Less 'excitement' for me, fewer 'thrills' for the user. Less crunch time, more having-a-life. Also would winnow the actual able guys & gals from egoists and bullshitters and plain bad.

      (this article does read suspiciously like an advert, no?)

      1. John Smith 19 Gold badge
        Coat

        Re: Why C

        May I draw your attention to "Structured programming" by Linger, Mills & Witt.

        It describes the underlying tools used by the teams that built the the software for the Shuttle (and whose work *defined* what the term CMM5 means).

        AFAIK most of their key innovations were in *procedure* rather than actual software tools, although their change management system could give cradle-to-grave histories on every line of code in the source (not sure if this is SOP for *all* modern CMS's these days).

        *sticking* to the process when deadlines loom is another matter.

        I'd also recommend Harlan Mills "Software Productivity" for a very neat way to establish how many bugs are *likely* to be left in a program. Implementing it however may be quite tricky (but I bet it would make a hell of a product).

    3. Anonymous Coward
      Joke

      Re: Why C

      I agree. They should have used assembly language. That way, what you see is what you get.

    4. I Am Spartacus
      Coat

      Re: Why C

      Well, as they are running on the Wind River VxWorks RTOS, it could be that the choice of <insert your favourite language here> is not supported. I have not programmed in VXWorks, but looking at the design spec's for Curiosity, I would imagine that getting as close to the hardware interface as possible is a requirement. Would <insert your favourite language here> support real time control of the the devices?

      Also, JPL programs in C as a language of choice. I have worked with them (briefly) and although I was not working in C, it quickly became apparent that all their examples and code base was in C. Well, actually, some of the examples were in (shudder) FORTRAN.

      Mine's the one with the card deck and manual hole punch in the pocket.

      1. John Smith 19 Gold badge
        Boffin

        Re: Why C

        JPL's *other* core area is mission planning and orbital planning.

        Some of the apps they use for this are highly numerical and have been under development for a *long* time.

    5. Crisp

      Re: Writing zero-defect software

      I for one would like to hear more about this magical language that allow me to build software with zero defects.

      1. Anonymous Coward
        Anonymous Coward

        Re: Writing zero-defect software

        Any language allows you to build software with zero defects. I if you fail to take advantage of the opportunity, then that is your fault.

      2. Andus McCoatover

        Re: Writing zero-defect software

        NOP.

        1. Destroy All Monsters Silver badge
          Terminator

          Re: Writing zero-defect software

          Here's the guideline for ESA's Galileo System (a monstrous "industrial policy" effort gone badly wrong, but that's another problem)

          Galileo Software Standard (GSWS) defines 5 different software development assurance levels (SW-DAL), which determine the situations in which software that has passed a given DAL can be used:

          Level A: Software whose anomalous behaviour would cause or contribute to a failure resulting in a catastrophic event.

          Level B: Software whose anomalous behaviour would cause or contribute to a failure resulting in a critical event.

          Level C: Software whose anomalous behaviour would cause or contribute to a failure resulting in a major event.

          Level D: Software whose anomalous behaviour would cause or contribute to a failure resulting in a minor event.

          Level E: Software whose anomalous behaviour would cause or contribute to a failure resulting in a negligible event.

          Programming languages allowed according to [GSWS-SWENG-1180]:

          Ada, Assembler, C: any DAL

          C++: Allowed only for DAL D and E (except if you can get a waiver)

          Java: Allowed only for DAL E (except if you can get a waiver)

          So yeah, C is nice. Though the GSWS also says, no dynamic memory allocation and other casualness. Also, independent validation and verification by a second team if above DAL D etc. It's a telephone book of requirements..

    6. Tom_

      Re: Why C

      JPL's C Coding Standard is available online (http://lars-lab.jpl.nasa.gov/JPL_Coding_Standard_C.pdf) and makes good reading for any C programmer, really.

      1. BlueGreen

        Re: Why C

        That standard's comments are quite common for embedded and (AFAIK) high reliability stuff, I should have remembered the no-alloc rules and no-side effects rules, at the very least. I'll go through the rest.

        Thanks (and to Destroy All Monsters) for some actually informative posts.

        1. lambda_beta
          Linux

          Re: Why C

          Forgive my ignorance on this subject, but aren't a lot of operating systems and compliers written in C? If that's the case then using another language whose complier is written in C would be worse, since then you would have to debug both code and complier.

      2. Anonymous Coward
        Happy

        Re: Why C

        I love the fact that the reviewers included K&R ...yes, that K&R. To say nothing of Doug McIlroy. It would be like me calling Steve Jobs for a homework essay on ego. Brilliant.

      3. kwhitefoot
        Thumb Up

        Re: Why C

        >makes good reading for any C programmer

        Not just C programmers. A lot of the rules in the JPL Coding Standard are worth following in any imperative language. Also it is written in an admirably down to earth style.

    7. Tim Parker

      Re: Why C

      I'd agree with certain elements of such software not being written in C, but i'm mystified by some of your comments....

      "There is not enough information in the types"

      I'm not sure what you're trying to say here - I certainly can't parse it. Short of explicitly casting pointers to things to stupid values, C is perfectly well aware of what types things are.

      "to catch even simple mistakes (such as writing x=y instead of x==y) at compile time"

      If y is assignable to x, then how do you know that 'x = y' is not the intention. If y is not assignable / convertible to x then an error will (or can) be produced with any half decent / current standards compliant C (or, indeed, C++) compiler. This assignment versus equality problem is common to many languages, but is impossible to classify as an error (because it's not, if the types are assignable/convertable) - this is part of the reason that every C compiler i've used, within the last 10 years at least - many long before that - warns about it.

      "lots of behaviour is specified as "implementation dependent" or "undefined" in the standard, and so on."

      They mostly tell you what not to do. This is useful. It is perfectly possible to write well-defined C programs - alas in the wrong hands (and even the right ones) it's all to easy to write ones that aren't. C is not alone in that, just jolly good at it...

    8. Anonymous Coward
      Anonymous Coward

      Re: Why C

      I think the main reason is that C is easier to statically analyze, and this seems to be a method of bug finding they rely on heavily.

      1. david 12 Silver badge

        C is easier to statically analyze,

        choke.. arf, arf, arf, arf, arf......

        C is 'easier to statically analyze' because by definition the compiler is unwilling to prevent whole classes of static faults, thus leaving [whole classes of static faults] available for a seperate static analysis program to detect.

    9. John Smith 19 Gold badge
      Boffin

      Re: Why C

      You *might* like to check the MISRA coding rules.

      They were developed for *automotive* applications like engine management units brake and gear change systems.

      IE *lots* of meatsack testing it and if it fails someone *will* end up going "squish".

      Dynamic memory allocation is *explicitly* ruled out as "unsafe" (at any speed).

  11. Anonymous Coward
    Facepalm

    Some deadline!

    "... ensuring that every software defect is found and fixed before launch."

    Just for a moment I thought you said "... before lunch."

  12. Glyph
    Trollface

    advertising?

    Well I'm interested. Anyone else use coverity? All the static analysis tools I've used fail to find anything terribly complex. A tool that could spot data consistency errors across threads would be nice.

    Also, the language debate appears to be winding down so... C++ is the best language ever because recursive template FFT implementations are the fastest.

    1. Anonymous Coward
      Anonymous Coward

      Re: advertising?

      You should have a look at spinroot.com who do spin. Its old and reliable but not easy to use because you dont' start from your code but have to make a model manually.

  13. Anonymous Coward
    Anonymous Coward

    Cheap eastern labour at CERN.

    "The cost [...] has been evaluated, taking into account realistic labor prices in different countries. The total cost is X (with a western equivalent value of Y)" [where Y>X]

    source: LHCb calorimeters : Technical Design Report

    ISBN: 9290831693 http://cdsweb.cern.ch/record/494264

  14. Tank boy
    Mushroom

    Well, well, well.

    Talk all the shit you want about us poor dumb Americans. We landed a nuclear powered rover on another planet, despite a buggy system. So suck it.

    1. Bawbag
      Paris Hilton

      Re: Well, well, well.

      Suck it?

      Err thanks but no thanks my American cousin. I prefer my daily semen intake to be free of Cafinee, Fat & Prozac.

      Paris cos she likes a good sloppy slurp so she does!

      1. Destroy All Monsters Silver badge
        Trollface

        "Mein Führer, I can walk!"

        "We landed a nuclear powered rover on another planet, despite a buggy system!!"

        You shall now picture Dr. Strangelove rolling his wheelchair speedily after the departing rover into the sunset, possibly to Yakety Sax or a song by Vera Lynn.

  15. Elmer Phud

    Helldesk

    "after all, there's no service desk on Mars"

    No, but the call centre is there.

  16. Andus McCoatover
    Windows

    ...to catch even simple mistakes (such as writing x=y instead of x==y) at compile time...

    Wouldn't the missing 'if' or equivalent clause be a dead giveaway? Sorry, haven't programmed in C this millenium, but...

    1. Destroy All Monsters Silver badge
      Gimp

      Re: ...to catch even simple mistakes (such as writing x=y instead of x==y) at compile time...

      I have to tell you the sad truth...

      if (x=y) {

      }

      is a reasonable statement in C.

      1. Someone Else Silver badge
        Coat

        Re: ...to catch even simple mistakes (such as writing x=y instead of x==y) at compile time...

        Yes, but is probably not what you want. So set the compiler to warn about such things, and further set the compiler to treat all warnings as errors. If you really, really want that construct as written, then put in a pragma or some other thing so for that line, the compiler does not treat that as a warning. Your program will compile, and there will be a rather obvious sentinel to the next poor sod who has to maintain your wonderfulness that you did something a little unconventional (because we all know that real C programmers can't be arsed to write comments explaining that they're doing something unconventional, now could we?)

  17. stu 4
    Holmes

    Coverity ad

    I wonder what there spin would have been if it had crashed into the sun ?

    interesting that they trust their software sooooo much, they had to wait till the tested code was switched off before claiming victory.

    1. Destroy All Monsters Silver badge
      Trollface

      Re: Coverity ad

      > I wonder what there spin would have been if it had crashed into the sun?

      "Our software mines ENORMOUS AMOUNTS OF DELTA-V out of the VACUUM!"

  18. Anonymous Coward
    Facepalm

    I don't know about you guys, but I'm pretty sure my last 1000 lines of code have more than one defect...

    "Warning 1 of 682..."

  19. Anonymous Coward
    Anonymous Coward

    I for one would welcome....

    "it's not unusual to find approximately 1 defect for every thousand lines of code ", given the some of the developers I have to work with, 1 defect per 1000 lines of code would be a red letter day.

    Anonymous because ....do I really need to spell it out?

    1. Tony Haines
      Happy

      Re: I for one would welcome....

      I'm thinking that the easiest way of reducing the bug-introduction rate would be to put more statements on each line.

  20. Helloworld
    Facepalm

    Not just Coverity

    Other reports listed a whole collection of static analysis tools used, most of the major vendors, plus some NASA homegrown tools. Sourcing articles from Coverity press releases by any chance?

This topic is closed for new posts.

Other stories you might like