Hi all

I've got through a review of the VS 2010 support patches. Between work being busy and some interesting issues getting my 64-bit build environment set up it took longer than anticipated. Sorry.

It looks good so far. I haven't had any reply to my email to Brar, so there are a few details (like whether x64 builds were tested and how x64 required libraries were built) I could use, but what I've got done so far seems fine.

Details follow.

PATCH FORMATTING
==================

The patch (VS2010v7.patch) seems to mix significant changes with whitespace fixes etc. These should be separated for clarity and ease of future bisect testing etc. Any "perltidy" run should be done as a separate patch, too. This is easy if you are using git, because you can just commit each to your local tree then use git format-patch to produce nice patches. If you have a local tree with a more complicated history, you can use git rebase to tidy up the history before you format-patch.

The patches apply cleanly to git master as of 21f1e15aafb13ab2430e831a3da7d4d4f525d1ce .

pgflex.pl and pgbison.pl
=====================

pgflex.pl and pgbison.pl are a big improvement over the horrid batch files, but are perhaps too little a translation. There's no need for the big if(string) then (otherstring) stuff; it can be done much more cleanly by storing a simple hash of paths to options and doing a file extension substitution to generate the output filenames. The hash only needs to be populated for files that get processed with non-default options, so for pgflex all you need is:

  %LEX_OPTS = { 'src\backend\parser\scan.c' -> '-CF' };

I can send adjusted versions of pgflex.pl and pgbison.pl that

DOCUMENTATION
===============

I didn't notice any documentation updates to reflect the fact that Visual Studio 2010 is now supported. It'd be a good idea to change install-windows-full.html (or the source of it, anyway) to mention VS 2010 support.

TEST RESULTS (x86)
=================

I used a buildenv.pl and config.pl that's known to build under VS 2008 and pass "vcregress check" with an unpatched copy of git master. I built with everything except uuid and tcl enabled; I'll see if I can add them later.

The patches applied cleanly, and didn't break VS 2008 builds, which continued to work fine after a "clean dist" and "build". "vcregress check" still passes.

Builds done with VS 2010 using the patches worked fine, and passed "vcregress check" tests.

I should have plcheck and contribcheck results as soon as I've got things rebuilt with uuid and tcl.

TEST RESULTS (x64)
=================

I'm still working on 64-bit tests. I've finally found out how to get 64-bit compilation working under Visual Studio 2008 Express Edition (or, rather, Microsoft Windows SDK for Windows 7 and .NET Framework 3.5 SP1) so I'll be testing that shortly.

I'm not sure if I'll be able to get 64-bit copies of all the optional libraries built, so it may be a more minimal build. It'll include at least zlib, plperl and plpython 64-bit support, though. Information from Briar about whether he built for 64-bit and if so how he got his libraries built would help.

--
Craig Ringer

POST Newspapers
276 Onslow Rd, Shenton Park
Ph: 08 9381 3088     Fax: 08 9388 2258
ABN: 50 008 917 717
http://www.postnewspapers.com.au/

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to