Recent blog entries for scc

Back from two weeks of vacation. Now we're working on hardening APIs (start reading here, but also, see news:netscape.public.mozilla.porkjockeys in general).

Simon Fraser has done some profiling (start reading here) that suggests the old implementations strategy for `chunk'- allocating strings may do more harm than good. Current thinking is to make people do the optimization themselves with SetCapacity, and otherwise always allocate strings to be exactly the right length. This is already mitigated by nsPromiseConcatenation which allows you to add up hunks of things with only a single allocation. It could be further mitigated by a policy of `chunk'-allocating only in the case where someone appends a single character and the string had to grow anyway. This would catch callers who build strings a character at a time, and don't call SetCapacity themselves, e.g., the html parser (in places). I've asked him to add this information to the uber-bug we have for profiling, fixing, and deploying the best string solutions.

I'm going to be setting up monthly Mozilla face-to-face `tech' sessions where experts on particular modules distribute their expertise. They will be like our current brown bags, except longer (maybe 4-5 hours), held Friday afternoons or evenings so that people can come from far away without disturbing their schedules, (cheaply) catered (e.g., pizzas maybe?), and more in-depth. Each session will cover a specific area, e.g., layout one month, XUL on month, etc., and be hosted by the 2-4 engineers best able to explain the details and answer any question. Knowledge hoarding is bad; knowledge sharing is good.

I'm preparing a session for MacHack on C++ IOStreams and locales. We'll probably have a Mozilla session as well. Mike Pinkerton or Mike and I together would like to do a session on XUL and skinnability. I don't think I'm speaking at the O'Reilly conference, but I am planning to attend.

I want to host a wiki web like the Portland Pattern Repository, Lego-Robotics Wiki, or any number of other wiki webs. I'd like to tie it in with the Doxygen reference over the mozilla source to make some comments---both expository and active (e.g., a comment noting an API as frozen automatically stopping further CVS checkin of that IDL file)---part of the web of understanding.

At last. The string stuff is all turned on. I activated it Monday night (24 hours ago). Bloat went down by 4M. That's 16%. :-) I think most of this is from the fact that nsPromiseConcatenation is a lot more space efficient than the old nsSubsumeString. The tree was busy today, but not a hiccup for strings. That's good. I'm happy. Now we have to start deploying the alternate implementations.

Today was my first day as a full-time employee of Life is good; but I've been in Mountain View too long. It's time to head back home to Michigan for a little rest. Getting to M16 has been a lot of effort for everybody. There's plenty of bug-fixing to do, but I need a little rest after more than 3 months on-site.

I was surprised today to find that my father just opened an Advogato account. Cool!

The new string stuff is building and running (passes all the pre-checkin tests) on Win32, Mac, and Linux. I don't see any errors on the Solaris build, but I'll have to wait for confirmation. I'm tempted to turn it on right this instant, but I'm gonna wait anyway. You can never be sure :-)

Chris Waterson has been a huge help getting this stuff working with every compiler. No question: gcc- sucks ass. Thank heavens for autoconf. The challenge comes in writing an autoconf test that tests for exactly the bad behavior a given compiler has.


Hash: SHA1

Is this too wierd?

-----BEGIN PGP SIGNATURE----- Version: PGP Personal Privacy 6.5.2

iQA/AwUBORkuofGmojMuVn+ fEQKgWwCgsfIn0obBlXDkSIrFk51w8AEbZoAAnRbn f+HKvwf2mWnjbfN5aF56OYrp =uup1 -----END PGP SIGNATURE-----

My first diary entry. Just discovered this site while cruising around people's home pages; in this case blizzard's. Committing to a diary sounds challenging.

My primary focus right now is getting rid of the old string cruft in Mozilla, moving to the new factored scheme first described in this bug, and getting some documentation out on how to exploit the new readable and writable interfaces, and the various implementations of them. Gotta get some doc out right away. "Worse is better." as Brendan Eich would say. How come he doesn't have an account here?

I wonder if there's any reasonable way for me to PGP sign these diary entries? Posting without signing feels very weird to me.

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!