Apple Listens To Community, Adds exslt:node-set() To WebKit Trunk

by M. David Peterson

Update: It's official,

Safari on Mac
Safari on Windows

Thanks again (everyone@)Apple!

[Original Post]
So a few weeks back Todd Ditchendorf brought to the surface, and I followed up with a report, the fact that Apple had added scripted transformations to the WebKit mix. At the bottom of that same follow-up report,

** Though I wonder if Safari has migrated any of the EXSLT functionality from libxslt, in particular the node-set() function? Anyone know off hand? If no, then Opera still has one leg up on Safari. Of course they still have one leg down on Safari as well. ;-)

Extending from a "request for support" from Romain Brestac, the above question then led to an open discussion in the WebKit Bugzilla interface regarding adding support for exslt:node-set(). Less than an hour later, Dave Hyatt (yes, *THAT* Dave Hyatt), followed-up with,


Julian Reschke
2007-07-07 11:25:15
Well. I'm as happy as you are that Safari will get exslt:node-set, but as far as I can tell, it took over two years. See

Best regards, Julian

M. David Peterson
2007-07-07 12:18:41

Yeah, it did take quite some time to get to, something of which I attribute to four things,

1) Maciej Stachowiak and Darin Adler both presented concerns with implementing support on January 12th and 13th, 2006 respectively, something of which Eric Seidel followed-up two days later with,

Removing this from the commit queue until mjs's & darin's comments are addressed.

Your follow-up comment a year later was the first sign of activity on this ticket after Eric removed it from the queue.

2) As such, it was completely off their radar screen for that entire time.

3) With the decision to provide an implementation of Safari for Windows as well as Safari being a central focus of the iPhone, my guess is that the level of resources being pulled away from the Bugzilla DB and into development of Safari 3 is the reason we didn't see an initial response from the WebKit folks to your January update. When I added my follow-up comment six months later, the iPhone was already in full production and being readied to be shipped on June 29th, and Safari for Windows Alpha 1 had been released. With the death march over, and with the attention placed front and center on the Safari team driving forward a significant portion of Apple's technological future, time could now be spent filling in the gaps that had been missed along the way.

4) After being asked his opinion regarding the concerns presented by Maciej and Darin, Dr. Kay responded with the content contained in my follow-up comment on the matter. As such, someone with obvious and significant authority on the concerns presented provided the answers Apple was looking for, giving necessary comfort in regards to moving forward with support for exslt:node-set() while at the same time establishing what seems to be the reason for caution presented by Alexey in follow-up comment #20,

It seems that exslt:node-set() is a must have, but the question of bringing in
the whole libexslt is not entirely obvious to me. If we do so, it may
complicate the task of rewriting our XSLT support to avoid creation of a
separate DOM tree.

Of course, the above is pure speculation, but it seems at very least reasonable to be considered as a plausible reason for the apparent two years it took to bring this support to Safari.


Oh, and by the way: Thanks for all of your efforts in this area! *MUCH* appreciated!

Update: Added reason #4 above after I initially published this comment (forgot to add it the first go round)

2007-07-07 16:11:42
Google Reader hasn't shown any XML Blog posts since June 26th. I thought you were all on vacation.
M. David Peterson
2007-07-07 17:07:08

>> Google Reader hasn't shown any XML Blog posts since June 26th. I thought you were all on vacation. <<

Those dirty rotten Google Reader bastards! ;-) :D

No, in all serious that seems awfully strange. If there are any two certainties in life one of them is that the Lakers and Yankess will *NEVER* again make the playoffs (much less win the NBA Championship or World Series (respectively)!), and the other is that someone on (probably me ;-) will have written a new blog entry at least once every 48 hours.

I wonder what the problem might be (with Google Reader. The problems with the Lakers and Yankees is that they're the Lakers and Yankees. 'Nuf said :D)? Has the feed perhaps been mangled by a MovableType upgrade? Wouldn't be the first time is why I suggest it as a possibility.

I'll look into it a bit deeper. Thanks for the info, W^L+!

M. David Peterson
2007-07-09 00:23:39

Looks like it's an internal problem. See: for the specific detail. Thanks again for the tip!

2007-07-09 08:45:47
Just curious, how did you get the windows version working? In looking at your screenshot, you ran ...\WebKit-r24096\run_nightly_webkit.cmd which is identical to what I run (except for the full directory path) but I am getting a blank page.
M. David Peterson
2007-07-09 09:27:50
Hey Bruce,

I didn't do anything special that I am aware of. Do you by chance have the existing version of Safari for Windows running at the same time (not sure if that's even possible (running multiple versions side-by-side), but it's the only thing I can think of that might cause such behavior, and it's something I've seen when running various versions of IE Frankenbrowsers at that same time (something that is possible.))

Any ideas from anyone else?

2007-07-09 10:04:37
Nope. Just running the nightly.
M. David Peterson
2007-07-09 16:44:04
Hmmm... That is strange. I'll dig around a bit later this evening and see if I might be able to come up with some other possible solutions.
M. David Peterson
2007-07-10 10:08:57

Haven't come up with any ideas on this one, so I've appended it to the Bugzilla ticket,

I'll let you know what I hear back.

Todd Ditchendorf
2007-07-10 16:26:56
actually M. David Peterson, I think the thanks has to go to you for getting this issue back on the radar and providing important info. (i didn't do squat!)

thanks for getting involved and making things suck less!!!


M. David Peterson
2007-07-10 19:38:36

>> actually M. David Peterson, I think the thanks has to go to you for getting this issue back on the radar and providing important info.

My part was the easy part...

>> (i didn't do squat!)

Your voice on the matter certainly helped as it brought attention to the fact that this was something the community felt was necessary. Sometimes all it takes is someone in whom people know and respect to say "hey, this is a good idea" so in that regard, you did more than you're giving yourself credit for.

>> thanks for getting involved and making things suck less!!!

:D You guys have a *killer* product in Safari, and is definitely sitting in the right place to be a complete game changer in regards to how applications are delivered in the coming years. The move to support Windows was absolutely brilliant! I can't wait to see the final result of both Safari 3.0 and beyond!

Todd Ditchendorf
2007-07-10 23:46:54
yikes! yeah, i guess i should clarify that comment... I'm a HUGE fan of, and big believer in both webkit and safari... Although I've never contributed to either, I have a ton of respect for those who have.

Neither product is, in any way, "sucky", that's for sure. :)

I, too, and very excited about safari on win.

Thomas Broyer
2007-07-11 08:40:59
What makes me very very very happy is that I'm the man who started the libexslt "project" a few years ago (I haven't had time -and I must admit I loosed interest- to work with and on it for more than 5 years now, ghough).

Now I can say: hey man, I (indirectly) contributed to Safari, MacOS X's Web browser !!!

M. David Peterson
2007-07-11 10:59:37

>> Neither product is, in any way, "sucky", that's for sure. :) <<

For what it's worth, I took your "suck less" comment in reference to XSLT support as it relates to not only Safari, but across all browsers. Obviously XSLT 1.0 + node-set() doesn't even come close to an XSLT 2.0 processor, and in this regard you are absolutely spot on > It sucks that we can't have XSLT 2.0 across all major browsers, but in the mean time progress is progress (AKA it sucks less than not having node-set support ;-)

>> I, too, and very excited about safari on win.

Of course my interpretation could be FAR FROM ACCURATE, but to me, anyway, Safari on Windows brings with it not just another browser to choose from, and not just another competitive force to help drive the feature wars, but something all together more important: A platform well designed and empowered to deliver the next generation of Software as a Service applications.

I have to run off to a meeting, but will elaborate more on what I mean as soon as I have a chance.

Bye for now :)

M. David Peterson
2007-07-11 11:04:52

As mentioned I have to run off to a meeting, but I'm ecstatic that you popped in to say hello! You deserve a *TREMENDOUS* amount of thanks and respect for your overall contributions to both the XML/XSLT as well as the OSS communities of the world. I'll make sure to bring this out a bit later when I return.

Thanks again!

2007-07-11 11:33:19
What version of libesxlt is on your machine? Where are the files located? I have the version installed with MingW and the \msys\1.0\bin is in my path. I can run xsltproc fine from a command line. Running xsltproc -V gives:
Using libxml 20623CVS2717, libxslt 10115CVS1037 and libexslt 812CVS1037
xsltproc was compiled against libxml 20622, libxslt 10115 and libexslt 812
libxslt 10115 was compiled against libxml 20622
libexslt 812 was compiled against libxml 20622


2007-07-12 09:38:58
I just downloaded nightly 24238 for windows and now it is working fine. Not sure why but I'm not complaining.
M. David Peterson
2007-07-12 13:36:59

>> I just downloaded nightly 24238 for windows and now it is working fine.


>> Not sure why but I'm not complaining.

Nor am and would I :)