summaryrefslogtreecommitdiff
path: root/doc/src
diff options
context:
space:
mode:
Diffstat (limited to 'doc/src')
-rw-r--r--doc/src/sgml/install-windows.sgml26
-rw-r--r--doc/src/sgml/installation.sgml2
-rw-r--r--doc/src/sgml/sources.sgml37
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>