The Mozilla
Organization
Our Mission
Who We Are
Getting Involved
Community
Editorials
What's New
Development
Roadmap
Module Owners
Blue Sky
Projects
Status
Tools
Products
Source Code
Binaries
Documentation
License Terms
Bug Reports
Search
Feedback



JUMP:

The Jumpstart Unix Mozilla Project

By Alec Flett
Feedback and discussion on netscape.public.mozilla.unix
Updated: 2-Nov-1998


Some history about NGLayout and Unix: Before October 26th, 1998, the NGLayout team was a small set of developers working almost entirely on a Win32 product. There was some support for Unix, but the reliability of the builds varied greatly from day to day. The Unix Front End (XFE) developers at Netscape were more focused on their current projects (Communicator 4.5 and the former Mozilla project) so Unix support was completely dependent on a few kind members of the NGLayout team who would keep the build alive whenever they got a chance. At the time, Motif was the expected toolkit that we would use to develop the Unix NGLayout component.

The world has changed. We are now building an entire product around the NGLayout project. XFE developers are now all focused on getting raptor up and running. We have decided that GTK is a more appropriate toolkit for the job we are trying to accomplish, and the role of the Front End has changed greatly.

Enter JUMP: The Jumpstart Unix Mozilla Project. Here is a list of items that need to be accomplished, understood or documented to make NGLayout accessible to all Unix developers. This is not a list of new features to add or improvements to make, it is what needs to be done to bring NGLayout/Mozilla on par with other free source development efforts.

  1. Build system - The Unix build system on NGLayout is overly complicated and cumbersome. We would like to switch to autoconf.
  2. XPFE - We need to get the XPFE using GTK on Unix - it currently uses Motif.
    • GTK Widgets
    • GTK gfx system
    • Startup
    • Event Loop
    • Fix remote display
  3. Netlib - this has been changed for NGLayout to support multithreaded applications.
    • Check on Async. DNS - We don't even know the status of Asynchronous DNS in the new NetLib. Does it work? If it does work, is there a better way of doing this?
    • Other hacks that we needed pre-NGLayout - FE_SetReadPoll() hacks, etc. Do we still need them?
  4. Other issues
    • Motif/AWT/Threading issues - Motif is not thread safe and any OJI Java VM probably uses Motif. Is this issue something for JVM vendors to worry about, or do we need to include some kind of support? Similar problems have been tackled in the past.
    • GTK Threading issues - GTK is not thread safe. XPFE currently runs on only one thread, but there is talk of making separate threads for each window. Should someone make GTK thread-safe or should we design our code so that we do not rely on this behavior?
  5. Looking forward
    • Move to feature specific #ifdefs rather than OS/Version specific #ifdefs. There are many places where we use conventions like #ifdef SOLARIS when what we really want is #ifdef HAVE_UNSIGNED_BITYPES or something. Autoconf gives us these feature specific macros for free. Let's use them.
    • Purify - we need to start purifying early. The old codebase had plenty of very small leaks that were almost always ignored by developers because there were after bigger problems. Purify targets should be added to Makefiles.
    • gprof - we should also start profiling our code as early as possible. It will be easier to fix bottlenecks in the future if the codebase is already somewhat streamlined. Profile targets should be added to Makefiles. We may also need djw's gprof hack.
    • Warnings - we should start cleaning up warnings now so that developers don't simply give up on fixing warnings because there are so many. We should add something for -pedantic and/or -pedantic-errors to catch more warnings.



Copyright © 1998 The Mozilla Organization.