status update

maintained by Chris Nelson <chrisn@statecollege.com>

Last Updated Sunday, October 17, 1999

This status update page is updated every weekend. To get updates and news throughout the week , I invite you to check out mozillaZine, a site I maintain devoted to Mozilla advocacy.

Previous Updates


Friends of the Tree

Ben Goodger <rgoodger@ihug.co.nz> is hard at work in his XUL lab, fixing more of the "Profile Manager" UI. see http://homepages.ihug.co.nz/~rgoodger/lizard/prfmgr.gif for what he's cooking up. - Seth Spitzer

Module Updates
XPToolkit
October 18
Submitted by Peter Trudelle <trudelle@netscape.com>

Highlights

  • Resolved 27 bugs in the last week, fixing 9 of them.  See our resolved bug list  for details.
Lowlights
Accomplishments
  1. Mike Pinkerton implemented native system colors on MacOS. (pinkerton)
  2. Mike also fixed an unreported bug where gecko wouldn't get mouse_exit event when mouse went into the grow box on MacOS. (pinkerton)
  3. Mike also removed style rules in skin.css that gave scrollbars different

  4. images on :hover to workaround a bug that causes the tree containing the
    scrollbar to reflow. (pinkerton
  5. Steve Dagley has been testing NSPR 3.5 for landing. (sdagley)
  6. Eric Vaughan landed the XPScrollbar integration.  (evaughan)
  7. David Hyatt defined 3 new new XUL tags for Webshell rearchitecture, documentation forthcoming, pending a volunteer to do the typing. (hyatt)
  8. Dave also landed the rearchitected command dispatcher.  It too needs a volunteer typist for documentation. (hyatt, saari)
Current work
  1. Daniel Matejka is 'this close' to fixing  bugs 9625 and 15856. (danm)
  2. Stuart Parmenter is processing 16018 and 16552. (pavlov)
  3. Chris Saari is Integrating his  whackage of focus with Hyatt's new code. Related bugs: 12051,10779, 13157.
Priorities
  1. Fix blocker bugs, improve performance size and speed, polish the UI, and in general make sure things don't suck for 'beta'. (all)
  2. Work on the chrome registry enhancements required for brutal

  3. sharing.  (hyatt)
  4. Test and land focus  changes. This is turning out to be challenging since focus is broken to begin with (knowing if  something broke requires more  than the checkin tests). (saari)
  5. Fix menu positioning problems. (saari)
  6. Content model profiling to find out why building menus is slow. (saari)
  7. nsIFile Mac implementation. (sdagley)
  8. Fix more painting problems. (pavlov)
Decisions
Issues
People
  • Mike Pinkerton is on vacation, returning 10/25.
PorkJockeys
October 15
Submitted by Peter Trudelle <trudelle@netscape.com>

Space team held brown bag, sparsely attended.  Will schedule another next week, with Pizza.   Identified 60-80 independent startup leaks using the Boehm collector.  Plan to examine leaks on shutdown next.  Tool should become available to all soon.  See performance page for details.

Problem: no time for the space team to fix all of the leaks that should be fixed.  They don't all know how to use the tools, which aren't ready for prime time anyway.

Proposal: Fix leaks by using nsCOMPtr.

Proposal: use the Boehm collector as a backstop to do conservative garbage collection on the 80+ leaks we don't have time to fix right now.  This would enable us to get some usable bits out sooner than we could if we had to fix them all.

Issues:

  1. May act like a crutch to keep us from paying enough attention to fixing leaks.
  2. May mask architectural problems that need fixing.
  3. Does it really work on Mac?
  4. Need to get it working as a diagnostic tool on all platforms. (wide agreement)
  5. Is it thread safe?
  6. Needs work to get it integrated into all builds.
  7. Bugs where in-use memory is collected can be hard to track down.
  8. Reference counting sucks, we should be moving toward GC anyway.
  9. Ref counting may suck, but it can be made to work.
  10. Is bloat from non-leaking data structures a bigger part of the space problem?
  11. Win32 port: Waterson?  Warren?  Jevering!
  12. Mac port: Beard.
  13. Linux port: AlecF - DONE!
Plan: Use Boehm collector as diagnostic tool on all platforms, but don't depend on it for GC backstop.

Warren is back on the space team!

Next week:

  1. Port to all three major platforms.
  2. Hook up bloaty output to Tinderbox.
  3. Host brown bag to ensure everyone knows how to use it.
  4. Create the 'Wall of Shame'.
Long term: Continue to provide tools, expose leaks, enable people to find and fix them.  Space team is not fixing leaks themselves.   no schedule beyond one week, need to make one.
Criteria for success:  Need a metric/benchmark (MTBF, bytes/hr, ?)


Time team
Brutal sharing: (content model sharing) Factoring content model out into delegates and prototypes.    Waterson will be looking at it, thinks it will be done by end of next week.  Need to create cache that is savvy to the chrome registry, knows dependencies, and be able to invalidate appropriately.
Hyatt's tasks: new caches - create map from chrome URL to prototype tree, map from chrome URL to overly URLs.

Make JS smarter, compile functions & hang them off a shared object.  Bind them to script context when creating the content model.

  1. Keep everything on one thread.
  2. Avoid running through the parser.
  3. Lazy sharing.
This might make startup slightly longer (Hyatt thinks otherwise), first window slightly more space.  Savings on subsequent windows.

Startup time (smfr):

Time:  Library loading 50% disk bound on first launch, 25-30% on subsequent launches.   Load 8 MB code.  Globbing together components doesn't look like a big win.  May be able to reorder code to proper page to minimize page faults.  Currently  hitting a third of  DLLs on startup, could we optimize so that we have to hit only 10%? Could we pull startup code out of those dlls and put it into a separate startup library?  Could strip dead classes, need a way to determine which factories never create an instance.    Not clear how much dead code there is, outside of widget (not using native widgets).



DP: Service Mgr and Component Mgr need to be merged.  requires moving 2 service mgr calls to component mgr.
Proposal:  Get rid of Service Mgr now?
Alecf: no, just add CompMgr APIs for ServMgr.
Beard: No, leave calls in Service Mgr & use QI to call them. More compatible with legacy code in plugins.

Plan: DP will just go do this, in a few days.  Incompatible API change to source code already in use (ex: Lawrence Livermore plugin, Adam Locke, Ed Burns), need to publicize wide and loud.  Need to respin IIDs so clients get incompatible interface errors, telling them to adjust and rebuild.



nsiFile & nsiDirectory vs nsFileSpec.  design review needed, need to schedule for conversion.  need nsiVolume too, one on Unix, multiple on Mac/Win.
Mail/News
October 15
Submitted by Phil Peterson <phil@netscape.com>

Highlights

  • Fixed 33 bugs last week including: FCC works again, vCards work again, Filing messages works again.
  • Upcoming work
    • davidmc - adding API logging to Mork, building test harness for Mork.
    • bienvenu - memory leaks in Address Book and Compose window
    • alecf - Porting Boehm GC to Linux, improving nsinstall and commercial build, nsIModule-izing prefs, 15685 Regression in prefs
    • jefft - 16538 Copying IMAP messages broken, 16368 Data loss saving attachments
    • rhp -  7518 Remove "Messenger 5.0" signature, 16367 Decide about attachment as link, working on security of message display area.
    • mscott - 16550 Reply is broken, 14928 URL dispatching
    • sspitzer - 16551 Mac profile migration stalled on blockers, 16259 Line endings in Mac prefs file, 1523015231 Prefs don't stick
    • hangas - 15127 Command update/dispatch, 16395 Convert mozilla to new skin
    • ducarroz - 13399 15001 15002 Addressing widget bugs
    • putterman on vacation, chuang on sabbatical
Lowlights
  • Volume of changes is down, which is potentially bad, but regressions are still a problem, which is worse. Maybe we should reconsider the code review policy, which mail/news engineers cite as increasing friction without increasing stability

Previous Updates