diff options
Diffstat (limited to 'doc/src')
-rw-r--r-- | doc/src/sgml/install-windows.sgml | 26 | ||||
-rw-r--r-- | doc/src/sgml/installation.sgml | 2 | ||||
-rw-r--r-- | doc/src/sgml/sources.sgml | 37 |
3 files changed, 40 insertions, 25 deletions
diff --git a/doc/src/sgml/install-windows.sgml b/doc/src/sgml/install-windows.sgml index 9597bc35a14..22a2ffd55ee 100644 --- a/doc/src/sgml/install-windows.sgml +++ b/doc/src/sgml/install-windows.sgml @@ -22,7 +22,7 @@ Microsoft tools is to install <productname>Visual Studio Express 2017 for Windows Desktop</productname> and use the included compiler. It is also possible to build with the full - <productname>Microsoft Visual C++ 2005 to 2017</productname>. + <productname>Microsoft Visual C++ 2013 to 2017</productname>. In some cases that requires the installation of the <productname>Windows SDK</productname> in addition to the compiler. </para> @@ -77,20 +77,24 @@ <para> Both 32-bit and 64-bit builds are possible with the Microsoft Compiler suite. 32-bit PostgreSQL builds are possible with - <productname>Visual Studio 2005</productname> to + <productname>Visual Studio 2013</productname> to <productname>Visual Studio 2017</productname> (including Express editions), as well as standalone Windows SDK releases 6.0 to 8.1. 64-bit PostgreSQL builds are supported with <productname>Microsoft Windows SDK</productname> version 6.0a to 8.1 or - <productname>Visual Studio 2008</productname> and above. Compilation - is supported down to <productname>Windows XP</productname> and - <productname>Windows Server 2003</productname> when building with - <productname>Visual Studio 2005</productname> to - <productname>Visual Studio 2013</productname>. Building with - <productname>Visual Studio 2015</productname> is supported down to - <productname>Windows Vista</productname> and <productname>Windows Server 2008</productname>. - Building with <productname>Visual Studio 2017</productname> is supported - down to <productname>Windows 7 SP1</productname> and <productname>Windows Server 2008 R2 SP1</productname>. + <productname>Visual Studio 2013</productname> and above. Compilation + is supported down to <productname>Windows 7</productname> and + <productname>Windows Server 2008 R2 SP1</productname> when building with + <productname>Visual Studio 2013</productname> to + <productname>Visual Studio 2017</productname>. + <!-- + For 2013 requirements: + https://docs.microsoft.com/en-us/visualstudio/productinfo/vs2013-sysrequirements-vs + For 2015 requirements: + https://docs.microsoft.com/en-us/visualstudio/productinfo/vs2015-sysrequirements-vs + For 2017 requirements: + https://docs.microsoft.com/en-us/visualstudio/productinfo/vs2017-system-requirements-vs + --> </para> <para> diff --git a/doc/src/sgml/installation.sgml b/doc/src/sgml/installation.sgml index 10c925d2905..4487d0cfd17 100644 --- a/doc/src/sgml/installation.sgml +++ b/doc/src/sgml/installation.sgml @@ -85,7 +85,7 @@ su - postgres <listitem> <para> You need an <acronym>ISO</acronym>/<acronym>ANSI</acronym> C compiler (at least - C89-compliant). Recent + C99-compliant). Recent versions of <productname>GCC</productname> are recommended, but <productname>PostgreSQL</productname> is known to build using a wide variety of compilers from different vendors. diff --git a/doc/src/sgml/sources.sgml b/doc/src/sgml/sources.sgml index e53ee1dc6ad..419f753c7bc 100644 --- a/doc/src/sgml/sources.sgml +++ b/doc/src/sgml/sources.sgml @@ -867,19 +867,30 @@ BETTER: unrecognized node type: 42 <title>C Standard</title> <para> Code in <productname>PostgreSQL</productname> should only rely on language - features available in the C89 standard. That means a conforming - C89 compiler has to be able to compile postgres, at least aside - from a few platform dependent pieces. Features from later - revision of the C standard or compiler specific features can be - used, if a fallback is provided. - </para> - <para> - For example <literal>static inline</literal> and - <literal>_StaticAssert()</literal> are currently used, even - though they are from newer revisions of the C standard. If not - available we respectively fall back to defining the functions - without inline, and to using a C89 compatible replacement that - performs the same checks, but emits rather cryptic messages. + features available in the C99 standard. That means a conforming + C99 compiler has to be able to compile postgres, at least aside + from a few platform dependent pieces. + </para> + <para> + A few features included in the C99 standard are, at this time, not be + permitted to be used in core <productname>PostgreSQL</productname> + code. This currently includes variable length arrays, intermingled + declarations and code, <literal>//</literal> comments, universal + character names. Reasons for that include portability and historical + practices. + </para> + <para> + Features from later revision of the C standard or compiler specific + features can be used, if a fallback is provided. + </para> + <para> + For example <literal>_StaticAssert()</literal> and + <literal>__builtin_constant_p</literal> are currently used, even though + they are from newer revisions of the C standard and a + <productname>GCC</productname> extension respectively. If not available + we respectively fall back to using a C99 compatible replacement that + performs the same checks, but emits rather cryptic messages and do not + use <literal>__builtin_constant_p</literal>. </para> </simplesect> |