Welcome, Guest. Please login or register.

Author Topic: AmiZilla has a new home on the web www.amizilla.net  (Read 8841 times)

Description:

0 Members and 1 Guest are viewing this topic.

Offline smithy

  • Hero Member
  • *****
  • Join Date: Mar 2002
  • Posts: 511
    • Show only replies by smithy
Re: AmiZilla has a new home on the web www.amizilla.net
« Reply #14 from previous page: September 07, 2004, 12:12:57 PM »
Hello Cymric,

Your analysis is interesting, however it's fatally flawed:

You've idenitified 6 reasons for why a Mozilla port is almost impossible:
1.  POSIX threads
2.  GTK+ toolkit
3.  Boehm garbage collector
4.  fork()
5.  Dynamic library interface
6.  Size of sources

Comments about each below:

Quote

It uses POSIX-compliant threads, which do not exist as yet on the Amiga, and are hard to implement too.


(1) The Mozilla code doesn't directly use POSIX threads.  All thread-activity is contained within the NSPR (Netscape portable runtime).  The Amizilla team has already ported the NSPR, so this is a non-issue.

Quote

It relies on the GTK+-toolkit, which does not exist at all on the Amiga.


(2) Good point.  Someone is going to have to re-implement part of the GTK+ API.  This is going to be a not-insignificant task.

Quote

It uses the Boehm garbage collector, for which a sort-of-port exists for the Amiga, but operates under severe restrictions.


(3) I've got no knowledge of that, or how easy a complete port/re-implementation might be.

Quote

(4) It uses fork() at some places, the absolute Unix-to-Amiga porting nightmare.


It shouldn't use fork() either.  All concurrency-related things are in the NSPR, which is already ported.

Quote

The dynamic library interface is completely different to what is common on the Amiga.


(5) One of the Amizilla developers already has compiled the entire application on the WinUAE - this is a huge achievement, I wonder why they haven't publicised this milestone.  And it runs too, so I assume any problems with the library interface have already been overcome.

Quote

You cannot even compile the sources on an Amiga because of their insane size running into hundreds of MBs. And so forth.


(6) See (5).

The insurmountable sub-projects are now actually 1 lengthy sub-project (GTK+ re-implementation) and an unknown (Boehm).  

I think this makes an Amizilla port quite possible.  It just means the developers will spend much of their time porting GTK+ rather than Mozilla...


 

Offline Cymric

  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 1031
    • Show only replies by Cymric
Re: AmiZilla has a new home on the web www.amizilla.net
« Reply #15 on: September 08, 2004, 12:06:33 PM »
Quote
smithy wrote:
Your analysis is interesting, however it's fatally flawed:

Thank you for taking the time to address the technical issues. I'll write a brief reply to each of them, and then all we can do is wait to see what the Amizilla team comes up with. Therefore this will be my last contribution to this thread.

Quote
Quote
It uses POSIX-compliant threads, which do not exist as yet on the Amiga, and are hard to implement too.

(1) The Mozilla code doesn't directly use POSIX threads.  All thread-activity is contained within the NSPR (Netscape portable runtime).  The Amizilla team has already ported the NSPR, so this is a non-issue.

No, they have not yet ported the NSPR. They have ported parts, and if you look at the specification of the NSPR---which is decidely POSIXy---I am seriously wondering whether the solutions the Amizilla team (must) have come up with meet the general intent of the NSPR. AmigaOS 3.1 does not have a concept of threads, since tasks (the obvious candidates) are not able to access any dos.library function. Instead one distorts processes into behaving like threads, but this introduces subtleties which may or may not cause serious havoc, as the NSPR assumes that threads are anything but processes. Without an in-depth evaluation of the Mozilla code I cannot say whether it will cause problems or not. Time will tell---so the issue is not quite yet a non-issue.

As a side note, AmigaOS 4 is considerably smarter in this regard as it knows about proper threads. In addition, all BCPL remnants have been removed, turning dos.library into a proper library. My guess is that porting the NSPR to AmigaOS 4 will be much easier.

Quote
Quote
It uses the Boehm garbage collector, for which a sort-of-port exists for the Amiga, but operates under severe restrictions.

(3) I've got no knowledge of that, or how easy a complete port/re-implementation might be.

Not easy. Not easy at all. The collector relies on dark magic involving automatic stack resizing and scanning of all  data areas, including the stack. It is doable for sure, but you need to have a very good idea of what it is the collector is doing and how to coax the host system into cooperating without turning it into guacamole. Let's just say that you won't do this in a few hours. Once again, things are much better under AmigaOS 4 than under 3.

Quote
Quote
(4) It uses fork() at some places, the absolute Unix-to-Amiga porting nightmare.

It shouldn't use fork() either.  All concurrency-related things are in the NSPR, which is already ported.

Sorry. fork() is not overloaded by the NSPR, meaning that it is up to the underlying system libraries to provide support for it. The NSPR reference only mentions how fork() should be used in a portable way with respect to when to call which function, and that is something completely different altogether. Since the function is called in several places in the Mozilla code, you have a mighty big problem on your hands. Pray very hard that these parts are not critical to the operation of Mozilla, or can be rewritten so that fork() is no longer required.

I do not know whether fork() can be ported to AmigaOS 4, but since it has much better support for virtual memory addressing, I'm giving it a proverbial yes here. Once again, a clear advantage over 3.1.

Quote
Quote
The dynamic library interface is completely different to what is common on the Amiga.

(5) One of the Amizilla developers already has compiled the entire application on the WinUAE - this is a huge achievement, I wonder why they haven't publicised this milestone.  And it runs too, so I assume any problems with the library interface have already been overcome.

Err... I don't think you understood what I meant. Yes, they did compile Mozilla, but that doesn't mean it is a working and fully-functioning program. Playing the devil's advocate for a second, if I were to write stubs for every function not supported by the Amiga system or libc libraries, I'd be able to compile and run the program too. This is of course exxagerating, since not all functions are stubs.

What I meant was the following: the NSPR abstracts a far more intelligent library interface than the Amiga provides under 3.1. In other words, porting the relevant parts of the NSPR involves far more work than just writing glue code. It can be done, of course, but that brings me back to my original point of view: you need to write so many extensions to the core OS that you are probably better off offering your services to Hyperion (or Genesi).

In fact, while writing down the above, I realised that what the Amizilla team in fact is doing is writing another ixemul.library. Only not one based on glibc2, but on NSPR. The original ixemul suffered from limitations due to the structure of AmigaOS's 2 and 3, and I see little reason to believe that the NSPR port will fare any better. (Currently, the coders have assumed a minimal code approach: if it supports only what is needed by Mozilla, then it is okay. That's a good approach until a Mozilla coder decides to change some code and introduces a function not present in the Amiga-NSPR, or worse, one which cannot be supported at all.)

That, plus the facts that the NSPR-port still needs to prove its worth, that GTK+ is still unaddressed, that the development environment is not exactly pleasant, plus that I can count the number of developers on the fingers of one hand, is why I believe that for practical intents and purposes, the Mozilla port will fail, especially under 3.1. If they were coding under 4.0, I'd say their chances of success would be considerably improved, but alas, that goes against the minimum requirements for Amizilla.
Some people say that cats are sneaky, evil and cruel. True, and they have many other fine qualities as well.
 

Offline poweramiga2002

  • Full Member
  • ***
  • Join Date: Jun 2002
  • Posts: 177
    • Show only replies by poweramiga2002
Re: AmiZilla has a new home on the web www.amizilla.net
« Reply #16 on: September 08, 2004, 12:34:33 PM »
@cymric

when its finished and released ill bet my bottom dollar youl d/load it and use it ow thats right you dont have an amiga anymore ow well we will use it !!!

never say cant do

youll be eating your words i garentee you
 

Offline bloodline

  • Master Sock Abuser
  • Hero Member
  • *****
  • Join Date: Mar 2002
  • Posts: 12114
    • Show only replies by bloodline
    • http://www.troubled-mind.com
Re: AmiZilla has a new home on the web www.amizilla.net
« Reply #17 on: September 08, 2004, 03:05:20 PM »
Quote

Piru wrote:
I have to agree with Cymric in most points (however semi-working libpthreads does exist at least). fork() will never work on AmigaOS or compatibles.


I still don't get the point of fork(), is it just a quick and simple way to get a small part of your code executing as a separate thread which can do a function and die...?hmmm... putting it like that it seems really usefull :-D

Offline Piru

  • \' union select name,pwd--
  • Hero Member
  • *****
  • Join Date: Aug 2002
  • Posts: 6946
    • Show only replies by Piru
    • http://www.iki.fi/sintonen/
Re: AmiZilla has a new home on the web www.amizilla.net
« Reply #18 on: September 08, 2004, 03:11:40 PM »
Quote
I still don't get the point of fork(), is it just a quick and simple way to get a small part of your code executing as a separate thread which can do a function and die...?

No. It splits the current process in two, the only difference being the return code of fork() call. Everything else is 100% the same, addressing, fhs, etc.

AmigaOS or compatibles will never be able to implement fork().
 

Offline KimmoK

  • Sr. Member
  • ****
  • Join Date: Jun 2004
  • Posts: 319
    • Show only replies by KimmoK
Re: AmiZilla has a new home on the web www.amizilla.net
« Reply #19 on: September 08, 2004, 03:21:49 PM »
For $8772.20 one could get Moz ported "overnight" for AOS/MOS @ India/China...

Well, not quite, but almost. ;-)
- KimmoK
// Windows will never catch us now.
// The multicolor AmigaFUTURE IS NOW !! :crazy:
 

Offline bloodline

  • Master Sock Abuser
  • Hero Member
  • *****
  • Join Date: Mar 2002
  • Posts: 12114
    • Show only replies by bloodline
    • http://www.troubled-mind.com
Re: AmiZilla has a new home on the web www.amizilla.net
« Reply #20 on: September 08, 2004, 03:22:39 PM »
Quote

Piru wrote:
Quote
I still don't get the point of fork(), is it just a quick and simple way to get a small part of your code executing as a separate thread which can do a function and die...?

No. It splits the current process in two, the only difference being the return code of fork() call. Everything else is 100% the same, addressing, fhs, etc.

AmigaOS or compatibles will never be able to implement fork().


Yup, I know what it does, but I find it hard to see the point :-)

Offline Piru

  • \' union select name,pwd--
  • Hero Member
  • *****
  • Join Date: Aug 2002
  • Posts: 6946
    • Show only replies by Piru
    • http://www.iki.fi/sintonen/
Re: AmiZilla has a new home on the web www.amizilla.net
« Reply #21 on: September 08, 2004, 03:33:48 PM »
Quote
I find it hard to see the point :-)

It's for lazy coders so that they don't need to write proper asynchronous I/O in their apps. :-)
 

Offline srg86

  • Full Member
  • ***
  • Join Date: Aug 2004
  • Posts: 211
    • Show only replies by srg86
    • http://www.aopp12.dsl.pipex.com
Re: AmiZilla has a new home on the web www.amizilla.net
« Reply #22 on: September 08, 2004, 03:41:27 PM »
Surprisingly when a *nix machine creates a new process it uses fork().

BTW Win32 doesn't have fork().

srg
 

Offline Chas916

  • Newbie
  • *
  • Join Date: Mar 2004
  • Posts: 15
    • Show only replies by Chas916
Re: AmiZilla has a new home on the web www.amizilla.net
« Reply #23 on: September 08, 2004, 03:54:50 PM »
I e-mailed Tom and Jeff back in July asking for an interview for AmiWest 04. They told me the project was like 2%-5% complete. That they were still working on the underpinnings and had a long way to go (about a year or more).

That is not verbatim, but close (I erased the e-mail because their response was way too short for an article).
 

Offline bloodline

  • Master Sock Abuser
  • Hero Member
  • *****
  • Join Date: Mar 2002
  • Posts: 12114
    • Show only replies by bloodline
    • http://www.troubled-mind.com
Re: AmiZilla has a new home on the web www.amizilla.net
« Reply #24 on: September 08, 2004, 05:12:14 PM »
Quote

Piru wrote:
Quote
I find it hard to see the point :-)

It's for lazy coders so that they don't need to write proper asynchronous I/O in their apps. :-)


Ha! That's what it looked like (which is what I was hinting at earlier) :-D

But there must be some feature of using it that is not "doable" in a formal way, otherwise it would not have been included in the POSIX spec... would it?

Offline z_eight_a

  • Newbie
  • *
  • Join Date: Jul 2004
  • Posts: 2
    • Show only replies by z_eight_a
    • http://www.bezilla.org/edward.dore
Re: AmiZilla has a new home on the web www.amizilla.net
« Reply #25 on: September 09, 2004, 05:16:57 PM »
Quote
That, plus the facts that the NSPR-port still needs to prove its worth, that GTK+ is still unaddressed, that the development environment is not exactly pleasant.


Acording to the dev list "Let's just say some people are misinformed and haven't looked at the source. I have at least 90% of the NSPR testcases passing and most of the XPCOM ones as well." and, from ym own, admitedly limited knowledge, I wold like to point out two things, OS/2 and Windows are both radically idfferent from POSIX but ports exist for both. GK+ is NOT used in several of teh mozilla prtos either, BeOS, OS/2 and Win32 spring to mind instantly, not to metion the support for QT and motif.
 

Offline Lanza

  • Newbie
  • *
  • Join Date: Sep 2004
  • Posts: 1
    • Show only replies by Lanza
Re: AmiZilla has a new home on the web www.amizilla.net
« Reply #26 on: September 09, 2004, 08:14:27 PM »
Mozilla is NOT gtk based. In fact there is an abstraction layer for the gui and windows/Be/MacOS/etc ports do not even contain a single line of gtk related stuff. I also think that porting gtk will be a lot more pain than just using regular (cyber)graphics.library calls and/or BOOPSI based gui(MUI/Reactor or custom one).

I am currently looking at the widgets and gfx sources to see if I can help... Not sure I'll have the time/skills, but who knows ?