Afternoon,
and don't shoot me,
I'd like to bring up the topic of providing builds created with Visual
Studio 2005 again. I know that until Apache and other Open Source
software makes the move as well, we can't provide ONLY 2005 builds
because they just won't work properly, the runtimes will crash and
things will blow up.
But what is the thought of providing additional builds? I'm thinking
specifically of Windows users running FastCGI probably on IIS with a
non-threadsafe build (implying that they're not point and click
installer happy already, and therefore a step above the general
population), who would get the most performance increases out of the
switch to the new compiler. So basically a special non thread safe and
2005 compile for additional download. I'm well aware that the process
of doing this needs to be well thought out and planned, but PHP users
are notorious for not testing things that aren't available right on the
downloads page, and people at Microsoft have made the request that
binaries be made available on the php.net site.
I'd be willing to help create builds of common open source libraries
that PHP links against, such as libiconv and libxml2, with the newer
compiler so there are no runtime issues originating from that angle.
But until people start using it, we can't really see where issues are
going to appear. And I know it will be a big job to get all the open
source libraries php extensions link against migrated to the new
compiler (and impossible for the closed source ones) - but I think we
need to be proactive in this and not sit around until Apache migrates
and then have everything break ;)
Opinions? Thoughts? And yes I am volunteering to help with the work,
not just whining for a solution.
Thanks,
Elizabeth Marie Smith
Opinions? Thoughts? And yes I am volunteering to help with the work,
not just whining for a solution.
Just as a note - I'm doing my work builds with 2005 for some time now,
and it works (at least for extension set I'm using :). However there's a
twist for it since 2005 generates binaries linked against libraries
which may not be installed by default, one may need this package:
http://www.microsoft.com/downloads/details.aspx?familyid=32bc1bee-a3f9-4c13-9c99-220b62a191ee&displaylang=en
in order to run such binaries.
Stanislav Malyshev, Zend Software Architect
stas@zend.com http://www.zend.com/
(408)253-8829 MSN: stas@zend.com
Stanislav Malyshev wrote:
Opinions? Thoughts? And yes I am volunteering to help with the work,
not just whining for a solution.Just as a note - I'm doing my work builds with 2005 for some time now,
and it works (at least for extension set I'm using :). However there's a
twist for it since 2005 generates binaries linked against libraries
which may not be installed by default, one may need this package:
http://www.microsoft.com/downloads/details.aspx?familyid=32bc1bee-a3f9-4c13-9c99-220b62a191ee&displaylang=enin order to run such binaries.
I've also been doing builds on 2005 (and 2008) and providing those
builds for quite a while, and yes you have to either install the new
runtime dll (using that installer) or bundle it in side-by-side
configuration. I have yet to hit runtime issues but I know other people
have not been so lucky. In any case I'm just asking for "official"
builds with new compilers for people to start testing/using.
I've also been doing builds on 2005 (and 2008) and providing those
builds for quite a while, and yes you have to either install the new
runtime dll (using that installer) or bundle it in side-by-side
configuration. I have yet to hit runtime issues but I know other people
have not been so lucky. In any case I'm just asking for "official"
builds with new compilers for people to start testing/using.
I'm all for it :) VC 2005 has better compiler.
Stanislav Malyshev, Zend Software Architect
stas@zend.com http://www.zend.com/
(408)253-8829 MSN: stas@zend.com
Elizabeth Smith wrote:
I'd be willing to help create builds of common open source libraries
that PHP links against, such as libiconv and libxml2, with the newer
compiler so there are no runtime issues originating from that angle. But
until people start using it, we can't really see where issues are going
to appear. And I know it will be a big job to get all the open source
libraries php extensions link against migrated to the new compiler (and
impossible for the closed source ones) - but I think we need to be
proactive in this and not sit around until Apache migrates and then have
everything break ;)
It would probably also be helpful to formalize the zips of pre-compiled
libraries and such. zip.zip is not very descriptive, and will be even
less so once we have builds in other runtimes floating around.
--
Edward Z. Yang GnuPG: 0x869C48DA
HTML Purifier http://htmlpurifier.org Anti-XSS Filter
[[ 3FA8 E9A9 7385 B691 A6FC B3CB A933 BE7D 869C 48DA ]]
Hi Elizabeth,
No doubt there's value in providing a non-threadsafe build of PHP as now
that there's a robust and efficient FastCGI solution for IIS which is
likely to be the preferred way to run PHP on Windows. Also, we know PHP
runs significantly faster when built with Visual Studio 2005 (VC8) and
one of the optimizations we made in the source is even VC8 specific as
the functionality didn't exist with the previous version.
Basically we should have the same package as today and have an
additional package which is non-threadsafe with VC8 (we offer a separate
package for releases anyway).
I've actually had this discussion a few days ago with Edin and John
(Windows Installer). They were also supportive but I guess it's mainly a
bandwidth issue for Edin. So if you can connect with him and help make
it work that'd be great. We can also help out with the process as we've
been successful in doing such a build.
Thanks for stepping up!
Andi
-----Original Message-----
From: Elizabeth Smith [mailto:emsmith@elizabethmariesmith.com]
Sent: Monday, November 12, 2007 9:09 AM
To: internals@lists.php.net
Subject: [PHP-DEV] Providing Visual Studio 2005 builds (again)Afternoon,
and don't shoot me,I'd like to bring up the topic of providing builds created with Visual
Studio 2005 again. I know that until Apache and other Open Source
software makes the move as well, we can't provide ONLY 2005 builds
because they just won't work properly, the runtimes will crash and
things will blow up.But what is the thought of providing additional builds? I'm thinking
specifically of Windows users running FastCGI probably on IIS with a
non-threadsafe build (implying that they're not point and click
installer happy already, and therefore a step above the general
population), who would get the most performance increases out of the
switch to the new compiler. So basically a special non thread safe
and
2005 compile for additional download. I'm well aware that the process
of doing this needs to be well thought out and planned, but PHP users
are notorious for not testing things that aren't available right on
the
downloads page, and people at Microsoft have made the request that
binaries be made available on the php.net site.I'd be willing to help create builds of common open source libraries
that PHP links against, such as libiconv and libxml2, with the newer
compiler so there are no runtime issues originating from that angle.
But until people start using it, we can't really see where issues are
going to appear. And I know it will be a big job to get all the open
source libraries php extensions link against migrated to the new
compiler (and impossible for the closed source ones) - but I think we
need to be proactive in this and not sit around until Apache migrates
and then have everything break ;)Opinions? Thoughts? And yes I am volunteering to help with the work,
not just whining for a solution.Thanks,
Elizabeth Marie Smith
Hi Andi,
Can I just butt in here for a moment?
Why is everyone in such a rush to get away from the lowest common
denominator? Please don't close your eyes to the chief advantage of
the lcd build, which is that it works as-is on every Windows version
we claim to
support. Even on Windows 98 according to user feedback (although I'd
love a guided tour of the specific optimizations that break platform
compatibility, to get a better idea of where things might fall apart).
If we start building the official PHP distro with VS 2005 we're going
to have to ship the wretched CRT along with it, or else drop support
for everything pre-XP. Is that actually a desired outcome for PHP 5.3?
It seems a tad more
appropriate, to me at least, to leave that alone until our users stop
reporting XP bugs.
The build system we use is known to work, out of the box, across all
the current MS compiler versions (read: VC6 -> VS 2005 - I'm
old-fashioned enough to see 2008 as 'next year'). The only issue,
then, is third party
libraries. Ergo, all we really need is a 'zip.zip' for each CRT,
surely? This assuming - and I guess we do have to assume it - that MS
are pushing us into the unhappy position of having to distribute our
own builds of third
party libs if we want to support Windows at all. (Of course dropping
that support would be another option, if possibly not a popular one.)
The distribution of third-party libraries is intended for people
rolling their own PHP builds. I don't see any justification for
distributing more than one CRT version of every PHP release, in fact I
think doing so is
likely to confuse hell out of most of PHP's end users. The only way it
makes any sense is on the 'testing' front - so maybe it'd make sense
to ask for volunteer builder/testers on more specialized page(s) used
for 'zip.zip'
distributions, and set up a bunch of edge case scripts (e.g. stuff
that passes around data structures or uses a lot of IO calls, etc).
The framework to do that already exists in run-tests.php, although the
tests themselves
may not. Setting up something this way - a collection of third party
libs built with VC7, VC8, VC9 when it arrives - and testing the
various library builds with a same-compiler version of PHP in known
critical areas, now that
would be genuinely useful. That would mean that when (most likely)
Apache move on, we're good and ready to move on with them.
It concerns me that Edin hasn't been involved either in this
discussion or the one a few weeks back, so I'm glad you've been in
touch over this issue off-list. I know Elizabeth knows what she's
talking about when it comes to
VC8 (and probably beyond), and hope she and Edin can come to some sane
arrangement. But please hold back with distributing VC8-only versions
of PHP when we still support platforms pre-dating its C runtime, and
please back off from the idea of offering a range of official PHP
builds with different CRTs. It makes absolutely no sense to do either
thing at this point in time, and it won't make a great deal of sense
to do the latter at any time.
nb Andi, Edin's been distributing official NTS builds for some time
now... they make a huge difference to CLI, and a visible difference to
PHP-GTK's draw speed. And please note, even the 'NTS' option has
proved confusing for
some...!
- Steph
Hi Elizabeth,
No doubt there's value in providing a non-threadsafe build of PHP as now
that there's a robust and efficient FastCGI solution for IIS which is
likely to be the preferred way to run PHP on Windows. Also, we know PHP
runs significantly faster when built with Visual Studio 2005 (VC8) and
one of the optimizations we made in the source is even VC8 specific as
the functionality didn't exist with the previous version.
Basically we should have the same package as today and have an
additional package which is non-threadsafe with VC8 (we offer a separate
package for releases anyway).I've actually had this discussion a few days ago with Edin and John
(Windows Installer). They were also supportive but I guess it's mainly a
bandwidth issue for Edin. So if you can connect with him and help make
it work that'd be great. We can also help out with the process as we've
been successful in doing such a build.Thanks for stepping up!
Andi-----Original Message-----
From: Elizabeth Smith [mailto:emsmith@elizabethmariesmith.com]
Sent: Monday, November 12, 2007 9:09 AM
To: internals@lists.php.net
Subject: [PHP-DEV] Providing Visual Studio 2005 builds (again)Afternoon,
and don't shoot me,I'd like to bring up the topic of providing builds created with Visual
Studio 2005 again. I know that until Apache and other Open Source
software makes the move as well, we can't provide ONLY 2005 builds
because they just won't work properly, the runtimes will crash and
things will blow up.But what is the thought of providing additional builds? I'm thinking
specifically of Windows users running FastCGI probably on IIS with a
non-threadsafe build (implying that they're not point and click
installer happy already, and therefore a step above the general
population), who would get the most performance increases out of the
switch to the new compiler. So basically a special non thread safe
and
2005 compile for additional download. I'm well aware that the process
of doing this needs to be well thought out and planned, but PHP users
are notorious for not testing things that aren't available right on
the
downloads page, and people at Microsoft have made the request that
binaries be made available on the php.net site.I'd be willing to help create builds of common open source libraries
that PHP links against, such as libiconv and libxml2, with the newer
compiler so there are no runtime issues originating from that angle.
But until people start using it, we can't really see where issues are
going to appear. And I know it will be a big job to get all the open
source libraries php extensions link against migrated to the new
compiler (and impossible for the closed source ones) - but I think we
need to be proactive in this and not sit around until Apache migrates
and then have everything break ;)Opinions? Thoughts? And yes I am volunteering to help with the work,
not just whining for a solution.Thanks,
Elizabeth Marie Smith
Why is everyone in such a rush to get away from the lowest common
denominator? Please don't close your eyes to the chief advantage of
I'd guess the "lowest" part is getting really low :) I mean, that
compiler is like 10 years old, it produces slow code.
Stanislav Malyshev, Zend Software Architect
stas@zend.com http://www.zend.com/
(408)253-8829 MSN: stas@zend.com
Yes, but we aren't talking about going to the next one up. We're
talking about going to one that's a bit too recent and won't work out
of the box for everybody.
Why is everyone in such a rush to get away from the lowest common
denominator? Please don't close your eyes to the chief advantage ofI'd guess the "lowest" part is getting really low :) I mean, that
compiler is like 10 years old, it produces slow code.Stanislav Malyshev, Zend Software Architect
stas@zend.com http://www.zend.com/
(408)253-8829 MSN: stas@zend.com
Yes, but we aren't talking about going to the next one up. We're
talking about going to one that's a bit too recent and won't work out
of the box for everybody.
If we are going to move forward, it makes sense to move forward to the
best one today, not trade "very slow" to "a bit faster, but still slow".
If we go through upgrade trouble, we better have something to earn from
it. As for "out of the box for everybody" - we may keep the old build
for releases (I wouldn't do it for snapshots - if you want bleeding
edge, don't run windows 95 ;) at least for 5.x, but we can't
realistically drag all the history of computing behind us forever.
VC2005 compatibility pack has these requirements:
Windows 2000 Service Pack 3; Windows 98; Windows 98 Second Edition;
Windows ME; Windows Server 2003; Windows XP Service Pack 2
I think it's reasonable to expect most of the people would fit one of these.
Stanislav Malyshev, Zend Software Architect
stas@zend.com http://www.zend.com/
(408)253-8829 MSN: stas@zend.com
Truth now Stas, did you read to the end of my mail? I wasn't
suggesting we never upgrade. I was suggesting there are better ways
to do it than alienating our user base.
Yes, but we aren't talking about going to the next one up. We're
talking about going to one that's a bit too recent and won't work out
of the box for everybody.If we are going to move forward, it makes sense to move forward to the
best one today, not trade "very slow" to "a bit faster, but still slow".
If we go through upgrade trouble, we better have something to earn from
it. As for "out of the box for everybody" - we may keep the old build
for releases (I wouldn't do it for snapshots - if you want bleeding
edge, don't run windows 95 ;) at least for 5.x, but we can't
realistically drag all the history of computing behind us forever.VC2005 compatibility pack has these requirements:
Windows 2000 Service Pack 3; Windows 98; Windows 98 Second Edition;
Windows ME; Windows Server 2003; Windows XP Service Pack 2I think it's reasonable to expect most of the people would fit one of these.
Stanislav Malyshev, Zend Software Architect
stas@zend.com http://www.zend.com/
(408)253-8829 MSN: stas@zend.com
Truth now Stas, did you read to the end of my mail? I wasn't
suggesting we never upgrade. I was suggesting there are better ways
to do it than alienating our user base.
Re-read it, but I'm not sure I see what you are proposing besides not
doing it. We want to use better compiler to build PHP on Windows - what
should we do?
Stanislav Malyshev, Zend Software Architect
stas@zend.com http://www.zend.com/
(408)253-8829 MSN: stas@zend.com
Re-read it, but I'm not sure I see what you are proposing besides not
doing it. We want to use better compiler to build PHP on Windows - what
should we do?
I obviously don't have the knack of proposing then :)
What I was trying to say was that it would be a good idea to make
third party lib collections for the various VC versions and make them
available for building. It would give us a way to test both the build
system and the libs themselves (and of course PHP) in the various
CRTs. It would mean that we can just upgrade when we're ready, instead
of being pushed into it when Microsoft are ready (as I strongly
believe is happening now) or having to panic when Apache are ready
(which William's told us is likely imminent). It would make it
possible to have non-official 'experimental' builds in alternative
CRTs, while also retaining a single official build on php.net.
I do think it's important to have a single official build. The thought
of having to explain 'C runtime' to every PHP newb just gives me the
willies...
--
Stanislav Malyshev, Zend Software Architect
stas@zend.com http://www.zend.com/
(408)253-8829 MSN: stas@zend.com
What I was trying to say was that it would be a good idea to make
third party lib collections for the various VC versions and make them
available for building. It would give us a way to test both the build
Well, that would be useful, but I think that's a different subject. And
I'm not sure we want to deal with "various CRTs" - we want to deal only
with one additional, it'd be enough trouble I believe :) So, we want to
have 3rd party libs built with recent VC, but we also want the whole PHP
build with it.
I do think it's important to have a single official build. The thought
of having to explain 'C runtime' to every PHP newb just gives me the
willies...
I think it's very unfortunate that Microsoft was unable to make the
transition smooth, but we can't keep with vc6 forever, and I don't see
what happens in the future that would make the transition better than it
is now.
Stanislav Malyshev, Zend Software Architect
stas@zend.com http://www.zend.com/
(408)253-8829 MSN: stas@zend.com
What I was trying to say was that it would be a good idea to make
third party lib collections for the various VC versions and make them
available for building. It would give us a way to test both the buildWell, that would be useful, but I think that's a different subject. And
I'm not sure we want to deal with "various CRTs" - we want to deal only
with one additional, it'd be enough trouble I believe :) So, we want to
have 3rd party libs built with recent VC, but we also want the whole PHP
build with it.
When I wrote that initially, I was responding to the thread as a
whole, and in the course of this thread there have been five separate
VS versions mentioned. However I think it would be a good thing to
have more than one 'alternative' set of libraries on the go, purely
for development/research purposes initially. There was talk of the
upcoming MS compiler release, for example. Wouldn't it be smart to
have the ability to test new compiler versions as they come up? It
would mean keeping a copy of the source for all the third party libs
used with PHP, but if we're going to provide two sets of those
binaries anyway we'll already have that. Because long after VS 2005
becomes our 'norm', there's every chance that we'll be keeping VC 6
libs somewhere public so that people who still need them can get hold
of them to build PHP against. Not forever, sure, but I'd say at least
another five years before we can safely call it fully obsolete.
I do think it's important to have a single official build. The thought
of having to explain 'C runtime' to every PHP newb just gives me the
willies...I think it's very unfortunate that Microsoft was unable to make the
transition smooth,
s/unfortunate/deliberate, but then I'm a cynic
but we can't keep with vc6 forever, and I don't see
what happens in the future that would make the transition better than it
is now.
I think what is highly likely to happen over the next two years that
will change the situation is that XP usage will drop dramatically.
This year, though, you can still buy brand new machines with XP
installed, and that's without ticking any 'special option'. Companies
might be able to afford the latest hardware, but individuals will
generally use the same box for years on end - and when it comes to
Windows, you can read 'the same operating system' for 'the same box'.
I don't see how it's justifiable to aim a distribution at the high end
of the market and still claim one of PHP's 'selling points' as being
that it can run on your toaster. And I've very strong objections to
php.net shipping MS C runtime libraries to make good our (implied)
promise. It's one thing to offer support for a platform, but entirely
another to tie our software to a third-party library that effectively
upgrades that platform. It also ties us - and all PHP/Windows users -
irrevocably to the MS development schedule.
Last time the 'kill the .dsp files' discussion arose, I argued
vehemently against it. I wouldn't argue against that now, because it's
no longer the case that they're a reliable industry standard. Things
change, but not very fast - and not always predictably either.
- Steph
--
Stanislav Malyshev, Zend Software Architect
stas@zend.com http://www.zend.com/
(408)253-8829 MSN: stas@zend.com
I think what is highly likely to happen over the next two years that
will change the situation is that XP usage will drop dramatically.
Like, people would move to Vista en masse? Don't see it happening in
next two years. Why do it?
This year, though, you can still buy brand new machines with XP
installed, and that's without ticking any 'special option'. Companies
And that would continue for a couple of years at least, because Vista
support among hardware makers... how to say it mildly... leaves a lot to
be desired. Anyway, conditioning having fast PHP binary on Vista sales
doesn't look the best idea to me.
php.net shipping MS C runtime libraries to make good our (implied)
promise. It's one thing to offer support for a platform, but entirely
another to tie our software to a third-party library that effectively
Microsoft is not third-party. Microsoft is OS provider.
upgrades that platform. It also ties us - and all PHP/Windows users -
irrevocably to the MS development schedule.
Didn't you just propose to tie PHP releases and all Windows users to
whenever Vista becomes most of the market?
I think we just need to find a way to build and release a set of good
fast binaries.
Stanislav Malyshev, Zend Software Architect
stas@zend.com http://www.zend.com/
(408)253-8829 MSN: stas@zend.com
I think what is highly likely to happen over the next two years that
will change the situation is that XP usage will drop dramatically.Like, people would move to Vista en masse? Don't see it happening in next
two years. Why do it?
It will happen at some point because if you try to buy a new machine, most
of them come with Vista installed. It won't be very long before they all
have Vista installed.
This year, though, you can still buy brand new machines with XP
installed, and that's without ticking any 'special option'. CompaniesAnd that would continue for a couple of years at least, because Vista
support among hardware makers... how to say it mildly... leaves a lot to
be desired. Anyway, conditioning having fast PHP binary on Vista sales
doesn't look the best idea to me.
Funny - it looks like sound thinking to me, since the fast PHP binary isn't
supported by the platform otherwise.
php.net shipping MS C runtime libraries to make good our (implied)
promise. It's one thing to offer support for a platform, but entirely
another to tie our software to a third-party library that effectivelyMicrosoft is not third-party. Microsoft is OS provider.
Third-party as in 'php.net didn't write it'.
upgrades that platform. It also ties us - and all PHP/Windows users -
irrevocably to the MS development schedule.Didn't you just propose to tie PHP releases and all Windows users to
whenever Vista becomes most of the market?
That's not the same thing as the development schedule. I think MS would
agree with that :)
I think we just need to find a way to build and release a set of good fast
binaries.
... that won't run out of the box.
--
Stanislav Malyshev, Zend Software Architect
stas@zend.com http://www.zend.com/
(408)253-8829 MSN: stas@zend.com
It will happen at some point because if you try to buy a new machine,
most of them come with Vista installed. It won't be very long before
they all have Vista installed.
Microsoft would be ecstatic if that would happen. :) But frankly, I
don't see it really happening in next 2 years. Even win 2000 is
supported until 2011, so I wouldn't expect Vista total domination so soon.
Funny - it looks like sound thinking to me, since the fast PHP binary
isn't supported by the platform otherwise.
It is, yo just need to install one other components. The idea of
component dependency wasn't born yesterday.
... that won't run out of the box.
If you provide right installer, they would. If not, you'd have to
install 1 (one) small binary. Is it really that big a deal? If it is,
there are a number of offerings that would solve it for you, many for
$0. But we probably wouldn't distribute them from php.net.
Stanislav Malyshev, Zend Software Architect
stas@zend.com http://www.zend.com/
(408)253-8829 MSN: stas@zend.com
But we probably wouldn't distribute them from php.net.
That was my main concern, Stas. (That, and the idea of a double offering on
the downloads/snaps pages.)
- Steph
--
Stanislav Malyshev, Zend Software Architect
stas@zend.com http://www.zend.com/
(408)253-8829 MSN: stas@zend.com
Steph wrote:
Hi Andi,
Can I just butt in here for a moment?
Why is everyone in such a rush to get away from the lowest common
denominator? Please don't close your eyes to the chief advantage of
the lcd build, which is that it works as-is on every Windows version
we claim to
support. Even on Windows 98 according to user feedback (although I'd
love a guided tour of the specific optimizations that break platform
compatibility, to get a better idea of where things might fall apart).
If we start building the official PHP distro with VS 2005 we're going
to have to ship the wretched CRT along with it, or else drop support
for everything pre-XP. Is that actually a desired outcome for PHP 5.3?
It seems a tad more
appropriate, to me at least, to leave that alone until our users stop
reporting XP bugs.
I wasn't suggesting replacing the current VC6 builds, I was suggesting
making 2005 builds available for those who want to test. Since linking
to a third party distribution site is out of the question (which boggles
my mind because you DO that for other OS's... Windows is somehow held to
a higher standard I guess), why can't we provide an official download,
or heck even a build at snaps.php.net, (in addition to the VC6 versions)
for the adventurous to use? I would like to find edge cases now instead
of when 2005 IS the default build - and it will happen eventually. And
it's quite frankly foolish to ask the windows users who want to test to
build their own binaries as well, you'll never get a windows test bed
with that attitude. While on unix and linux the "compile it yourself"
is standard thought, that is not the case and windows and never will be,
and all the talks I do on how to build on windows can't erase an
entrenched mentality. (besides the fact that it's just a heck of a lot
harder to set up a build system on windows)
The build system we use is known to work, out of the box, across all
the current MS compiler versions (read: VC6 -> VS 2005 - I'm
old-fashioned enough to see 2008 as 'next year'). The only issue,
then, is third party
libraries. Ergo, all we really need is a 'zip.zip' for each CRT,
surely? This assuming - and I guess we do have to assume it - that MS
are pushing us into the unhappy position of having to distribute our
own builds of third
party libs if we want to support Windows at all. (Of course dropping
that support would be another option, if possibly not a popular one.)
Actually works fine on 2008 as well ;) The problem is most third party
libs we link against have windows support as an afterthought - no one on
the project works on windows or tests on windows and the attitude is so
negative in the open source (particularly gnu) world that the people who
DID originally maintain the ports ran away, so the build support for
MSVC is outdated or missing completely, only people who are brave enough
to assemble make files or projects by hand and fiddle until it builds
have success. (Heck, even libxml2 which has great official windows
build support links against very antiquated libiconv - 1.9 released in
2004 when the latest is 1.12) I'd argue that this has nothing to do with
Microsoft and everything to do with Open Source negative stereotypes.
The distribution of third-party libraries is intended for people
rolling their own PHP builds. I don't see any justification for
distributing more than one CRT version of every PHP release, in fact I
think doing so is
likely to confuse hell out of most of PHP's end users. The only way it
makes any sense is on the 'testing' front - so maybe it'd make sense
to ask for volunteer builder/testers on more specialized page(s) used
for 'zip.zip'
distributions, and set up a bunch of edge case scripts (e.g. stuff
that passes around data structures or uses a lot of IO calls, etc).
The framework to do that already exists in run-tests.php, although the
tests themselves
may not. Setting up something this way - a collection of third party
libs built with VC7, VC8, VC9 when it arrives - and testing the
various library builds with a same-compiler version of PHP in known
critical areas, now that
would be genuinely useful. That would mean that when (most likely)
Apache move on, we're good and ready to move on with them.
This is a good goal, and something I've been working on in general, at
least assembling open source libraries that PHP extensions link against,
and building them on different runtimes. But there's no place for a
"testing area" just for windows that could also distribute libs
currently on the website. Anyone have ideas for a home for this? Maybe
a windows section of gcov? Or maybe test 2005 builds on snaps.php.net
or a page just for binaries for windows? The bottom line is the
performance increase is enough to justify distributing newer builds.
It concerns me that Edin hasn't been involved either in this
discussion or the one a few weeks back, so I'm glad you've been in
touch over this issue off-list. I know Elizabeth knows what she's
talking about when it comes to
VC8 (and probably beyond), and hope she and Edin can come to some sane
arrangement. But please hold back with distributing VC8-only versions
of PHP when we still support platforms pre-dating its C runtime, and
please back off from the idea of offering a range of official PHP
builds with different CRTs. It makes absolutely no sense to do either
thing at this point in time, and it won't make a great deal of sense
to do the latter at any time.
Since when is two versions a range...ah semantics...
nb Andi, Edin's been distributing official NTS builds for some time
now... they make a huge difference to CLI, and a visible difference to
PHP-GTK's draw speed. And please note, even the 'NTS' option has
proved confusing for
some...!
- Steph
I have one last suggestion that maybe Microsoft (and everyone so against
the 2005 builds) might want to think about. PHP does not distribute
binaries for linux and similar distributions, however they do provide
links to external distribution sites. What's to stop Microsoft from
distributing non-thread-safe 2005 builds (obviously optimized for IIS)
on their own servers - and why couldn't the downloads page link to that?
After all PHP provides the same service for other operating systems.
In fact, several of the links on the downloads page aren't even official
builds, but third parties providing the software. Is there some kind of
issue with third party providers not being able to have the same
service, just because they're for Windows? If it's simply because PHP
provides windows binaries already...if the binaries are inferior to
third party offerings...
Anyway, the offer stands to help get libraries up to speed... I'll see
if I can get a hold of Edin, I have space and bandwidth if that's his
biggest issue. I could argue with you all night Steph, but it's obvious
you have an issue with the C runtime changing that Microsoft has done
with its compilers, and so no matter what I say you won't change your
opinion ;) Anyone else (other than Steph or Stas) care to weigh in?
Not to drag this on any longer, but here's my 2 cents on this...
VC 6 builds are not going away any time soon. They work, are well
supported and have gone through years of testing.
However, eventually the builds are going to have to be upgraded to newer
compilers.
With the changing run times, these are going to need a good amount of
testing, so it would be in our best interest to start putting out some
builds with VS 2005 (or 2008 - pick ONE) so that everything (including
working with 3rd party libs) can start being tested, and possibly fixed,
now rather than later.
For all we know, we'll get lucky and all libs have been optimally coded
so even though they might have been compiled with VC6, VS 2003, etc...
and relying on a different run time they all will work under a VS 2005/8
build. On the other hand, if there are problems, who here that is
building on 2005/8 tests EVERY function in EVERY extension? We need a
broader audience to test this, so it makes sense to provide a build
(including pecl extensions for that matter). We don't need the builds
updated so frequently right now, but we do need the builds.
I really don't see what the problem is here. No one here is asking to
replace the official builds right now. We have someone offering to do
the bulk of the work. All she's asking for is some room to put the
builds so that some testing can get started.
Rob
Elizabeth Smith wrote:
Steph wrote:
Hi Andi,
Can I just butt in here for a moment?
Why is everyone in such a rush to get away from the lowest common
denominator? Please don't close your eyes to the chief advantage of
the lcd build, which is that it works as-is on every Windows version
we claim to
support. Even on Windows 98 according to user feedback (although I'd
love a guided tour of the specific optimizations that break platform
compatibility, to get a better idea of where things might fall apart).
If we start building the official PHP distro with VS 2005 we're going
to have to ship the wretched CRT along with it, or else drop support
for everything pre-XP. Is that actually a desired outcome for PHP 5.3?
It seems a tad more
appropriate, to me at least, to leave that alone until our users stop
reporting XP bugs.I wasn't suggesting replacing the current VC6 builds, I was suggesting
making 2005 builds available for those who want to test. Since
linking to a third party distribution site is out of the question
(which boggles my mind because you DO that for other OS's... Windows
is somehow held to a higher standard I guess), why can't we provide an
official download, or heck even a build at snaps.php.net, (in addition
to the VC6 versions) for the adventurous to use? I would like to find
edge cases now instead of when 2005 IS the default build - and it will
happen eventually. And it's quite frankly foolish to ask the windows
users who want to test to build their own binaries as well, you'll
never get a windows test bed with that attitude. While on unix and
linux the "compile it yourself" is standard thought, that is not the
case and windows and never will be, and all the talks I do on how to
build on windows can't erase an entrenched mentality. (besides the
fact that it's just a heck of a lot harder to set up a build system on
windows)The build system we use is known to work, out of the box, across all
the current MS compiler versions (read: VC6 -> VS 2005 - I'm
old-fashioned enough to see 2008 as 'next year'). The only issue,
then, is third party
libraries. Ergo, all we really need is a 'zip.zip' for each CRT,
surely? This assuming - and I guess we do have to assume it - that MS
are pushing us into the unhappy position of having to distribute our
own builds of third
party libs if we want to support Windows at all. (Of course dropping
that support would be another option, if possibly not a popular one.)Actually works fine on 2008 as well ;) The problem is most third
party libs we link against have windows support as an afterthought -
no one on the project works on windows or tests on windows and the
attitude is so negative in the open source (particularly gnu) world
that the people who DID originally maintain the ports ran away, so the
build support for MSVC is outdated or missing completely, only people
who are brave enough to assemble make files or projects by hand and
fiddle until it builds have success. (Heck, even libxml2 which has
great official windows build support links against very antiquated
libiconv - 1.9 released in 2004 when the latest is 1.12) I'd argue
that this has nothing to do with Microsoft and everything to do with
Open Source negative stereotypes.The distribution of third-party libraries is intended for people
rolling their own PHP builds. I don't see any justification for
distributing more than one CRT version of every PHP release, in fact I
think doing so is
likely to confuse hell out of most of PHP's end users. The only way it
makes any sense is on the 'testing' front - so maybe it'd make sense
to ask for volunteer builder/testers on more specialized page(s) used
for 'zip.zip'
distributions, and set up a bunch of edge case scripts (e.g. stuff
that passes around data structures or uses a lot of IO calls, etc).
The framework to do that already exists in run-tests.php, although the
tests themselves
may not. Setting up something this way - a collection of third party
libs built with VC7, VC8, VC9 when it arrives - and testing the
various library builds with a same-compiler version of PHP in known
critical areas, now that
would be genuinely useful. That would mean that when (most likely)
Apache move on, we're good and ready to move on with them.This is a good goal, and something I've been working on in general, at
least assembling open source libraries that PHP extensions link
against, and building them on different runtimes. But there's no
place for a "testing area" just for windows that could also distribute
libs currently on the website. Anyone have ideas for a home for
this? Maybe a windows section of gcov? Or maybe test 2005 builds on
snaps.php.net or a page just for binaries for windows? The bottom
line is the performance increase is enough to justify distributing
newer builds.It concerns me that Edin hasn't been involved either in this
discussion or the one a few weeks back, so I'm glad you've been in
touch over this issue off-list. I know Elizabeth knows what she's
talking about when it comes to
VC8 (and probably beyond), and hope she and Edin can come to some sane
arrangement. But please hold back with distributing VC8-only versions
of PHP when we still support platforms pre-dating its C runtime, and
please back off from the idea of offering a range of official PHP
builds with different CRTs. It makes absolutely no sense to do either
thing at this point in time, and it won't make a great deal of sense
to do the latter at any time.Since when is two versions a range...ah semantics...
nb Andi, Edin's been distributing official NTS builds for some time
now... they make a huge difference to CLI, and a visible difference to
PHP-GTK's draw speed. And please note, even the 'NTS' option has
proved confusing for
some...!
- Steph
I have one last suggestion that maybe Microsoft (and everyone so
against the 2005 builds) might want to think about. PHP does not
distribute binaries for linux and similar distributions, however they
do provide links to external distribution sites. What's to stop
Microsoft from distributing non-thread-safe 2005 builds (obviously
optimized for IIS) on their own servers - and why couldn't the
downloads page link to that? After all PHP provides the same service
for other operating systems. In fact, several of the links on the
downloads page aren't even official builds, but third parties
providing the software. Is there some kind of issue with third party
providers not being able to have the same service, just because
they're for Windows? If it's simply because PHP provides windows
binaries already...if the binaries are inferior to third party
offerings...Anyway, the offer stands to help get libraries up to speed... I'll
see if I can get a hold of Edin, I have space and bandwidth if that's
his biggest issue. I could argue with you all night Steph, but it's
obvious you have an issue with the C runtime changing that Microsoft
has done with its compilers, and so no matter what I say you won't
change your opinion ;) Anyone else (other than Steph or Stas) care to
weigh in?
Not to drag this on any longer, but here's my 2 cents on this...
VC 6 builds are not going away any time soon. They work, are well
supported and have gone through years of testing.However, eventually the builds are going to have to be upgraded to newer
compilers.
With the changing run times, these are going to need a good amount of
testing, so it would be in our best interest to start putting out some
builds with VS 2005 (or 2008 - pick ONE) so that everything (including
working with 3rd party libs) can start being tested, and possibly fixed,
now rather than later.For all we know, we'll get lucky and all libs have been optimally coded
so even though they might have been compiled with VC6, VS 2003, etc...
and relying on a different run time they all will work under a VS 2005/8
build. On the other hand, if there are problems, who here that is
building on 2005/8 tests EVERY function in EVERY extension? We need a
broader audience to test this, so it makes sense to provide a build
(including pecl extensions for that matter). We don't need the builds
updated so frequently right now, but we do need the builds.I really don't see what the problem is here. No one here is asking to
replace the official builds right now. We have someone offering to do
the bulk of the work. All she's asking for is some room to put the
builds so that some testing can get started.Rob
Hi.
It would be useful to see some stats about actual performance
increases from using the new runtime. If it is minimal, then
cost/benifit isn't great and we are probably going to have to
"make-do" for a while on VC6.
But, if MSVC2005EE (Microsoft Visual C++ 2005 Express Edition -
specifically chosen because of the "free" nature of the product -
giving more opportunity to us unfortunates who have to normally pay
for all of our development tools to "have a go" at building our own
PHP binaries), offers a significant performance increase, then this is
the marketing tool we use.
Sure, we will have to explain why you need to install a runtime
library, but this is windows. Windows users unknowningly install the
latest runtime all the time. Many MSI installers have them there
simply because that is the safest way to install it and have you app
run.
Sure it makes the binary package bigger, so you have 2 packages - one
with and one without. You make the recommendation that you have the
"with" package if you are not sure of the difference.
Even at this current time, PHP is relying on the presence of a runtime
library. It just so happens that it is so ancient that it is not
possible to be on windows without it.
So, give 'Liz the space. Please. So those of us who will benefit from
her expertise can do so.
I really feel that the core developers who only deal with *nix really
should allow those that deal with windows be allowed to do so. It has
no impact on *nix development other than making code compliant across
multiple platforms (a good thing, surely?)
As a windows user I feel that we need to move forward and offer
another binary which takes advantage of a more modern run time - if
the benefit can be expressed.
And with all of that, I love PHP. It pays my mortgage. I am happy with
it. I just wish I could my patches were accepted easier -
http://bugs.php.net/bug.php?id=43261
Elizabeth Smith wrote:
Steph wrote:
Hi Andi,
Can I just butt in here for a moment?
Why is everyone in such a rush to get away from the lowest common
denominator? Please don't close your eyes to the chief advantage of
the lcd build, which is that it works as-is on every Windows version
we claim to
support. Even on Windows 98 according to user feedback (although I'd
love a guided tour of the specific optimizations that break platform
compatibility, to get a better idea of where things might fall apart).
If we start building the official PHP distro with VS 2005 we're going
to have to ship the wretched CRT along with it, or else drop support
for everything pre-XP. Is that actually a desired outcome for PHP 5.3?
It seems a tad more
appropriate, to me at least, to leave that alone until our users stop
reporting XP bugs.I wasn't suggesting replacing the current VC6 builds, I was suggesting
making 2005 builds available for those who want to test. Since
linking to a third party distribution site is out of the question
(which boggles my mind because you DO that for other OS's... Windows
is somehow held to a higher standard I guess), why can't we provide an
official download, or heck even a build at snaps.php.net, (in addition
to the VC6 versions) for the adventurous to use? I would like to find
edge cases now instead of when 2005 IS the default build - and it will
happen eventually. And it's quite frankly foolish to ask the windows
users who want to test to build their own binaries as well, you'll
never get a windows test bed with that attitude. While on unix and
linux the "compile it yourself" is standard thought, that is not the
case and windows and never will be, and all the talks I do on how to
build on windows can't erase an entrenched mentality. (besides the
fact that it's just a heck of a lot harder to set up a build system on
windows)The build system we use is known to work, out of the box, across all
the current MS compiler versions (read: VC6 -> VS 2005 - I'm
old-fashioned enough to see 2008 as 'next year'). The only issue,
then, is third party
libraries. Ergo, all we really need is a 'zip.zip' for each CRT,
surely? This assuming - and I guess we do have to assume it - that MS
are pushing us into the unhappy position of having to distribute our
own builds of third
party libs if we want to support Windows at all. (Of course dropping
that support would be another option, if possibly not a popular one.)Actually works fine on 2008 as well ;) The problem is most third
party libs we link against have windows support as an afterthought -
no one on the project works on windows or tests on windows and the
attitude is so negative in the open source (particularly gnu) world
that the people who DID originally maintain the ports ran away, so the
build support for MSVC is outdated or missing completely, only people
who are brave enough to assemble make files or projects by hand and
fiddle until it builds have success. (Heck, even libxml2 which has
great official windows build support links against very antiquated
libiconv - 1.9 released in 2004 when the latest is 1.12) I'd argue
that this has nothing to do with Microsoft and everything to do with
Open Source negative stereotypes.The distribution of third-party libraries is intended for people
rolling their own PHP builds. I don't see any justification for
distributing more than one CRT version of every PHP release, in fact I
think doing so is
likely to confuse hell out of most of PHP's end users. The only way it
makes any sense is on the 'testing' front - so maybe it'd make sense
to ask for volunteer builder/testers on more specialized page(s) used
for 'zip.zip'
distributions, and set up a bunch of edge case scripts (e.g. stuff
that passes around data structures or uses a lot of IO calls, etc).
The framework to do that already exists in run-tests.php, although the
tests themselves
may not. Setting up something this way - a collection of third party
libs built with VC7, VC8, VC9 when it arrives - and testing the
various library builds with a same-compiler version of PHP in known
critical areas, now that
would be genuinely useful. That would mean that when (most likely)
Apache move on, we're good and ready to move on with them.This is a good goal, and something I've been working on in general, at
least assembling open source libraries that PHP extensions link
against, and building them on different runtimes. But there's no
place for a "testing area" just for windows that could also distribute
libs currently on the website. Anyone have ideas for a home for
this? Maybe a windows section of gcov? Or maybe test 2005 builds on
snaps.php.net or a page just for binaries for windows? The bottom
line is the performance increase is enough to justify distributing
newer builds.It concerns me that Edin hasn't been involved either in this
discussion or the one a few weeks back, so I'm glad you've been in
touch over this issue off-list. I know Elizabeth knows what she's
talking about when it comes to
VC8 (and probably beyond), and hope she and Edin can come to some sane
arrangement. But please hold back with distributing VC8-only versions
of PHP when we still support platforms pre-dating its C runtime, and
please back off from the idea of offering a range of official PHP
builds with different CRTs. It makes absolutely no sense to do either
thing at this point in time, and it won't make a great deal of sense
to do the latter at any time.Since when is two versions a range...ah semantics...
nb Andi, Edin's been distributing official NTS builds for some time
now... they make a huge difference to CLI, and a visible difference to
PHP-GTK's draw speed. And please note, even the 'NTS' option has
proved confusing for
some...!
- Steph
I have one last suggestion that maybe Microsoft (and everyone so
against the 2005 builds) might want to think about. PHP does not
distribute binaries for linux and similar distributions, however they
do provide links to external distribution sites. What's to stop
Microsoft from distributing non-thread-safe 2005 builds (obviously
optimized for IIS) on their own servers - and why couldn't the
downloads page link to that? After all PHP provides the same service
for other operating systems. In fact, several of the links on the
downloads page aren't even official builds, but third parties
providing the software. Is there some kind of issue with third party
providers not being able to have the same service, just because
they're for Windows? If it's simply because PHP provides windows
binaries already...if the binaries are inferior to third party
offerings...Anyway, the offer stands to help get libraries up to speed... I'll
see if I can get a hold of Edin, I have space and bandwidth if that's
his biggest issue. I could argue with you all night Steph, but it's
obvious you have an issue with the C runtime changing that Microsoft
has done with its compilers, and so no matter what I say you won't
change your opinion ;) Anyone else (other than Steph or Stas) care to
weigh in?--
--
Richard Quadling
Zend Certified Engineer : http://zend.com/zce.php?c=ZEND002498&r=213474731
"Standing on the shoulders of some very clever giants!"
Hi Richard,
It would be useful to see some stats about actual performance
increases from using the new runtime. If it is minimal, then
cost/benifit isn't great and we are probably going to have to
"make-do" for a while on VC6.
Agree.
But, if MSVC2005EE (Microsoft Visual C++ 2005 Express Edition -
specifically chosen because of the "free" nature of the product -
giving more opportunity to us unfortunates who have to normally pay
for all of our development tools to "have a go" at building our own
PHP binaries), offers a significant performance increase, then this is
the marketing tool we use.
'marketing tool'???
Sure, we will have to explain why you need to install a runtime
library, but this is windows.
And these are Windows users.
Windows users unknowningly install the
latest runtime all the time. Many MSI installers have them there
simply because that is the safest way to install it and have you app
run.Sure it makes the binary package bigger, so you have 2 packages - one
with and one without. You make the recommendation that you have the
"with" package if you are not sure of the difference.Even at this current time, PHP is relying on the presence of a runtime
library. It just so happens that it is so ancient that it is not
possible to be on windows without it.
'Relies on the presence of' is not the same thing as 'distributes'. The
runtime library we rely on the presence of has been shipped by MS since
Windows 98.
So, give 'Liz the space. Please. So those of us who will benefit from
her expertise can do so.
Where did anyone say she should have no space?
I really feel that the core developers who only deal with *nix really
should allow those that deal with windows be allowed to do so. It has
no impact on *nix development other than making code compliant across
multiple platforms (a good thing, surely?)
Couldn't agree more. Although actually most of the *nix guys have ended up
having to load doze at some point because otherwise Windows bugs don't get
tested/fixed.
As a windows user I feel that we need to move forward and offer
another binary which takes advantage of a more modern run time - if
the benefit can be expressed.
Are you assuming a Windows user is a rarity? lol
- Steph
Hi Richard,
It would be useful to see some stats about actual performance
increases from using the new runtime. If it is minimal, then
cost/benifit isn't great and we are probably going to have to
"make-do" for a while on VC6.Agree.
But, if MSVC2005EE (Microsoft Visual C++ 2005 Express Edition -
specifically chosen because of the "free" nature of the product -
giving more opportunity to us unfortunates who have to normally pay
for all of our development tools to "have a go" at building our own
PHP binaries), offers a significant performance increase, then this is
the marketing tool we use.'marketing tool'???
"PHPx will run with these Microsoft libraries and provide a 25% on
average performance increase in real world tests" sort of thing. If
the new libraries REALLY are that much better we owe it to the users
to give it to them!
Sure, we will have to explain why you need to install a runtime
library, but this is windows.And these are Windows users.
Ha. Yes. I see your point, but for those INSTALLING PHP, they would
prefer an MSI which just "did it". So, bundle the libs and move on.
Windows users unknowningly install the
latest runtime all the time. Many MSI installers have them there
simply because that is the safest way to install it and have you app
run.Sure it makes the binary package bigger, so you have 2 packages - one
with and one without. You make the recommendation that you have the
"with" package if you are not sure of the difference.Even at this current time, PHP is relying on the presence of a runtime
library. It just so happens that it is so ancient that it is not
possible to be on windows without it.'Relies on the presence of' is not the same thing as 'distributes'. The
runtime library we rely on the presence of has been shipped by MS since
Windows 98.So, give 'Liz the space. Please. So those of us who will benefit from
her expertise can do so.Where did anyone say she should have no space?
Ok, support then. Rather than a no we are not, but an OK, yes, good
idea, let's do it and see what the problems are.
I really feel that the core developers who only deal with *nix really
should allow those that deal with windows be allowed to do so. It has
no impact on *nix development other than making code compliant across
multiple platforms (a good thing, surely?)Couldn't agree more. Although actually most of the *nix guys have ended up
having to load doze at some point because otherwise Windows bugs don't get
tested/fixed.
Some of us doze users submit patches which are overlooked or ignored!
As a windows user I feel that we need to move forward and offer
another binary which takes advantage of a more modern run time - if
the benefit can be expressed.Are you assuming a Windows user is a rarity? lol
No, I would guess that most people who INTERACT with PHP are windows
users. Most people who CODE PHP with are probably NOT windows users.
So, more *nix webservers, but more IE browsers.
"Prove the benefit! Enhance the world!" (to suckingly paraphrase Heroes).
- Steph
Richard.
Richard Quadling
Zend Certified Engineer : http://zend.com/zce.php?c=ZEND002498&r=213474731
"Standing on the shoulders of some very clever giants!"
Where did anyone say she should have no space?
Ok, support then. Rather than a no we are not, but an OK, yes, good
idea, let's do it and see what the problems are.
I thought I'd done that two days ago...?
/me checks timestamp on mail.
Some of us doze users submit patches which are overlooked or ignored!
Know that feeling!
- Steph
Rob,
Elizabeth is being paid by Microsoft to get a PHP distro with the 2005 CRT
onto the official downloads page. I don't think it's beneficial to PHP or
its users to take that approach. We have a QA site, and I think if there are
to be test distributions then that's the place for them. I've also offered
up a good way of making sure we have ongoing Windows support into future CRT
generations, but nobody seems very interested in it.
- Steph
----- Original Message -----
From: "Rob Richards" rrichards@ctindustries.net
To: "Elizabeth Smith" emsmith@elizabethmariesmith.com
Cc: internals@lists.php.net
Sent: Wednesday, November 14, 2007 9:51 AM
Subject: Re: [PHP-DEV] Providing Visual Studio 2005 builds (again)
Not to drag this on any longer, but here's my 2 cents on this...
VC 6 builds are not going away any time soon. They work, are well
supported and have gone through years of testing.However, eventually the builds are going to have to be upgraded to newer
compilers.
With the changing run times, these are going to need a good amount of
testing, so it would be in our best interest to start putting out some
builds with VS 2005 (or 2008 - pick ONE) so that everything (including
working with 3rd party libs) can start being tested, and possibly fixed,
now rather than later.For all we know, we'll get lucky and all libs have been optimally coded so
even though they might have been compiled with VC6, VS 2003, etc... and
relying on a different run time they all will work under a VS 2005/8
build. On the other hand, if there are problems, who here that is building
on 2005/8 tests EVERY function in EVERY extension? We need a broader
audience to test this, so it makes sense to provide a build (including
pecl extensions for that matter). We don't need the builds updated so
frequently right now, but we do need the builds.I really don't see what the problem is here. No one here is asking to
replace the official builds right now. We have someone offering to do the
bulk of the work. All she's asking for is some room to put the builds so
that some testing can get started.Rob
Elizabeth Smith wrote:
Steph wrote:
Hi Andi,
Can I just butt in here for a moment?
Why is everyone in such a rush to get away from the lowest common
denominator? Please don't close your eyes to the chief advantage of
the lcd build, which is that it works as-is on every Windows version
we claim to
support. Even on Windows 98 according to user feedback (although I'd
love a guided tour of the specific optimizations that break platform
compatibility, to get a better idea of where things might fall apart).
If we start building the official PHP distro with VS 2005 we're going
to have to ship the wretched CRT along with it, or else drop support
for everything pre-XP. Is that actually a desired outcome for PHP 5.3?
It seems a tad more
appropriate, to me at least, to leave that alone until our users stop
reporting XP bugs.I wasn't suggesting replacing the current VC6 builds, I was suggesting
making 2005 builds available for those who want to test. Since linking
to a third party distribution site is out of the question (which boggles
my mind because you DO that for other OS's... Windows is somehow held to
a higher standard I guess), why can't we provide an official download, or
heck even a build at snaps.php.net, (in addition to the VC6 versions) for
the adventurous to use? I would like to find edge cases now instead of
when 2005 IS the default build - and it will happen eventually. And it's
quite frankly foolish to ask the windows users who want to test to build
their own binaries as well, you'll never get a windows test bed with that
attitude. While on unix and linux the "compile it yourself" is standard
thought, that is not the case and windows and never will be, and all the
talks I do on how to build on windows can't erase an entrenched
mentality. (besides the fact that it's just a heck of a lot harder to set
up a build system on windows)The build system we use is known to work, out of the box, across all
the current MS compiler versions (read: VC6 -> VS 2005 - I'm
old-fashioned enough to see 2008 as 'next year'). The only issue,
then, is third party
libraries. Ergo, all we really need is a 'zip.zip' for each CRT,
surely? This assuming - and I guess we do have to assume it - that MS
are pushing us into the unhappy position of having to distribute our
own builds of third
party libs if we want to support Windows at all. (Of course dropping
that support would be another option, if possibly not a popular one.)Actually works fine on 2008 as well ;) The problem is most third party
libs we link against have windows support as an afterthought - no one on
the project works on windows or tests on windows and the attitude is so
negative in the open source (particularly gnu) world that the people who
DID originally maintain the ports ran away, so the build support for MSVC
is outdated or missing completely, only people who are brave enough to
assemble make files or projects by hand and fiddle until it builds have
success. (Heck, even libxml2 which has great official windows build
support links against very antiquated libiconv - 1.9 released in 2004
when the latest is 1.12) I'd argue that this has nothing to do with
Microsoft and everything to do with Open Source negative stereotypes.The distribution of third-party libraries is intended for people
rolling their own PHP builds. I don't see any justification for
distributing more than one CRT version of every PHP release, in fact I
think doing so is
likely to confuse hell out of most of PHP's end users. The only way it
makes any sense is on the 'testing' front - so maybe it'd make sense
to ask for volunteer builder/testers on more specialized page(s) used
for 'zip.zip'
distributions, and set up a bunch of edge case scripts (e.g. stuff
that passes around data structures or uses a lot of IO calls, etc).
The framework to do that already exists in run-tests.php, although the
tests themselves
may not. Setting up something this way - a collection of third party
libs built with VC7, VC8, VC9 when it arrives - and testing the
various library builds with a same-compiler version of PHP in known
critical areas, now that
would be genuinely useful. That would mean that when (most likely)
Apache move on, we're good and ready to move on with them.This is a good goal, and something I've been working on in general, at
least assembling open source libraries that PHP extensions link against,
and building them on different runtimes. But there's no place for a
"testing area" just for windows that could also distribute libs currently
on the website. Anyone have ideas for a home for this? Maybe a windows
section of gcov? Or maybe test 2005 builds on snaps.php.net or a page
just for binaries for windows? The bottom line is the performance
increase is enough to justify distributing newer builds.It concerns me that Edin hasn't been involved either in this
discussion or the one a few weeks back, so I'm glad you've been in
touch over this issue off-list. I know Elizabeth knows what she's
talking about when it comes to
VC8 (and probably beyond), and hope she and Edin can come to some sane
arrangement. But please hold back with distributing VC8-only versions
of PHP when we still support platforms pre-dating its C runtime, and
please back off from the idea of offering a range of official PHP
builds with different CRTs. It makes absolutely no sense to do either
thing at this point in time, and it won't make a great deal of sense
to do the latter at any time.Since when is two versions a range...ah semantics...
nb Andi, Edin's been distributing official NTS builds for some time
now... they make a huge difference to CLI, and a visible difference to
PHP-GTK's draw speed. And please note, even the 'NTS' option has
proved confusing for
some...!
- Steph
I have one last suggestion that maybe Microsoft (and everyone so against
the 2005 builds) might want to think about. PHP does not distribute
binaries for linux and similar distributions, however they do provide
links to external distribution sites. What's to stop Microsoft from
distributing non-thread-safe 2005 builds (obviously optimized for IIS) on
their own servers - and why couldn't the downloads page link to that?
After all PHP provides the same service for other operating systems. In
fact, several of the links on the downloads page aren't even official
builds, but third parties providing the software. Is there some kind of
issue with third party providers not being able to have the same service,
just because they're for Windows? If it's simply because PHP provides
windows binaries already...if the binaries are inferior to third party
offerings...Anyway, the offer stands to help get libraries up to speed... I'll see
if I can get a hold of Edin, I have space and bandwidth if that's his
biggest issue. I could argue with you all night Steph, but it's obvious
you have an issue with the C runtime changing that Microsoft has done
with its compilers, and so no matter what I say you won't change your
opinion ;) Anyone else (other than Steph or Stas) care to weigh in?
Steph Fox wrote:
Rob,
Elizabeth is being paid by Microsoft to get a PHP distro with the 2005
CRT onto the official downloads page. I don't think it's beneficial to
PHP or its users to take that approach. We have a QA site, and I think
if there are to be test distributions then that's the place for them.
I've also offered up a good way of making sure we have ongoing Windows
support into future CRT generations, but nobody seems very interested in
it.
- Steph
Oh for goodness sakes Steph, they did ask what it would take to make it
happen at the Dev summit, and the guys jokingly said "a free Xbox" but
for your information I haven't taken a thing from them nor will I - talk
about starting rumors,.
Hi Elizabeth,
Oh for goodness sakes Steph, they did ask what it would take to make it
happen at the Dev summit, and the guys jokingly said "a free Xbox" but for
your information I haven't taken a thing from them nor will I - talk about
starting rumors,.
I was going on what you told me in irc yesterday. OK so you aren't being
paid by them (so why say you are?), but there is pressure on you to get
that build onto the official download page.
Can I just ask what the problem is with using qa for this? The more I think
about it the better idea it seems. Link on the download page ('Too slow? Try
our beta version.')
- Steph
Steph Fox wrote:
Hi Elizabeth,
Oh for goodness sakes Steph, they did ask what it would take to make
it happen at the Dev summit, and the guys jokingly said "a free Xbox"
but for your information I haven't taken a thing from them nor will I
- talk about starting rumors,.
I was going on what you told me in irc yesterday. OK so you aren't being
paid by them (so why say you are?), but there is pressure on you to
get that build onto the official download page.Can I just ask what the problem is with using qa for this? The more I
think about it the better idea it seems. Link on the download page ('Too
slow? Try our beta version.')
- Steph
I said "they offered me an XBox" not "I'm going to take it ;)"
The issue isn't "builds on the official downloads page" (after all I
mentioned snaps.php.net would work as well) - the issue is providing
pre-compiled binaries for users, not just libraries. On the QA site
would be fine, provided we can get news on the php front page "all you
IIS people on windows - can you test this faster version please"
My issue is providing only third party libraries and saying "build it
and test it" because that's not going to happen for windows users,
despite the tools being free.
Yay, I think we're coming to an agreement :)
----- Original Message -----
From: "Elizabeth Smith" emsmith@elizabethmariesmith.com
To: internals@lists.php.net
Sent: Wednesday, November 14, 2007 2:41 PM
Subject: Re: [PHP-DEV] Providing Visual Studio 2005 builds (again)
Steph Fox wrote:
Hi Elizabeth,
Oh for goodness sakes Steph, they did ask what it would take to make it
happen at the Dev summit, and the guys jokingly said "a free Xbox" but
for your information I haven't taken a thing from them nor will I - talk
about starting rumors,.I was going on what you told me in irc yesterday. OK so you aren't being
paid by them (so why say you are?), but there is pressure on you to get
that build onto the official download page.Can I just ask what the problem is with using qa for this? The more I
think about it the better idea it seems. Link on the download page ('Too
slow? Try our beta version.')
- Steph
I said "they offered me an XBox" not "I'm going to take it ;)"
The issue isn't "builds on the official downloads page" (after all I
mentioned snaps.php.net would work as well) - the issue is providing
pre-compiled binaries for users, not just libraries. On the QA site would
be fine, provided we can get news on the php front page "all you IIS
people on windows - can you test this faster version please"My issue is providing only third party libraries and saying "build it and
test it" because that's not going to happen for windows users, despite the
tools being free.
Hi Steph
Steph Fox wrote:
Rob,
Elizabeth is being paid by Microsoft to get a PHP distro with the 2005
CRT onto the official downloads page. I don't think it's beneficial to
PHP or its users to take that approach. We have a QA site, and I think
if there are to be test distributions then that's the place for them.
I've also offered up a good way of making sure we have ongoing Windows
support into future CRT generations, but nobody seems very interested
in it.
I guess the point I was trying to make was that I don't care where it
goes. Either QA or snaps is the best place, but it just needs to be made
available.
As for anyone's motives for wanting to do this; it really isn't a
concern of mine because I agree with making a build available.
Rob
- Steph
----- Original Message ----- From: "Rob Richards"
rrichards@ctindustries.net
To: "Elizabeth Smith" emsmith@elizabethmariesmith.com
Cc: internals@lists.php.net
Sent: Wednesday, November 14, 2007 9:51 AM
Subject: Re: [PHP-DEV] Providing Visual Studio 2005 builds (again)Not to drag this on any longer, but here's my 2 cents on this...
VC 6 builds are not going away any time soon. They work, are well
supported and have gone through years of testing.However, eventually the builds are going to have to be upgraded to
newer compilers.
With the changing run times, these are going to need a good amount of
testing, so it would be in our best interest to start putting out
some builds with VS 2005 (or 2008 - pick ONE) so that everything
(including working with 3rd party libs) can start being tested, and
possibly fixed, now rather than later.For all we know, we'll get lucky and all libs have been optimally
coded so even though they might have been compiled with VC6, VS 2003,
etc... and relying on a different run time they all will work under a
VS 2005/8 build. On the other hand, if there are problems, who here
that is building on 2005/8 tests EVERY function in EVERY extension?
We need a broader audience to test this, so it makes sense to provide
a build (including pecl extensions for that matter). We don't need
the builds updated so frequently right now, but we do need the builds.I really don't see what the problem is here. No one here is asking to
replace the official builds right now. We have someone offering to do
the bulk of the work. All she's asking for is some room to put the
builds so that some testing can get started.Rob
Elizabeth Smith wrote:
Steph wrote:
Hi Andi,
Can I just butt in here for a moment?
Why is everyone in such a rush to get away from the lowest common
denominator? Please don't close your eyes to the chief advantage of
the lcd build, which is that it works as-is on every Windows version
we claim to
support. Even on Windows 98 according to user feedback (although I'd
love a guided tour of the specific optimizations that break platform
compatibility, to get a better idea of where things might fall apart).
If we start building the official PHP distro with VS 2005 we're going
to have to ship the wretched CRT along with it, or else drop support
for everything pre-XP. Is that actually a desired outcome for PHP 5.3?
It seems a tad more
appropriate, to me at least, to leave that alone until our users stop
reporting XP bugs.I wasn't suggesting replacing the current VC6 builds, I was
suggesting making 2005 builds available for those who want to test.
Since linking to a third party distribution site is out of the
question (which boggles my mind because you DO that for other
OS's... Windows is somehow held to a higher standard I guess), why
can't we provide an official download, or heck even a build at
snaps.php.net, (in addition to the VC6 versions) for the adventurous
to use? I would like to find edge cases now instead of when 2005 IS
the default build - and it will happen eventually. And it's quite
frankly foolish to ask the windows users who want to test to build
their own binaries as well, you'll never get a windows test bed with
that attitude. While on unix and linux the "compile it yourself" is
standard thought, that is not the case and windows and never will
be, and all the talks I do on how to build on windows can't erase an
entrenched mentality. (besides the fact that it's just a heck of a
lot harder to set up a build system on windows)The build system we use is known to work, out of the box, across all
the current MS compiler versions (read: VC6 -> VS 2005 - I'm
old-fashioned enough to see 2008 as 'next year'). The only issue,
then, is third party
libraries. Ergo, all we really need is a 'zip.zip' for each CRT,
surely? This assuming - and I guess we do have to assume it - that MS
are pushing us into the unhappy position of having to distribute our
own builds of third
party libs if we want to support Windows at all. (Of course dropping
that support would be another option, if possibly not a popular one.)Actually works fine on 2008 as well ;) The problem is most third
party libs we link against have windows support as an afterthought -
no one on the project works on windows or tests on windows and the
attitude is so negative in the open source (particularly gnu) world
that the people who DID originally maintain the ports ran away, so
the build support for MSVC is outdated or missing completely, only
people who are brave enough to assemble make files or projects by
hand and fiddle until it builds have success. (Heck, even libxml2
which has great official windows build support links against very
antiquated libiconv - 1.9 released in 2004 when the latest is 1.12)
I'd argue that this has nothing to do with Microsoft and everything
to do with Open Source negative stereotypes.The distribution of third-party libraries is intended for people
rolling their own PHP builds. I don't see any justification for
distributing more than one CRT version of every PHP release, in fact I
think doing so is
likely to confuse hell out of most of PHP's end users. The only way it
makes any sense is on the 'testing' front - so maybe it'd make sense
to ask for volunteer builder/testers on more specialized page(s) used
for 'zip.zip'
distributions, and set up a bunch of edge case scripts (e.g. stuff
that passes around data structures or uses a lot of IO calls, etc).
The framework to do that already exists in run-tests.php, although the
tests themselves
may not. Setting up something this way - a collection of third party
libs built with VC7, VC8, VC9 when it arrives - and testing the
various library builds with a same-compiler version of PHP in known
critical areas, now that
would be genuinely useful. That would mean that when (most likely)
Apache move on, we're good and ready to move on with them.This is a good goal, and something I've been working on in general,
at least assembling open source libraries that PHP extensions link
against, and building them on different runtimes. But there's no
place for a "testing area" just for windows that could also
distribute libs currently on the website. Anyone have ideas for a
home for this? Maybe a windows section of gcov? Or maybe test 2005
builds on snaps.php.net or a page just for binaries for windows?
The bottom line is the performance increase is enough to justify
distributing newer builds.It concerns me that Edin hasn't been involved either in this
discussion or the one a few weeks back, so I'm glad you've been in
touch over this issue off-list. I know Elizabeth knows what she's
talking about when it comes to
VC8 (and probably beyond), and hope she and Edin can come to some sane
arrangement. But please hold back with distributing VC8-only versions
of PHP when we still support platforms pre-dating its C runtime, and
please back off from the idea of offering a range of official PHP
builds with different CRTs. It makes absolutely no sense to do either
thing at this point in time, and it won't make a great deal of sense
to do the latter at any time.Since when is two versions a range...ah semantics...
nb Andi, Edin's been distributing official NTS builds for some time
now... they make a huge difference to CLI, and a visible difference to
PHP-GTK's draw speed. And please note, even the 'NTS' option has
proved confusing for
some...!
- Steph
I have one last suggestion that maybe Microsoft (and everyone so
against the 2005 builds) might want to think about. PHP does not
distribute binaries for linux and similar distributions, however
they do provide links to external distribution sites. What's to
stop Microsoft from distributing non-thread-safe 2005 builds
(obviously optimized for IIS) on their own servers - and why
couldn't the downloads page link to that? After all PHP provides the
same service for other operating systems. In fact, several of the
links on the downloads page aren't even official builds, but third
parties providing the software. Is there some kind of issue with
third party providers not being able to have the same service, just
because they're for Windows? If it's simply because PHP provides
windows binaries already...if the binaries are inferior to third
party offerings...Anyway, the offer stands to help get libraries up to speed... I'll
see if I can get a hold of Edin, I have space and bandwidth if
that's his biggest issue. I could argue with you all night Steph,
but it's obvious you have an issue with the C runtime changing that
Microsoft has done with its compilers, and so no matter what I say
you won't change your opinion ;) Anyone else (other than Steph or
Stas) care to weigh in?
Hi Elizabeth,
Bear in mind that the first part of this discussion (at the start of
October) passed me by completely, so I'm arguing in both at present.
I wasn't suggesting replacing the current VC6 builds, I was suggesting
making 2005 builds available for those who want to test. Since linking to
a third party distribution site is out of the question (which boggles my
mind because you DO that for other OS's... Windows is somehow held to a
higher standard I guess),
Has anybody suggested it? (I presume you mean 'to pick up the CRT' here?) To
my mind it would be infinitely preferable to bundling the CRT with the PHP
distro.
why can't we provide an official download,
or heck even a build at snaps.php.net, (in addition to the VC6 versions)
for the adventurous to use?
Perhaps you haven't noticed that when a bug is fixed in PHP the bug reporter
is sent to CVS or the snaps box to test the fix?
I would like to find edge cases now instead
of when 2005 IS the default build - and it will happen eventually.
We agree on this.
And
it's quite frankly foolish to ask the windows users who want to test to
build their own binaries as well, you'll never get a windows test bed with
that attitude.
This is a free compiler, is it not?
I think though that the QA site's a better place for testing things. If
there must be differently-abled binaries, why not distribute them from
there? You can put a notice on php.net asking for people to test them. You
can even say in that notice that they're so much faster etc, which ought to
pull in the adventurous.
While on unix and linux the "compile it yourself"
is standard thought, that is not the case and windows and never will be,
and all the talks I do on how to build on windows can't erase an
entrenched mentality. (besides the fact that it's just a heck of a lot
harder to set up a build system on windows)
It's not hard to set up a build system on windows. We could still do with
rewriting bison to build with sane paths, but apart from that it's dead
simple. (Edin won't agree with me on this point.)
The build system we use is known to work, out of the box, across all
the current MS compiler versions (read: VC6 -> VS 2005 - I'm
old-fashioned enough to see 2008 as 'next year'). The only issue,
then, is third party
libraries. Ergo, all we really need is a 'zip.zip' for each CRT,
surely? This assuming - and I guess we do have to assume it - that MS
are pushing us into the unhappy position of having to distribute our
own builds of third
party libs if we want to support Windows at all. (Of course dropping
that support would be another option, if possibly not a popular one.)Actually works fine on 2008 as well ;)
Good news :)
The problem is most third party
libs we link against have windows support as an afterthought - no one on
the project works on windows or tests on windows and the attitude is so
negative in the open source (particularly gnu) world that the people who
DID originally maintain the ports ran away, so the build support for MSVC
is outdated or missing completely, only people who are brave enough to
assemble make files or projects by hand and fiddle until it builds have
success.
I've done that before now, mostly with success. (GTK+ did my head in, but
that's mostly due the size of the project.) I'll even help you with this
side of things when I get some space.
(Heck, even libxml2 which has great official windows
build support links against very antiquated libiconv - 1.9 released in
2004 when the latest is 1.12) I'd argue that this has nothing to do with
Microsoft and everything to do with Open Source negative stereotypes.
I'd try talking to the people involved, preferably without making those
assumptions.
The distribution of third-party libraries is intended for people
rolling their own PHP builds. I don't see any justification for
distributing more than one CRT version of every PHP release, in fact I
think doing so is
likely to confuse hell out of most of PHP's end users. The only way it
makes any sense is on the 'testing' front - so maybe it'd make sense
to ask for volunteer builder/testers on more specialized page(s) used
for 'zip.zip'
distributions, and set up a bunch of edge case scripts (e.g. stuff
that passes around data structures or uses a lot of IO calls, etc).
The framework to do that already exists in run-tests.php, although the
tests themselves
may not. Setting up something this way - a collection of third party
libs built with VC7, VC8, VC9 when it arrives - and testing the
various library builds with a same-compiler version of PHP in known
critical areas, now that
would be genuinely useful. That would mean that when (most likely)
Apache move on, we're good and ready to move on with them.This is a good goal, and something I've been working on in general, at
least assembling open source libraries that PHP extensions link against,
and building them on different runtimes. But there's no place for a
"testing area" just for windows that could also distribute libs currently
on the website.
qa.php.net is a testing area, full stop.
Anyone have ideas for a home for this? Maybe
a windows section of gcov? Or maybe test 2005 builds on snaps.php.net or
a page just for binaries for windows? The bottom line is the performance
increase is enough to justify distributing newer builds.
It concerns me that Edin hasn't been involved either in this
discussion or the one a few weeks back, so I'm glad you've been in
touch over this issue off-list. I know Elizabeth knows what she's
talking about when it comes to
VC8 (and probably beyond), and hope she and Edin can come to some sane
arrangement. But please hold back with distributing VC8-only versions
of PHP when we still support platforms pre-dating its C runtime, and
please back off from the idea of offering a range of official PHP
builds with different CRTs. It makes absolutely no sense to do either
thing at this point in time, and it won't make a great deal of sense
to do the latter at any time.Since when is two versions a range...ah semantics...
I wasn't thinking of two versions, I was thinking if this is going to be
done anyway (fixing build systems up so we can use them in third-party
libraries) we might as well make real and permanent use of it, rather than
do Microsoft's bidding as a one-off. I'll refer you to the rest of the
thread for details (this end of it, not the October part.)
nb Andi, Edin's been distributing official NTS builds for some time
now... they make a huge difference to CLI, and a visible difference to
PHP-GTK's draw speed. And please note, even the 'NTS' option has
proved confusing for
some...!
- Steph
I have one last suggestion that maybe Microsoft (and everyone so against
the 2005 builds) might want to think about. PHP does not distribute
binaries for linux and similar distributions, however they do provide
links to external distribution sites. What's to stop Microsoft from
distributing non-thread-safe 2005 builds (obviously optimized for IIS) on
their own servers -
They'd have to support it. Long term. Think Gnope.
After all PHP provides the same service for other operating systems. In
fact, several of the links on the downloads page aren't even official
builds, but third parties providing the software. Is there some kind of
issue with third party providers not being able to have the same service,
just because they're for Windows? If it's simply because PHP provides
windows binaries already...if the binaries are inferior to third party
offerings...
There's a big difference between dealing with a company and dealing with
enthusiastic programmers who put all their spare time into coding their
ideas. One has vested interests, the other does not. They also have very
different sets of resources, and very different ideas about 'long term'.
Anyway, the offer stands to help get libraries up to speed... I'll see if
I can get a hold of Edin, I have space and bandwidth if that's his biggest
issue. I could argue with you all night Steph, but it's obvious you have
an issue with the C runtime changing that Microsoft has done with its
compilers, and so no matter what I say you won't change your opinion ;)
Anyone else (other than Steph or Stas) care to weigh in?
'Shut up Steph, since you don't agree with me'? That's hardly useful in any
form of debate.
- Steph
Steph Fox wrote:
Anyway, the offer stands to help get libraries up to speed... I'll
see if I can get a hold of Edin, I have space and bandwidth if that's
his biggest issue. I could argue with you all night Steph, but it's
obvious you have an issue with the C runtime changing that Microsoft
has done with its compilers, and so no matter what I say you won't
change your opinion ;) Anyone else (other than Steph or Stas) care to
weigh in?'Shut up Steph, since you don't agree with me'? That's hardly useful in
any form of debate.
- Steph
Actually Steph, I wrote that line at the point where the only two people
discussing it were you and Stas, not as a "shut up" but as a "can we
have more than two people chime in on this"