Hi from Darin
Posted by Darin Adler on Sunday, July 31st, 2005 at 5:56 pmMy 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.
July 31st, 2005 at 8:25 pm
I was wondering why there’d be gcc-4 only fixes every so often. Good to see what everyone’s doing and some plans for the future. Now if other parts of Apple could be so open.
July 31st, 2005 at 11:35 pm
One quick question: since you’re hiring and sorting resumes now, does that also mean you’d be looking for interns for next year? Is now a good time to send you information for that, or should I just wait until later (Dec.-Jan. or so) as you suggested on IRC a while back?
August 1st, 2005 at 4:33 am
I’d assumed the inability to style form controls was a conscious decision on the part of the Safari developers.
August 1st, 2005 at 3:07 pm
There are certain allegations being levelled at Safari’s Javascript implementation beginning in 1.3 and continuing through to the present. This is primarily from engineers who work for WebCT Inc., the vendor for WebCT Vista 3.x. The thrust of these allegations is that Safari is not qualified to work with this enterprise Learning Management System because onUnload and Prompt are not properly implemented and this LMS relies heavily on these functions.
If these allegations are true, how did this happen and how can it be corrected? If untrue, how can these engineers be disabused of their false beliefs?
August 1st, 2005 at 10:22 pm
Safari Goodness Galore
The next version of Safari will include all sorts of updates, like: Improved Javascript performance: It already runs circles around Mozilla’s implementation, so the Gecko team will have to come up with something here Styleable form controls (I wanted …
August 3rd, 2005 at 10:04 pm
Are the more details on the “tree code” thing? I had a similar-sounding concept a while back for a personal programming langauge project of mine and I’d love to compare notes if there are any docs, notes or whatever, available.
Quote:
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.
August 4th, 2005 at 2:16 am
Are you in a position to give any word about MathML?
(And, BTW, it would be totally kickass if Leopard included TeX in its distribution right out of the box. Just something to mention to friends at the cafeteria. Not essential, but really nice extra points if it was actually hooked up to the rest of the OS, eg hooked up to all the Mac fonts, clicking a .dvi file launched Preview (under the covers just call some sort of dvi2pdf wrapper), TeachText had a menu item that would render a TeX file to PDF, that sort of thing.)
On a slightly different topic, is there anything upcoming in the web world that would provide the same sort of UI functionality as say QD3D? What I have in mind is a way to generate a 3D scene as some sort of data file in some standard format and have that displayed to the user in a UI box that’s at least as capable as the QD3D UI box was. VRML kinda sorta promised this and went nowhere, and ever since then the space seems empty. The best I can currently think of is to wrap some sort of Java UI around one’s data but that’s obviously pretty lame.
August 5th, 2005 at 3:38 pm
Sigh… looks as if the OPs don’t respond well
I guess I’ve have to hunt around for a personal e-mail address for Maciej Stachowiak someplace or find some other direct way…
August 10th, 2005 at 9:50 am
NZBioinformatics: Join the IRC channel or the mailing list.
name99: If there are features you want in upcoming versions of Mac OS X, file feature-request bugs on RadarWeb (https://bugreport.apple.com/) or use the public form (http://developer.apple.com/bugreporter/bugrptform.html). Requests from end users and developers carry more weight than those from employees. Don’t worry about filing duplicate requests–the more duplicates they get for something, the more likely it is to be included (although not if only one person is filing all of the duplicates).