On 28.07.2009, at 19:14, Jani Taskinen wrote:

Dmitry Stogov wrote:
David Zülke wrote:
On 28.07.2009, at 13:32, Dmitry Stogov wrote:

Hi David,

I took only a quick look, but I like the patch.
In case it doesn't break any tests, it should be committed at least into HEAD. I agree to commit it into 5.3 too, but RMs take the final decision.

The only thing I didn't understood - why win32/php_stdint.h is needed.
Ah, yes, that's probably an oversight. Good catch. The headers were
copy-pasted from some ext/date file :)

Another thing that just occured to me is that we now have a dependency on ext/date; I think I had trouble compiling ext/soap as a standalone
extension like this. Must check again. Any hints?
I think ext/date can't be removed or compiled as shared extension.
If it's the case, the only problem may be with unexported symbols.
Just try to compile/test it as shared extension on Linux and Windows.

ext/date is not an extension, it's part of core, just like ext/ standard so you shouldn't have any problems with it.

Not attached (because the draconian police state filters at lists.php.net didn't like the patch attachment or something :)), but posted here: http://pastie.org/575559 and here: http://bugs.php.net/44383 , is an update of the patch. It has the following updates:

1) all tests adjusted, reviewed and changed to work in sequence (only one of the several variants was not commented out before)
2) fixed handling of unix timestamp longs

There are the following outstanding issues (I'm going on a holiday tomorrow, so I figured I'd shoot you an update in the meantime):

First, there seem to be problems with negative timezone offsets (see tests ext/soap/tests/schema/schema0(89|91).phpt) unless I'm confused

Second, at the minute, it breaks ext/soap/tests/schema/schema064.phpt. Except for one of the cases where the formatting is indeed wrong, it's due to time zones not being included. That obviously needs fixing, but I'd like to point out that the current tests do not seem to be in compliance with the XML Schema specification, which for gMonthDay, gDay and gMonth states: "An optional following time zone qualifier is allowed as for date". The rule for "date" and timezone postfixes is "For timezoned values, append the canonical representation of the ·recoverable timezone·". A recoverable timezone is an offset value in the format "[+-]hh:mm". http://www.w3.org/TR/xmlschema-2/ has all the details, but maybe I'm missing something. For gYearMonth and gYear, I think the "dateTime" timezone rules apply, which means the canonical representation must always be in UTC (and thus carry "Z" as the timezone identifier, which is what the tests currently expect, so those are correct).

Finally, when I compile as an extension, I get the following error once I reach tests that execute code relying on timelib:

dyld: lazy symbol binding failed: Symbol not found: _timelib_time_ctor
Referenced from: .../extensions/no-debug-non-zts-20090626/soap.so
Expected in: flat namespace

dyld: Symbol not found: _timelib_time_ctor
Referenced from: .../extensions/no-debug-non-zts-20090626/soap.so
Expected in: flat namespace

I compiled without --enable-soap, then used the correct "phpize" in ext/soap, ran configure with the correct --with-php-config=.../blah/ php-config, make install and enabled the extension in php.ini.

Feedback/thoughts/advice appreciated. I'll be back in ~2 weeks.

Cheers,

- David


Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to