Branch: refs/heads/smoke-me/tonyc/retire-vs-2013
  Home:   https://github.com/Perl/perl5
  Commit: e8a4ced88386ca079ba9f3cc4d138086aacfa8fc
      
https://github.com/Perl/perl5/commit/e8a4ced88386ca079ba9f3cc4d138086aacfa8fc
  Author: Tony Cook <t...@develop-help.com>
  Date:   2023-11-13 (Mon, 13 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