Changes made to vs2015 build To Do Questions 1. Why is /Gs used? This initiates stack probes for every function call (not just functions that use more then 4k)? 2. Why is /Oi- used? This turns off compiler intrinsics. 3. Why is /FS used? This forces serialization of writes to PDB. This really isn't needed. 4. Why are we disabling optimizations for release builds? 5. Why are we omitting frame pointers? Makes debugging harder. Crash dumps less usefull. 6. Why are we forcing function level linking? 7. Why are we turning off intrinsics (again)? 8. Why are we enabling additional security checks? (SDLCheck) 9. Why are we using string pooling? 10. Why do we turn off multi-processor compilation? Nethack Compiler Settings - Release /Gs /Oi- /FS Optimizations:Disabled WarningLevel:Level3 InlineFunctionExpansion:Default FavorSizeOrSpeed:Speed OmitFramePointers:true Optimization:MaxSpeed FunctionLevelLinking:true IntrinsicFunctions:false PreprocessorDefinitions:TILES;MSWIN_GRAPHICS;WIN32;WIN32CON;DLB;_CRT_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;NDEBUG;_CONSOLE;_LIB; SDLCheck:true AdditionalIncludeDirectories:..\win\win32;..\include;..\sys\winnt;..\sys\share;..\win\share; StringPooling:true RuntimeLibrary:MultiThreaded SuppressStartupBanner:true MultiProcessorCompilation:false Nethack Link Settings - Release SubSystem:Console GenetateDebugInformation:true EnableCOMDATFolding:true OptimizeReferenes:true AdditionalDependencies:kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;winmm.lib;Winmm.lib; SuppressStartupBanner:true TargetMachine:MachineX86