On 26/02/11 02:27, Dan McGee wrote:
I've noticed these things a lot in recent patches, so let the
discussion commence.

1) typedef-ed structs. This is just a "copy the rest of them" habit,
but I really feel we should stop doing this, only typedef-ing when we
are making a public-facing type that we don't want to expose the
internal contents of. Everything else should remain a struct type, and
referred to as such, no typedef and no confusion that the fields are
accessible.

Seems reasonable.

2) return(value) style. This is a rule set in stone in the coding
style doc but people are continuously breaking it. To be fair, it is
silly, but mixing styles sucks way worse. I propose switching this,
*BUT* all current patches need to follow current style, and if we
switch, it should happen post-3.5.0 and in one commit, not this
piecemeal junk.

Agreed, a single patch post 3.5 would be good.

3) C99. Several patches are introducing things that go further down
this road.I don't think they should all be avoided but I'm not sure
GCC 3.X (Cygwin is still on this?) supports all of these.

I believe Cygwin's gcc is gcc3.4 by default, but they do provide gcc4 (4.5) packages. Has anyone attempted to compile pacman using gcc-3.x lately?

    * Variable declarations not at the start of a block. I'm not a huge
fan of this, as I think having them at the start of the block helps
clarify scope a lot better.

Agreed.

    * Dynamically sized array declarations, e.g. data[numcpus]. I think
this needs to be avoided, unfortunately, but it isn't hard to just use
MALLOC/FREE in this case.
    * C99 structure initialization (saw it in the parallelize patches).

I'm not sure of the relative advantages/disadvantages of these so no comment from me other than I doubt I would use C99 structure initialization.

Allan

Reply via email to