Details
-
Bug
-
Status: Closed
-
Critical
-
Resolution: Fixed
-
None
-
None
Description
Our current master branch fails to compile with Visual Studio 2013 and 2015, giving the following error:
"C:\projects\reef\lang\cs\Org.Apache.REEF.sln" (default target) (1) -> "C:\projects\reef\lang\cs\Org.Apache.REEF.Network.Examples.Client\Org.Apache.REEF.Network.Examples.Client.csproj" (default target) (24) -> "C:\projects\reef\lang\cs\Org.Apache.REEF.Bridge\Org.Apache.REEF.Bridge.vcxproj" (default target) (25) -> (ClCompile target) -> InteropUtil.cpp(138): error C2146: syntax error : missing ';' before identifier 'JNIEnv' [C:\projects\reef\lang\cs\Org.Apache.REEF.Bridge\Org.Apache.REEF.Bridge.vcxproj] InteropUtil.cpp(138): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int [C:\projects\reef\lang\cs\Org.Apache.REEF.Bridge\Org.Apache.REEF.Bridge.vcxproj]
(e.g. see AppVeyor logs here)
It looks like the earlier versions of VS (managed) C++ do not support thread_local keyword. We need to fix the code to make sure it compiles on all supported versions of Visual Studio.
The issue was likely introduced in REEF-1895 (github pull request #1385).