{"id":1908,"date":"2010-05-05T14:17:10","date_gmt":"2010-05-05T04:17:10","guid":{"rendered":"http:\/\/www.flamingspork.com\/blog\/?p=1908"},"modified":"2014-10-08T09:16:07","modified_gmt":"2014-10-07T23:16:07","slug":"haildb-hudson-compiler-warnings-and-cppcheck","status":"publish","type":"post","link":"https:\/\/www.flamingspork.com\/blog\/2010\/05\/05\/haildb-hudson-compiler-warnings-and-cppcheck\/","title":{"rendered":"HailDB, Hudson, compiler warnings and cppcheck"},"content":{"rendered":"<p>I&#8217;ve integrated <a href=\"http:\/\/www.haildb.com\">HailDB<\/a> into our <a href=\"http:\/\/hudson-ci.org\/\">Hudson<\/a> setup (haildb-trunk on Hudson). I&#8217;ve also made sure that Hudson is tracking the compiler warnings. We&#8217;ve enabled more compiler warnings than InnoDB has traditionally been compiled with &#8211; this means we&#8217;ve started off with over 4,300 compiler warnings! Most of those are not going to be anything remotely harmful &#8211; however, we often find that it&#8217;s 1 in 1000 that is a real bug. I&#8217;ve managed to get it down to about 1,700 at the moment (removing a lot of harmless ones).<\/p>\n<p>I&#8217;ve also enabled a <a href=\"http:\/\/sourceforge.net\/apps\/mediawiki\/cppcheck\/index.php?title=Main_Page\">cppcheck<\/a> run on it. Cppcheck is a static analysis tool for C\/C++. We&#8217;ve also enabled it for <a href=\"http:\/\/www.drizzle.org\">Drizzle<\/a> (see drizzle-build-cppcheck on Hudson). When we enabled it for Drizzle, we immediately found three real bugs! There is also a coding style checker which we&#8217;ve also enabled on both projects. So far, cppcheck has not found any real bugs in HailDB, just some style warnings.<\/p>\n<p>So, I encourage you to try cppcheck if you&#8217;re writing C\/C++.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I&#8217;ve integrated HailDB into our Hudson setup (haildb-trunk on Hudson). I&#8217;ve also made sure that Hudson is tracking the compiler warnings. We&#8217;ve enabled more compiler warnings than InnoDB has traditionally been compiled with &#8211; this means we&#8217;ve started off with &hellip; <a href=\"https:\/\/www.flamingspork.com\/blog\/2010\/05\/05\/haildb-hudson-compiler-warnings-and-cppcheck\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[75],"tags":[298,70,287,297,257],"class_list":["post-1908","post","type-post","status-publish","format-standard","hentry","category-drizzle-work-et-al","tag-cppcheck","tag-drizzle","tag-haildb","tag-hudson","tag-innodb"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p5a6n8-uM","jetpack-related-posts":[{"id":2136,"url":"https:\/\/www.flamingspork.com\/blog\/2010\/09\/23\/warnings-are-now-actual-problems\/","url_meta":{"origin":1908,"position":0},"title":"Warnings are now actual problems","author":"Stewart Smith","date":"2010-09-23","format":false,"excerpt":"Yesterday, I reached a happy milestone in HailDB development. All compiler warnings left in the api\/ directory (the public interface to the database engine) are now either probable\/possible bugs (that we need to look at closely) or are warnings due to unfinished code (that we should finish). There's still a\u2026","rel":"","context":"In &quot;code&quot;","block_context":{"text":"code","link":"https:\/\/www.flamingspork.com\/blog\/category\/code\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":2099,"url":"https:\/\/www.flamingspork.com\/blog\/2010\/08\/03\/haildb-2-0-0-released\/","url_meta":{"origin":1908,"position":1},"title":"HailDB 2.0.0 released!","author":"Stewart Smith","date":"2010-08-03","format":false,"excerpt":"(Reposted from the HailDB Blog. See also the\u00c2\u00a0announcement\u00c2\u00a0on the Drizzle Blog.) We've made our first HailDB release! We've decided to make this a very conservative release. Fixing some minor bugs, getting a lot of compiler warnings fixed and start to make the name change in the source from Embedded InnoDB\u2026","rel":"","context":"In &quot;drizzle&quot;","block_context":{"text":"drizzle","link":"https:\/\/www.flamingspork.com\/blog\/category\/work-et-al\/drizzle-work-et-al\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":2155,"url":"https:\/\/www.flamingspork.com\/blog\/2010\/10\/14\/second-drizzle-beta-and-innodb-update\/","url_meta":{"origin":1908,"position":2},"title":"Second Drizzle Beta (and InnoDB update)","author":"Stewart Smith","date":"2010-10-14","format":false,"excerpt":"We just released the latest Drizzle tarball (2010-10-11 milestone). There are a whole bunch of bug fixes, but there are two things that are interesting from a storage engine point of view: The Innobase plugin is now based on innodb_plugin 1.0.6 The embedded_innodb engine is now named HailDB and requires\u2026","rel":"","context":"In &quot;code&quot;","block_context":{"text":"code","link":"https:\/\/www.flamingspork.com\/blog\/category\/code\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1894,"url":"https:\/\/www.flamingspork.com\/blog\/2010\/04\/16\/announcing-haildb\/","url_meta":{"origin":1908,"position":3},"title":"Announcing HailDB","author":"Stewart Smith","date":"2010-04-16","format":false,"excerpt":"I just announced our continuation of the Embedded InnoDB project under the name of HailDB. Check out the announcement over at http:\/\/www.haildb.com\/. HailDB is a relational database that is embeddable within applications. You embed\u00c2\u00a0HailDB by linking to a shared library and calling a clean and simple API.\u00c2\u00a0HailDB is a continuation\u2026","rel":"","context":"In &quot;drizzle&quot;","block_context":{"text":"drizzle","link":"https:\/\/www.flamingspork.com\/blog\/category\/work-et-al\/drizzle-work-et-al\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":2323,"url":"https:\/\/www.flamingspork.com\/blog\/2011\/03\/17\/things-ive-done-in-drizzle\/","url_meta":{"origin":1908,"position":4},"title":"Things I&#8217;ve done in Drizzle","author":"Stewart Smith","date":"2011-03-17","format":false,"excerpt":"When writing my Dropping ACID: Eating Data in a Web 2.0 Cloud World talk for LCA2011 I came to the realisation that I had forgotten a lot of the things I had worked on in MySQL and MySQL Cluster. So, as a bit of a retrospective as part of the\u2026","rel":"","context":"In &quot;drizzle&quot;","block_context":{"text":"drizzle","link":"https:\/\/www.flamingspork.com\/blog\/category\/work-et-al\/drizzle-work-et-al\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":2330,"url":"https:\/\/www.flamingspork.com\/blog\/2011\/03\/24\/drizzle-online-backup-with-xtrabackup\/","url_meta":{"origin":1908,"position":5},"title":"Drizzle online backup with xtrabackup","author":"Stewart Smith","date":"2011-03-24","format":false,"excerpt":"For backups, historically in the MySQL world you've had mysqldump (a SQL dump, means on restore you have to rebuild indexes), InnoDB Hot Backup (proprietary, but takes a copy of the InnoDB data files, so restore is much quicker), LVM snapshots (various scripts exist, does have larger IO impact, requires\u2026","rel":"","context":"In &quot;drizzle&quot;","block_context":{"text":"drizzle","link":"https:\/\/www.flamingspork.com\/blog\/category\/work-et-al\/drizzle-work-et-al\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/posts\/1908","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/comments?post=1908"}],"version-history":[{"count":5,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/posts\/1908\/revisions"}],"predecessor-version":[{"id":3838,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/posts\/1908\/revisions\/3838"}],"wp:attachment":[{"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/media?parent=1908"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/categories?post=1908"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/tags?post=1908"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}