Providing Visual Studio 2005 builds (again)

php.internals

Elizabeth Marie Smith

18 years ago
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

Stanislav Malyshev

18 years ago
> 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

Elizabeth Marie Smith

18 years ago
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=en > > in 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.

Stanislav Malyshev

18 years ago
> 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

Edward Z. Yang

18 years ago
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 ]]

Andi Gutmans

18 years ago
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

Steph

18 years ago
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 On Nov 13, 2007 5:34 AM, Andi Gutmans <andi@zend.com> wrote:

Stanislav Malyshev

18 years ago
> 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

Steph

18 years ago
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. On Nov 13, 2007 5:46 PM, Stanislav Malyshev <stas@zend.com> wrote:

Stanislav Malyshev

18 years ago
> 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

Steph

18 years ago
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. On Nov 13, 2007 5:55 PM, Stanislav Malyshev <stas@zend.com> wrote:

Stanislav Malyshev

18 years ago
> 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

Steph

18 years ago
> 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

18 years ago
> 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

Elizabeth Marie Smith

18 years ago
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?

Rob Richards

18 years ago
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:

Richard Quadling

18 years ago
On 14/11/2007, Rob Richards <rrichards@ctindustries.net> wrote:
> 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? > > > > -- > PHP Internals - PHP Runtime Development Mailing List > To unsubscribe, visit: http://www.php.net/unsub.php > >
-- ----- Richard Quadling Zend Certified Engineer : http://zend.com/zce.php?c=ZEND002498&r=213474731 "Standing on the shoulders of some very clever giants!"

Steph

18 years ago
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

Richard Quadling

18 years ago
On 14/11/2007, Steph Fox <steph@zend.com> wrote:
> 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!"

Steph

18 years ago
>> 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

Steph

18 years ago
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)

Elizabeth Marie Smith

18 years ago
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,.

Steph

18 years ago
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

Elizabeth Marie Smith

18 years ago
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.

Steph

18 years ago
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)

Rob Richards

18 years ago
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

18 years ago
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

Elizabeth Marie Smith

18 years ago
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"