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.