Older blog entries for timj (starting at number 3)

25.06.2010 Using distcheck with ccache + colorgcc

Waiting for unit compilations to finish during development, particularly with G++ and heavy optimizations can be quite time consuming. A run of make distcheck escalates the problem, because all files during a dist need to be rebuilt. Small errors triggered late in the dist build might require several time consuming restarts of the build process.

With ccache, a tool exists that can majorly speed up this process. I’ve been using it successfully for several years now. A related development aid is colorgcc which is a colorization wrapper for gcc. This also is under heavy use for my development. It turns out that some tweaks are needed to get it working together with ccache though.

Here’s how to use the tools in combination to speed up regular project builds and also distcheck:

  • Get and install ccache.
    Wrapping compiler invocations with ccache will cache recompilations of the same units. ccache needs a directory to store the cache contents; this defaults to ~/.ccache which might not be the best choice for network homes or encrypted homes. Using /tmp is also suboptimal since it is usually cleaned upon reboots. So I’d recommend to put this into your .bashrc:
    export CCACHE_DIR="/var/tmp/ccache-$USER"
    

    This will retain the compiler cache across reboots in /var/tmp.

  • Get and install colorgcc.
    Then some patching is in order, especially if you use multiple versions of gcc and need ccache integration. Based on colorgcc from Ubuntu-9.10, I’ve prepared a patch for this (it has been sent to Jamie Moyers some while ago) to be found here: http://testbit.eu/~timj/blogstuff/xyv-colorgcc.diff

    To briefly summarize its effects:

    • This allows colorgcc to be used through a bunch of links, e.g. by creating:
      ln -s colorgcc colorg++
      ln -s colorgcc colorgcc-4.4
      ln -s colorgcc colorg++-4.4
      

      Invoking the script through those links will cause it to strip the ‘^color’ prefix and invoke the respective compiler.

    • Using this patch, /usr/bin/ccache will be used to wrap the compiler invocation if it exists.
    • The patch also contains some UTF-8 quotation fixes needed for gcc-4.4 support.
    • Finally, the patch enables colorgcc to correctly deal with g++ error message that span multiple lines (e.g. template error messages).
  • Use colorgcc as a compiler replacement for project builds:
    rm -f config.cache
    ./autogen.sh CC=colorgcc-4.4 CXX=colorg++-4.4
    nice make all -j4
    
  • Use colorgcc as a compiler replacement for distcheck builds:
    CC=colorgcc CXX=colorg++ nice make all distcheck
    

Finally, you might want to tweak the colors of colorgcc’s output which can be adjusted in /etc/colorgcc/colorgccrc. FYI, here’s the color setup I prefer to use in a black terminal window:

  srcColor:             bold white
  introColor:           bold magenta
  warningFileNameColor: cyan
  warningNumberColor:   bold cyan
  warningMessageColor:  yellow
  errorFileNameColor:   cyan
  errorNumberColor:     bold cyan
  errorMessageColor:    bold yellow

UPDATE: Fixed ccache default dir thanks to anonymous.

flattr this!

Syndicated 2010-06-25 17:17:16 from Tim Janik

23.04.2010 Doxer release 10.04.0 available

Doxer 10.04.0 is available for download:

    http://rapicorn.org/dist/doxer/doxer-10.04.0.tar.bz2

Doxer is a documentation tool initiated originally for generating source code documentation. This is the first public release of Doxer as a separate package (it has been included in other packages previously).

This release contains a wiki markup parser, a corresponding HTML generator, and a Drupal input format module. The markup syntax is designed to cover the feature set required to write source code documentation and general purpose documents. The parser and HTML generator have a strong focus on robustness to support the full range of user sophistication found on general purpose websites. An extensive test suite accompanies the development.

    Homepage:           http://rapicorn.org/doxer.html
    Download:           http://rapicorn.org/dist/doxer/
    Wiki Markup:        http://rapicorn.org/DoxerMarkup.html
    Feedback:           http://rapicorn.org/mailman/listinfo/rapicorn-list

User visible features in Doxer 10.04.0:

  • Added Doxer wiki markup parser.
  • Added docs/DoxerMarkup.txt to describe the markup.
  • Added HTML 4.01 Transitional generator for wiki markup.
  • Added extensive Doxer wiki markup test suite.
  • Wrapped the wiki markup parser as Drupal 6 input format module.
  • Rewrote documentation extractor (Doxyscan).
  • Started new Doxyscan Html documentation generator.

flattr this!

Syndicated 2010-04-23 00:31:18 from Tim Janik

14.09.2009 OSiM 2009

Together with Martyn Russell, Carlos Garnacho and Kristian Rietveld, I’m attending OSiM this week. None of us has been here before, so we’re quite curious about the conference and will keep our eyes open.
My schedule still has some holes, so if you would like a chat at the conference, drop me a line and we can arrange a meeting.

PS: Yes, I’ve seen Alex recent work and will take a look once I’m back from the conference.

flattr this!

Syndicated 2009-09-15 07:50:10 from Tim Janik

09.04.2009 Gtk+ 3 Roadmap Participation

Lots and lots of things have been going on around me lately, but that’s best left for other posts if I ever get around to do them. ;)

A few months ago, I’ve sat down with quite some help by others and collected the input and feedback around Gtk+ 3.0. The outcome of that was a first Gtk+ 3 Roadmap draft that was sent around to the core team.

After some recent poking, the draft has now been posted on the Gtk+ development list, here is the Gtk+ 3 Roadmap Draft Announcement.

I’d like to thank everyone who participated in the fruitful discussions leading to this and particularly Stormy and Dave Neary for their suggestions on the post-draft process.

Cody Russell has kindly volunteered to wikify the roadmap, so future alterations will be easy. I much appreciate his initiative, especially because I can’t foresee to have much time around the roadmap personally in the near future.

The roadmap draft is best discussed on the mailing list and provided online here: Gtk+ 3 Roadmap Draft

This roadmap is also a call for participation to all developers and contributors.

If you have an interest in Gtk+ 3, this is the time to participate in constructive discussions around the roadmap or sign up for one of the many development tasks.

I sincerely hope this is helpful for everyone.

Es ist nicht deine Schuld daß die Welt ist wie sie ist.Es wär’ nur deine Schuld wenn sie so bleibt.
– Die Ärzte

flattr this!

Syndicated 2009-04-09 00:41:51 from Tim Janik

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!