Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: 6be4da51a41be558ff16958665830c24f90ec2cc
      
https://github.com/Perl/perl5/commit/6be4da51a41be558ff16958665830c24f90ec2cc
  Author: Tony Cook <t...@develop-help.com>
  Date:   2023-11-14 (Tue, 14 Nov 2023)

  Changed paths:
    M README.win32
    M win32/GNUmakefile
    M win32/Makefile

  Log Message:
  -----------
  win32: retire visual studio 2013 support

I recently (tried) to test VS 2013 builds, but while vs2013 in theory
supports mixed declarations and code, in practice that support is
broken, and failed to build toke.obj:

The one case I looked at in detail, VS 2013 required an extra ; after
a conditional statement to accept the following declaration, for
example:

```
C:\Users\Tony\dev\perl\git>cl /c mixed.c
Microsoft (R) C/C++ Optimizing Compiler Version 18.00.21005.1 for x64
Copyright (C) Microsoft Corporation.  All rights reserved.

mixed.c
mixed.c(8) : error C2143: syntax error : missing ';' before 'const'
mixed.c(9) : error C2065: 'pend' : undeclared identifier
mixed.c(9) : error C2100: illegal indirection

C:\Users\Tony\dev\perl\git>type mixed.c
/* adapted from S_intuit_more() in toke.c.
   don't run this code
*/
int g(const char *p) {
  if (!p)
    return (0);

  const char * const pend = p+1;
  return *pend;
}
```

regcomp.obj also failed to build due to the use of the "inline"
keyword in regcomp.h.  This is fairly trivially fixable but
inline is also C99.

Despite these build issues we haven't received any error reports for
VS2013, so I don't think it's worth re-working any mixed declarations
to support it.

It might be worth updating regcomp.h to use PERL_STATIC_INLINE
but that's out of scope for this commit.


Reply via email to