Hi from Darin

My name is Darin Adler and my job at Apple Computer is managing the Safari and WebKit engineering team. I also do programming on Safari and WebKit.

Coming Soon

Here are a few of the things we’re planning:

  • My team at Apple is hiring. We’re looking for development engineers for both the Safari application and WebKit frameworks, and also for engineers to do various other tasks, such as building and maintaining tools, doing integration for our software updates, and working with bugs. If you’re interested, please send me a resume.
  • We’re getting close to completing our committers’ agreement. Once we have that we’ll be able to give some people commit privileges for the WebKit CVS repository.
  • Dave Hyatt is working on new form control implementations. These will give us form controls you can style with CSS and also much better performance on pages with lots of form controls.
  • Maciej Stachowiak is going to move our HashSet and HashMap class templates into JavaScriptCore, so they can be used in both WebCore and JavaScriptCore. We’re going to use the templates in even more places after Maciej changes them so templates with pointer keys share more code.
  • Dave Harrison just finished adding tab character support, which is especially important in the Mail application for editing email messages with tabs. This also fixes how tab characters are handled within web pages, which is pretty important in <pre>, for example.
  • I have a few performance improvements for JavaScript that give about 12% on the iBench JavaScript benchmark.
  • Maciej’s working on JavaScript engine changes leading up to something we’re calling tree code: a new way to interpret the JavaScript syntax tree that will be faster and more like a bytecode interpreter. So far, one of Maciej’s early steps gave us a 10% improvement on iBench JavaScript, so maybe we’ll see other speedups along the way.
  • We’re going to be requiring GCC 4.0.
  • We’re working on fixing the failing tests in the DOM test suite and the Mozilla JavaScript test suite.
  • We’re going to improve our support for contenteditable sections within web pages, because we’re going to use our HTML editing to implement <input type=text> and <textarea>.

That’s not everything, but a few things I thought you might want to know about.

Hash Tables

I don’t know about the rest of you, but I’m enjoying Maciej’s series of posts about hashing. One of our earliest WebKit experiences with hashing was switching to a hash table for JavaScript properties in November 2002. We got a 7% speedup on the iBench JavaScript benchmark. A more recent example this May was that we got a 1% speedup in our daily “page load test” benchmark just by improving hash functions. Experiences like these are some of the reasons Maciej was inspired to make a good-quality hash table implementation we can easily reuse.

GCC 4.0

I know that many of you are already compiling with GCC 4.0 since it’s the default compiler on Tiger and our projects are set up to use the default compiler. The Safari team hadn’t switched yet; we were taking the time to make sure our gcc-4.0-built frameworks and application were as fast as before. We’re just about done with that, and soon our tree won’t support compiling with GCC 3.3 any more.