[webkit-dev] Introduction

Robert Norris rob at cataclysm.cx
Mon Dec 3 14:31:32 PST 2007


Adam suggested privately that I introduce myself and my work to the list
as a good first step towards getting a "contributor" badge.

I'm working on a port of WebKit to AROS (http://aros.org/) which is a
reimplementation of the Amiga OS. Its been around since 1995 but has
never attracted a lot of developer attention, so its only been in the
last year or two that its reached a point where it could actually be
usable as a primary desktop OS. As such its now getting quite a bit of
user interest but is hamstrung by the fact that we really have no
applications. A web browser is seen as a necessary first step in this
direction, and so here I am.

I've been working on the port on-and-off for perhaps a month. JSCore was
pretty straightforward to get working, so I've now been working on the
much larger task of porting WebCore.

One of the great things about this porting project has been that its
really helping to find the holes in AROS functionality, as we've never
had an application of this scale available before. I've had to port ICU,
cURL, libxml2 and SQLite, add a number of functions to our libc, update
libm to C99 and implement a threading library. These are all good
things!

Since we don't really have a viable native build environment - we have
GCC, but no shell or Perl - I've been cross-compiling on Linux. I use
the qmake files to set up the build, basing it largely on the GTK+
config. I was surprised at how straightforward it was to get running. So
now its just build-webkit --aros and its away. The only issue so far is
that I have hardcoded paths in there, but its something that I'll fix in
time.

Because I don't have a clear picture of how all the pieces of WebKit fit
together, my process has been to simply compile it until it breaks, fix
the errors, and repeat. This worked well for JSCore and is doing ok for
WebCore, though its difficult because there's so much platform-specific
stuff that needs to be implemented and its not (yet) clear to me what
stuff is essential and what is not. I've been using the giant list of
undefined symbols that the final link fails with as my guide to what to
implement, but I think I'm very soon going to need to make a real effort
to understand the codebase properly.

I must say that I'm impressed by the quality of the code. I've been
writing C for years and I'd like to think I understand it pretty well,
but I'd always found C++ impenetrable. This is the first time I've
actually started to think that I could enjoy writing code in it. Thats
no small thing; I don't change easily :P

For the interested, my port is available here:

  http://cataclysm.cx/git/webkit.git

or browse the code:

  http://cataclysm.cx/git/?r=webkit

I'm tracking Subversion HEAD, so it receives plenty of updates.

Ince I get something working I'll be looking at starting to move my
changes into the WebKit repository proper. I'm going to need a lot of
help at that time, I think.

I hang out in #webkit too, as fce2. Its a nice and highly informative
place to lurk :)

That'll do for now. Thanks for a great project and a great community.
I'm looking forward to getting more involved!

Cheers,
Rob.


More information about the webkit-dev mailing list