Category Archives: Uncategorized

Underscores

One of the funny little benefits of switching the Mozilla Developer Center from MediaWiki to Deki is that page names can contain actual underscores. The big headline on the JS_EvaluateScript page always used to say “JS EvaluateScript”.
Well, not anymore! Since Deki has an HTTP API, I was able to write a Python script [...]

Push to try

Thanks to Ben Hearsum and Ted Mielczarek, the Try server has a cool new feature: you can now try out some changes without manually creating and uploading a patch. Just hg commit or hg qrefresh your work, and then
hg push -f ssh://hg.mozilla.org/try/
The Try server will kick off Linux, Windows, and [...]

Mercurial, and other monsters

Brad Lassey recently vented some understandable frustration with Mercurial, the new distributed version control system we’re using for Mozilla 2 development.
I sympathize with Brad, especially because almost all of the comments seem to be along the lines of “No no, you’re mistaken, Mercurial makes things easier, not harder” or “Well, you should have done X,” [...]

Improving malloc() locality

This is cool (if you care how malloc() works, always a big if), but it requires a lot of background.
Background
One very common way to implement malloc() is to use size classes and freelists. If you already know all about this, skip this section.
Here’s a sample malloc() that uses size classes and freelists. (Note [...]

Mozilla 2 status post

I just posted to mozilla.dev.platform about Mozilla 2 platform changes. In short: Mercurial is coming, Tamarin is coming, and we’re going to give garbage collection a chance to prove itself.

Help us free the technical docs from www.mozilla.org

Want to help the Mozilla project? Here’s something anyone with a web browser can help with.
A lot of technical documents still live on www.mozilla.org. This is bad for a lot of reasons, but fundamentally it’s just the wrong place for them. developer.mozilla.org is their proper home. The pages will be much [...]

Conservative stack scanning 101

Maybe you’re curious about how the MMgc garbage collector works. Here’s my rambling attempt to explain it on IRC this morning (edited for clarity and layout).
(Note: The MMgc documentation is another good place to start, if you already know all about the C++ stack and heap.)
peter: this “scanning the C stack” is a mystery [...]

Stage 0 home stretch

For the past 4 weeks or so, Ed Lee and I have been incrementally nudging the actionmonkey repository toward a state where we can switch over from SpiderMonkey’s existing memory management routines to Tamarin’s memory management library, MMgc.
Today some key patches for ActionMonkey Stage 0 were posted on bug 391211. These patches delete the [...]

Building ActionMonkey

ActionMonkey dwells on the frontier of Mozilla. Its source code lives in a Mercurial repository, not CVS. There is no Tinderbox and no Bonsai. Worse, the usual build instructions don’t quite work in ActionMonkey-land, and until now, just building it has involved a lot of guesswork.
Today, some kind-hearted genius updated the ActionMonkey [...]

Stage 0

Stage 0 of the ActionMonkey project is underway. Read all about it. Mardak and I are replacing SpiderMonkey’s garbage collector with the new Tamarin garbage collector, which is called MMgc (for MacroMedia garbage collector—nobody ever renames anything :).
We’ve spent the past month almost entirely in preparation for this day. I’ve read a [...]