mvl asked on #developers what it took to get ccache working with Mozilla. It's pretty easy, so I thought I'd share my setup here:
My Mozilla trees are under /builds, so I configured ccache using these environment variables:
export CCACHE_DIR=/builds/.ccache
export CCACHE_HARDLINK=1
The hardlinks option is really great because it avoid disk copies when the target object file lives on the same partition as the cache.
Next, you need to create symlinks for gcc and c++ (I also created symlinks for cc and g++ to be complete). I put these in ~/bin so that they would override the defaults in /usr/bin. You may need to put them elsewhere or adjust your $PATH accordingly.
Finally, I ran ccache with the following options:
$ ccache -M 2G
This configured ccache to use up to 2 gigibytes of storage. (I don't know, and I don't really care, whether its actually 2 GiB or 2 GB -- either way, it's large enough for my needs!)
And, that's it. You don't have to clobber your Mozilla trees to start using ccache. It's interesting to run "ccache -s" periodically to see the statistics of the cache.
If you compile C or C++ code regularly, then you absolutely will love ccache... or maybe you're already using it!
Thanks to shaver for great tip :-)
There was a request for D-XPCOM (i.e., creating and invoking methods on XPCOM objects in a remote process) on n.p.m.xpcom, and it got me thinking. We have a working IPC mechanism, and we have a typelib system, so probably D-XPCOM would be pretty easy to create, right?
A little over-the-weekend hacking, and I ended up with something that works reasonably well. It has some issues (e.g., no support for arrays yet), but for the most part it works.
Now, to make this useful, the "listener" component that allows remote processes to connect to Mozilla needs to be activated at start time. This means that we'd need to pay some overhead cost whether this feature is used or not. That's of course a bit troubling since that sort of thing usually spells b l o a t. Perhaps something that leverages Xremote/DDE to trigger something in Mozilla that bootstraps the IPC listener would make the most sense. Dunno.
FTP upload UI (bug 24867) made its way onto the 1.7 branch today in time for the upcoming 1.7rc2. This landing should go more smoothly than the trunk landing... I hope ;-) Thanks goes to biesi, neil, bryner, and dantifer for helping make this patch happen.