From: me@tobin.cc (Tobin C. Harding)
To: kernelnewbies@lists.kernelnewbies.org
Subject: dev process - reduce mistakes
Date: Wed, 19 Sep 2018 12:15:07 +1000 [thread overview]
Message-ID: <20180919021507.GA12180@eros> (raw)
In-Reply-To: <17185.1537315282@turing-police.cc.vt.edu>
On Tue, Sep 18, 2018 at 08:01:22PM -0400, valdis.kletnieks at vt.edu wrote:
> On Wed, 19 Sep 2018 09:35:36 +1000, "Tobin C. Harding" said:
> > Hi,
> >
> > I'm after some advice from those more experienced with [kernel]
> > development please.
> >
> > What systems do you have in place to help catch mistakes? In other
> > words; what processes do you use when coding and submitting patches to
> > help eliminate simple mistakes?
>
> Same way you verify it for any other large programming project.
>
> 'make clean && make && make install && shutdown -r now'
>
> 1) Verify no compile errors.
>
> 2) Verify no unexplained compile warnings. gcc *does* screw up and whine about
> things incorrectly on occasion because it doesn't know everything - "variable
> may be used uninitialized" is a famous one, usually emitted because there's
> program logic it can't see. For instance, code like:
>
> int oddball;
> for (i=0;i<foo;i++) {
> if (wombat > 5) oddball = 7;
> if (frobozz) quux = oddball;
> }
>
> and there's a reason known to programmer but not compiler
> that guarantees that wombat > 5 will always happen at least once
> before frobozz becomes true.
>
> But in general, unless you can *prove* the compiler is false-positive on
> a warning, fix the warning. ;)
>
> 2a) (optional) Install 'sparse' and do a 'make C=2' and see if that complains about
> anything that gcc didn't...
>
> 3) Test that it actually boots and does whatever your patch is supposed to do.
>
> See? And here you thought it was difficult :)
Thanks for your response Valdis (especially the wombat reference). I'm
talking though about more brain dead mistakes like:
- Muddling up changes between patches when rebasing
- Missing an instance of a series of the same changes (usually because
you did 100 of them and one slipped past when viewing the diff)
Things that don't make the compiler or static analysis complain. I made
an improvement on my method today and that was to review patch sets
[almost] ready for submission first thing in the day so your eyes/brain
is fresh.
These sort of 'soft' ideas I'm after please. I'm sure the old fellas
have a bunch of them that they do unconsciously but any that any one can
think of would be great to hear.
thanks,
Tobin.
next prev parent reply other threads:[~2018-09-19 2:15 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-09-18 23:35 dev process - reduce mistakes Tobin C. Harding
2018-09-19 0:01 ` valdis.kletnieks at vt.edu
2018-09-19 2:15 ` Tobin C. Harding [this message]
2018-09-19 2:01 ` Cindy-Sue Causey
2018-09-25 6:03 ` Tobin C. Harding
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180919021507.GA12180@eros \
--to=me@tobin.cc \
--cc=kernelnewbies@lists.kernelnewbies.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.