[gPXE] DHCP Client ID in gPXE 1.0.0?

Michael Brown mbrown at fensystems.co.uk
Fri Mar 19 15:08:30 EDT 2010


On Thursday 18 March 2010 07:27:52 Marty Connor wrote:
> > I absolutely, absolutely disagree on this.  The problem with #ifdef
> > proliferation is never any one patch.  Each individual #ifdef is
> > generally quite harmless in its own right.  The problem is that after a
> > mere 32 harmless individual #ifdef patches, each of which is fine when
> > judged individually on its own merits, you suddenly have 4 billion build
> > combinations to test.
>
> I understand (and generally approve of) your view on this, but design
> purity is only useful to a point.
>
> We may have some of the most subjectively beautiful code in the world,
> but I believe we also must balance this design aesthetic with respect
> for the needs of the people who use our code to do real-life things.
>
> Automated testing is not a solution to all functional ills, and testing
> all possible build combinations does not completely ensure that software
> will function properly in real-world environments.  It certainly can be
> useful, but should not, in my view, be too heavily relied upon.  We have
> existed 15 years without such exhaustive testing.

And for the vast majority of those 15 years, almost no OEMs were shipping 
Etherboot.  You yourself said on this topic, shortly before we launched 
gPXE, "Would you bet everything on Etherboot?  I wouldn't".  We're no longer 
in that position.

This is not a question of code aesthetics, and nor is it particularly relevant 
to automated testing; it's a very simple, practical matter of code 
maintainability.  If you disagree with this, try going back to the 
#ifdef-riddled Etherboot 5.4 codebase and adding a major core feature such as 
iSCSI boot without breaking anything.  I'll bet US$1000 that you won't be 
able to.  Feel free to prove me wrong if you can.

Michael


More information about the gPXE mailing list