From owner-freebsd-mozilla Thu Apr 8 16:30:52 1999 Delivered-To: freebsd-mozilla@freebsd.org Received: from smtp01.primenet.com (smtp01.primenet.com [206.165.6.131]) by hub.freebsd.org (Postfix) with ESMTP id C8A5914D1D for ; Thu, 8 Apr 1999 16:30:48 -0700 (PDT) (envelope-from tlambert@usr08.primenet.com) Received: (from daemon@localhost) by smtp01.primenet.com (8.8.8/8.8.8) id QAA13526; Thu, 8 Apr 1999 16:28:48 -0700 (MST) Received: from usr08.primenet.com(206.165.6.208) via SMTP by smtp01.primenet.com, id smtpd013498; Thu Apr 8 16:28:43 1999 Received: (from tlambert@localhost) by usr08.primenet.com (8.8.5/8.8.5) id QAA02792; Thu, 8 Apr 1999 16:28:38 -0700 (MST) From: Terry Lambert Message-Id: <199904082328.QAA02792@usr08.primenet.com> Subject: Re: current state of the mozilla project on freebsd... (port) To: reg@shale.csir.co.za (Jeremy Lea) Date: Thu, 8 Apr 1999 23:28:38 +0000 (GMT) Cc: patl@phoenix.volant.org, freebsd-mozilla@FreeBSD.ORG In-Reply-To: <19990408105937.M1798@shale.csir.co.za> from "Jeremy Lea" at Apr 8, 99 10:59:37 am X-Mailer: ELM [version 2.4 PL25] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: owner-freebsd-mozilla@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG > There is going to be a Milestone 4 release in the next day or two, and > that runs quite well on FreeBSD. I'll see if I can get the port > updated. I've asked for separate source tarballs for their runtime code > (NSPR) and the browser, since they have to be built separately, and I > want to make two ports... Otherwise I'll have to make two ports using > the same source tarball. Great! > FreeBSD projects: > *URGENT* The library (XPTCall) which allows Javascript to call their > cross-platform implementation of COM (XPCOM) uses some hand coded > assembly to handle vtable conversion of objects. This does not work > on FreeBSD, since there is no one to write the code... > http://www.mozilla.org/scriptable/xptcall-faq.html. I suspect it > would be very similar to the existing Linux code, and it's only > about 300 lines including the licence and comments... IMO, the same code issues here are the code issues with the gcc 2.8.1 exceptions patch that I sent to obrian@freebsd.org, and that was included in the (so far) ill-fated switch to the threads-unfriendly EGCS. If you fix this for Mozilla, I believe you'll have the stack unwinding information to make gcc 2.8.1 (and EGCS, such as it is) work without resorting to longjmp. > *NEEDED* The cross platform portability layer (NSPR) works for their > threading, but needs some testing for our threads (libc_r) and for > Richard's Linux threads port. There are also a few places where I > think they are doing some things wrong - mostly with select() and > poll() because some functions seem very slow. I'm pretty sure that there us a pretty serious problem with threading on systems where the threading is not serially non-preemptive. This basically means that the threaded code implementation works on Solaris, Linux, and WIN32, but fails on FreeBSD, Macintosh, and other platforms that use non-kernel threads and/or enable the cooperative user space scheduling components, if they exist on the OS. This is really a "run to completion issue"; the way it is resolved on these other OS's is that the thread runs to completion. The behaviour on the Mac and FreeBSD and other systems is that, instead of selecting the thread that was running before an involuntary context switch, come the next time slice, any ready-to-run thread is selected, and execution starts. This is most easily apparent in a JavaScript UI that uses multiple image maps with popup menus, tooltips, or static forms with JavaScript OnSubmit. The visible effect is that if you allow the images to fully download before moving the mouse (if you have motion based scripts, such as tooltips) or clicking on anything (otherwise), then the interface works; but if you don't, then the interface fails. It's possible to modify an interface (as I have discovered) to effectively serialize the image downloads. This is either a problem in thread-safety of the GIF decoder (note: IE is significantly faster, as they implement the GIF unpacking using a native implementation class), or a problem with thread resource/context locking that's missing. I'd really like to address the FreeBSD threading architecture at some time. > *NICE TO HELP* Mozilla currently has no crypto code, since they can't > work on it without getting their wrists slapped (they even had to > remove the MD5 code...). It would be nice if some FreeBSD people > could help out. Can they commit this? The person to contact is probably Mark Murray; he probably won't be able to do the work himself, but he knows what an abstract exportable framework looks like, and he might have a pointer to someone else in South Africa who would be willing to bring the thing up to compliance with the internationally distributed FreeBSD interfaces (FreeBSD crypto work goes on offshore to avoid ITAR issues). > For those people who have not been following mozilla.org, they have > completely dumped the old code base (used up to 4.x) and re-implemented > the package in a really innovative way. Everything is based around > their new layout engine (known as Gecko), which is a small, fast and > standards compliant (any behaviour outside of the W3C standards is > considered a bug). I have a small bug to report. The Gecko code, in a form that is refreshed and which contains radio buttons in a table puts the tab stop selection area to the right of the radio button instead of on the radio button itself. I can provide a copy of a form where this happens, if necessary (observed on the WIN32 version, since the FreeBSD, Mac, and Linux version are currently useless for JavaScript interface testing: the FreeBSD and Mac for the threading issues, above, and the Linux for Linux specific problems that I didn't bother to investigate fully). Terry Lambert terry@lambert.org --- Any opinions in this posting are my own and not those of my present or previous employers. To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-mozilla" in the body of the message