2006-08-24
 
when the crowds are gone
HELSINKI - Donderdagavond.

Dinsdag onderging ik een dagje 'team building'. En inderdaad, we gingen karten en eten. Maar natuurlijk was er ook nog tijd om wat PowerPoints te bekijken (de discussie duurt voort over de voors en tegens van Powerpoint...). Vlak voor loodzware Russische maaltijd wist ik te ontkomen - mijn 'zwager' Mark was met een collega op bezoek in Helsinki - en samen (incl. AC) aten we bij Kuurna. Daar waar de keuze beperkt is - en de kwaliteit erg goed.

Woensdag verraste Ann-Christin mij met pannenkoeken. Deze oer-Hollandsche lekkernij wordt in Duitsland gegeten met... appelmoes. Huh?! Gelukkig had ik ook stroop. En vandaag trakteerde ik mijzelf op de vla die ik van mijn zuster (via Mark) gekregen had. Vla. 121.000 mensen emigreerden in 2005 uit Nederland... maar hoeveel zouden dat er zijn als vla ook in het buitenland verkrijgbaar zou zijn?

duh

De volgende paragrafen zijn wellicht 'duh'. Maar ik legde het vandaag uit aan een ontwikkelaar.

Het is goed om code te compileren met -Wall -Werror. De -Wall zorgt ervoor dat gcc nogal muggenzifterig is met z'n waarschuwingen. En -Werror zorgt ervoor dat elke waarschuwing als een foutmelding wordt beschouwd - oftewel: de compilatie zal eindigen met een foutmelding zolang de code nog niet helemaal 'schoon' is.

Ik vind vaak bugs in een vroegtijdig stadium in eigen en andermans software. Ik zie nogal eens code die aanneemt dat een int en een pointer beide even groot zijn (32 bit). Op mijn AMD-64 systeem is dat echter niet zo; ints zijn 32 bits, maar pointers zijn 64 bits. Allerlei lastig-te-vinden bugs kunnen zo ontstaan... maar gcc waarschuwt me. Veel van de waarschuwing kunnen via 'symptoombestrijding' opgelost worden; belangrijk is natuurlijk om het echte probleem op te lossen. Code schrijven in C/C++ is niet eenvoudig!

Kortom: het is een goed idee om -Wall -Werror te gebruiken. Het is echter geen goed idee die in het standaard buildproces op te nemen. Met name -Werror en met name als het gaat om open-source software. Verschillende versies van gcc geven namelijk verschillende waarschuwingen, en soms onterecht. En het is vervelend waneer iemand de software niet kan bouwen, alleen omdat gcc mekkert. Ergo, laat die Makefile.am met rust, maar configureer tijdens het ontwikkelen met:

$ CFLAGS="-Wall -Werror" ./configure
(er zijn nog meer warnings, info gcc).

0 Reacties:

Een reactie plaatsen


Emacs, the UberEditor Powered by Blogger