smartmake redux: harder, better, faster, stronger

Do you get frustrated about how long it takes to build Firefox after you’ve only made a small change to a single file? Have you heard the words “incremental build”, or tried to only build one or two directories but can’t figure out why your changes aren’t showing up? You are not alone. I released [...]

A Firefox regression hunter VM!

I am happy to announce the first public unveiling of my Fox in a Box project. The enthusiasm for my idea of putting together a dev VM was loud and clear in my last post, mainly from testers who expressed interest in hunting regressions at a more granular level. The README in the first link [...]

The Fast and the Furious: bzexport

If you’re a bzexport user, you’ll want to pull the latest revision. It’s recently been getting slower due to the number of http requests that need to be made (the tradeoff here is that it’s also been getting more correct), but I’ve pushed three patches that have reversed that downward slide into the molasses. By [...]

nsCOMPtr has never been so pretty

Jim Blandy announced his archer-mozilla pretty-printers for Spidermonkey late last year. I’ve used them a few times while working on some JS proxy bugs, and I’ve found them to be invaluable. So invaluable, in fact, that I’ve written a bunch of pretty-printers for some pain points outside of js/. If this prospect excites you so [...]

Cancelling builds from the console, now easier than ever!

The self-serve tools, specifically cancel.py has received some important usability upgrades at the urging of jst and ehsan. Now, simply running python cancel.py will be enough to get you going – you’ll be prompted for your username, password, branch and hg revision. The builds displayed also show their state (running, pending or complete) as well, [...]

Self-serve, now in bulk

Update: the tool is now easier to use and doesn’t require adding your password as an argument. See this post for more details. I’m a big fan of the self-serve tool that RelEng provided for people with LDAP access. When I can see a try build going bad, I can cancel all the remaining builds [...]

I’ve seen the future, brother: it is dynamic additions to the status bar that don’t block the main process.

You’re looking at a mind-bogglingly alpha Jetpack prototype running out of process. Yesterday was a black triangle moment for me, as I finally saw the culmination of 2.5 months of work to make the words “Gmail it” appear in the status bar. In this implementation, when a Jetpack tries to do something that doesn’t really [...]

Megazeux debugger on github

The official Megazeux repository recently moved to github, allowing me the opportunity to create my own fork and move my debugger work into a more public sphere. Accordingly, you can now visit my repo for all the most recent robotic debugging developments.

Cross-compiling with MinGW on Fedora

My goodness, I’m impressed. Having released the first iteration of my robotic debugger, I was informed that the fork()/exec() combo isn’t portable to Windows. Nobody volunteered any patches immediately, so I decided to read up on cross-compiling since I really dislike having to reboot into my other partition. Turns out that the entire MinGW stack [...]

Break me off a piece of that Megazeux debugger

Breaking news: breakpoints now exist in the debugger. There’s no indication that they exist until execution reaches them unless you look in the console window , but they’re there! Next up: differentiating between active line, current line, and line + breakpoint in the robot editor syntax highlighting. Apart from that, the debugger is now fairly [...]