9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
From: Andy Newman <atrn@zeta.org.au>
To: 9fans@cse.psu.edu
Subject: Re: [9fans] Gecko based web browser
Date: Wed, 19 Jul 2000 15:24:09 +0000	[thread overview]
Message-ID: <slrn8nbg85.f5m.atrn@juju.bsn> (raw)
In-Reply-To: <EO6d5.345524$MB.5507520@news6.giganews.com>

Christopher Browne wrote:
>Those two "code bases" represent a _mite_ more than 250k of code, and
>I suspect that the Plan 9 port would be, um, challenging...

(Some sanity at last!)

I've been "inside" Mozilla quite a deal and I can guarantee,
1000%, that any port is a decidely non-trivial undertaking.
We're talking about millions of lines of code here guys (my build
of it on FreeBSD takes up 1.5GB of disk and I leave out half of
the bloody thing). And there's pretty much zero documentation on
its internals. Most of the comments from people here seem to indicate
a very casual acquaintance with Mozilla, either that or a naive belief
in the project hype. So here's some tips on a Plan 9 Mozilla port from
some one who's been in the guts of the program in question...

First thing you need to do is write (or port :) a half decent C++
compiler.  Thankfully Mozilla doesn't ask a lot of the library, it
has its own (which needs porting).  But there's no cheating and
going inventing some Plan 9 C++. It has to compile Mozilla which
uses mosts of the bits and pieces C++ has to offer. So when you've
written or ported your C++ compiler you can think about just getting
the build system functional This may need Perl and bash ports and it
may be better and easier rewriting the whole thing rather than mash it
(high brucee) into Plan 9.  The next week can be spent getting the code
compiled without errors.  There's a few thousand souce files and associated
headers, oh, and the IDL compiler will need to be made to work before
compiling anything, I guess I just saw that as part of the build system.
Linking anything correctly is a bonus at this stage. The lack of shared
objects and ld.so may present some issues with the component system
and needs a good looking at. But just getting XPCON going will take
some doing and there's a little assembler in there which will depend
on the compiler's implementation of virtual functions. Needs a good
testing session.  The remaining platform specific stuff might be quite
easy compared to the previous load of work.  An implementation of a
graphics backend, the portable widgets replace the need for any Plan
9 GUI toolkit to be invented, some sort of embedding shell needs to
be implemented (a la the gtk_moz_embed the 250K program uses - the
Mozilla shared libs will add many MBs to the real code and its
run-time memory footprint measures in the tens to hundreds of MB
depending on page complexity). I've left out loads of things that
need porting considerations - JavaScript, the thread library, various
codecs etc...

So get going people, bit of work to do.


  reply	other threads:[~2000-07-19 15:24 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2000-07-18 19:03 Stephen Harris
2000-07-18 19:17 ` Andrey Mirtchovski
2000-07-18 23:48   ` Randolph Fritz
2000-07-19  5:40     ` Randolph Fritz
2000-07-19  9:26   ` Michael Dingler
2000-07-19 15:22   ` Douglas A. Gwyn
2000-07-19 16:28     ` Andrey Mirtchovski
2000-07-19 16:47       ` Randolph Fritz
2000-07-19 22:52       ` sah
2000-07-20  1:16         ` James A. Robinson
2000-07-20  3:08         ` Boyd Roberts
2000-07-26  8:42     ` Ralph Corderoy
2000-07-19  9:27 ` Christopher Browne
2000-07-19 15:24   ` Andy Newman [this message]
2000-07-18 20:23 miller
2000-07-18 22:07 ` Randolph Fritz
2000-07-18 22:33 rob pike
2000-07-18 22:59 ` Howard Trickey
2000-07-21  8:34 ` Alt
2000-07-25 15:07   ` Douglas A. Gwyn
2000-07-18 23:02 forsyth
2000-07-18 22:30 ` Frank Gleason
2000-07-19  0:17   ` Randolph Fritz
2000-07-19  0:01     ` Frank Gleason
2000-07-19  1:02 ` Skip Tavakkolian
2000-07-19 11:45 ` Theo Honohan
2000-07-19  7:18 forsyth
2000-07-19  7:43 ` Lucio De Re
2000-07-19  7:58 ` Randolph Fritz
2000-07-19 15:23 ` Jonathan Sergent
2000-07-20  1:41 rob pike
2000-07-20  8:34 ` George Coulouris
2000-07-20  4:05 James A. Robinson
2000-07-26 17:43 miller
2000-07-26 17:50 ` James G. Stallings II
2000-07-27  7:43   ` Matt
2000-07-27  7:54     ` Lucio De Re
2000-07-27 17:28       ` Matt

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=slrn8nbg85.f5m.atrn@juju.bsn \
    --to=atrn@zeta.org.au \
    --cc=9fans@cse.psu.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).