Skip to content

Commit a4e32ac

Browse files
Toolset update: VS 2022 17.14 Preview 1 (#5284)
1 parent 977a92e commit a4e32ac

21 files changed

+136
-137
lines changed

.gitignore

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,4 @@ __pycache__/
88
/out/
99
/tools/out/
1010
/CMakeLists.txt.user
11-
/*.log
11+
*.log

README.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ Just try to follow these rules, so we can spend more time fixing bugs and implem
141141

142142
# How To Build With The Visual Studio IDE
143143

144-
1. Install Visual Studio 2022 17.13 Preview 4 or later.
144+
1. Install Visual Studio 2022 17.14 Preview 1 or later.
145145
* Select "Windows 11 SDK (10.0.22621.0)" in the VS Installer.
146146
* Select "MSVC v143 - VS 2022 C++ ARM64/ARM64EC build tools (Latest)" in the VS Installer
147147
if you would like to build the ARM64/ARM64EC target.
@@ -160,7 +160,7 @@ Just try to follow these rules, so we can spend more time fixing bugs and implem
160160

161161
# How To Build With A Native Tools Command Prompt
162162

163-
1. Install Visual Studio 2022 17.13 Preview 4 or later.
163+
1. Install Visual Studio 2022 17.14 Preview 1 or later.
164164
* Select "Windows 11 SDK (10.0.22621.0)" in the VS Installer.
165165
* Select "MSVC v143 - VS 2022 C++ ARM64/ARM64EC build tools (Latest)" in the VS Installer
166166
if you would like to build the ARM64/ARM64EC target.

azure-devops/config.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
variables:
77
- name: poolName
8-
value: 'StlBuild-2025-01-28T1106-Pool'
8+
value: 'StlBuild-2025-02-15T0137-Pool'
99
readonly: true
1010
- name: poolDemands
1111
value: 'EnableSpotVM -equals false'

azure-devops/create-1es-hosted-pool.ps1

+21-20
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,9 @@ $VMSize = 'Standard_F32as_v6'
1818
$ProtoVMName = 'PROTOTYPE'
1919
$ImagePublisher = 'MicrosoftWindowsServer'
2020
$ImageOffer = 'WindowsServer'
21-
$ImageSku = '2025-datacenter-g2'
21+
$ImageSku = '2025-datacenter-azure-edition'
2222

23+
$LogFile = '1es-hosted-pool.log'
2324
$ProgressActivity = 'Preparing STL CI pool'
2425
$TotalProgress = 26
2526
$CurrentProgress = 1
@@ -78,13 +79,13 @@ $Env:SuppressAzurePowerShellBreakingChangeWarnings = 'true'
7879

7980
Update-AzConfig `
8081
-DisplayBreakingChangeWarning $false `
81-
-Scope 'Process' | Out-Null
82+
-Scope 'Process' >> $LogFile
8283

8384
####################################################################################################
8485
Display-ProgressBar -Status 'Setting the subscription context'
8586

8687
Set-AzContext `
87-
-SubscriptionName 'CPP_STL_GitHub' | Out-Null
88+
-SubscriptionName 'CPP_STL_GitHub' >> $LogFile
8889

8990
####################################################################################################
9091
Display-ProgressBar -Status 'Creating resource group'
@@ -93,7 +94,7 @@ $ResourceGroupName = 'StlBuild-' + $CurrentDate.ToString('yyyy-MM-ddTHHmm')
9394

9495
New-AzResourceGroup `
9596
-Name $ResourceGroupName `
96-
-Location $Location | Out-Null
97+
-Location $Location >> $LogFile
9798

9899
####################################################################################################
99100
Display-ProgressBar -Status 'Creating credentials'
@@ -169,7 +170,7 @@ $VM = Set-AzVMBootDiagnostic `
169170
New-AzVm `
170171
-ResourceGroupName $ResourceGroupName `
171172
-Location $Location `
172-
-VM $VM | Out-Null
173+
-VM $VM >> $LogFile
173174

174175
$VM = Get-AzVM `
175176
-ResourceGroupName $ResourceGroupName `
@@ -192,7 +193,7 @@ if ($ProvisionImageResult.value.Message -cnotmatch 'PROVISION_IMAGE_SUCCEEDED')
192193

193194
Stop-AzVM `
194195
-Id $VM.ID `
195-
-Force | Out-Null
196+
-Force >> $LogFile
196197

197198
Write-Error "VM stopped. Remember to delete unusable resource group: $ResourceGroupName"
198199
}
@@ -201,7 +202,7 @@ if ($ProvisionImageResult.value.Message -cnotmatch 'PROVISION_IMAGE_SUCCEEDED')
201202
Display-ProgressBar -Status 'Restarting VM'
202203

203204
Restart-AzVM `
204-
-Id $VM.ID | Out-Null
205+
-Id $VM.ID >> $LogFile
205206

206207
####################################################################################################
207208
Display-ProgressBar -Status 'Sleeping after restart'
@@ -216,7 +217,7 @@ Display-ProgressBar -Status 'Running sysprep in VM'
216217
Invoke-AzVMRunCommand `
217218
-ResourceId $VM.ID `
218219
-CommandId 'RunPowerShellScript' `
219-
-ScriptString 'C:\Windows\system32\sysprep\sysprep.exe /oobe /generalize /mode:vm /shutdown' | Out-Null
220+
-ScriptString 'C:\Windows\system32\sysprep\sysprep.exe /oobe /generalize /mode:vm /shutdown' >> $LogFile
220221

221222
####################################################################################################
222223
Display-ProgressBar -Status 'Waiting for VM to shut down'
@@ -230,14 +231,14 @@ Display-ProgressBar -Status 'Stopping VM'
230231

231232
Stop-AzVM `
232233
-Id $VM.ID `
233-
-Force | Out-Null
234+
-Force >> $LogFile
234235

235236
####################################################################################################
236237
Display-ProgressBar -Status 'Generalizing VM'
237238

238239
Set-AzVM `
239240
-Id $VM.ID `
240-
-Generalized | Out-Null
241+
-Generalized >> $LogFile
241242

242243
####################################################################################################
243244
Display-ProgressBar -Status 'Creating gallery'
@@ -256,7 +257,7 @@ $ServicePrincipalObjectId = (Get-AzADServicePrincipal -DisplayName '1ES Resource
256257
New-AzRoleAssignment `
257258
-ObjectId $ServicePrincipalObjectId `
258259
-RoleDefinitionName 'Reader' `
259-
-Scope $Gallery.Id | Out-Null
260+
-Scope $Gallery.Id >> $LogFile
260261

261262
####################################################################################################
262263
Display-ProgressBar -Status 'Creating image definition'
@@ -276,7 +277,7 @@ New-AzGalleryImageDefinition `
276277
-Offer $ImageOffer `
277278
-Sku $ImageSku `
278279
-Feature $ImageDefinitionFeatures `
279-
-HyperVGeneration 'V2' | Out-Null
280+
-HyperVGeneration 'V2' >> $LogFile
280281

281282
####################################################################################################
282283
Display-ProgressBar -Status 'Creating image version'
@@ -294,7 +295,7 @@ $ImageVersion = New-AzGalleryImageVersion `
294295
Display-ProgressBar -Status 'Registering CloudTest resource provider'
295296

296297
Register-AzResourceProvider `
297-
-ProviderNamespace 'Microsoft.CloudTest' | Out-Null
298+
-ProviderNamespace 'Microsoft.CloudTest' >> $LogFile
298299

299300
####################################################################################################
300301
Display-ProgressBar -Status 'Creating 1ES image'
@@ -306,7 +307,7 @@ New-AzResource `
306307
-ResourceType 'Microsoft.CloudTest/Images' `
307308
-ResourceName $ImageName `
308309
-Properties @{ 'imageType' = 'SharedImageGallery'; 'resourceId' = $ImageVersion.Id; } `
309-
-Force | Out-Null
310+
-Force >> $LogFile
310311

311312
####################################################################################################
312313
Display-ProgressBar -Status 'Creating 1ES Hosted Pool'
@@ -328,46 +329,46 @@ New-AzResource `
328329
-ResourceType 'Microsoft.CloudTest/hostedpools' `
329330
-ResourceName $PoolName `
330331
-Properties $PoolProperties `
331-
-Force | Out-Null
332+
-Force >> $LogFile
332333

333334
####################################################################################################
334335
Display-ProgressBar -Status 'Deleting unused VM'
335336

336337
Remove-AzVM `
337338
-Id $VM.ID `
338-
-Force | Out-Null
339+
-Force >> $LogFile
339340

340341
####################################################################################################
341342
Display-ProgressBar -Status 'Deleting unused disk'
342343

343344
Remove-AzDisk `
344345
-ResourceGroupName $ResourceGroupName `
345346
-DiskName $PrototypeOSDiskName `
346-
-Force | Out-Null
347+
-Force >> $LogFile
347348

348349
####################################################################################################
349350
Display-ProgressBar -Status 'Deleting unused network interface'
350351

351352
Remove-AzNetworkInterface `
352353
-ResourceGroupName $ResourceGroupName `
353354
-Name $NicName `
354-
-Force | Out-Null
355+
-Force >> $LogFile
355356

356357
####################################################################################################
357358
Display-ProgressBar -Status 'Deleting unused virtual network'
358359

359360
Remove-AzVirtualNetwork `
360361
-ResourceGroupName $ResourceGroupName `
361362
-Name $VirtualNetworkName `
362-
-Force | Out-Null
363+
-Force >> $LogFile
363364

364365
####################################################################################################
365366
Display-ProgressBar -Status 'Deleting unused network security group'
366367

367368
Remove-AzNetworkSecurityGroup `
368369
-ResourceGroupName $ResourceGroupName `
369370
-Name $NetworkSecurityGroupName `
370-
-Force | Out-Null
371+
-Force >> $LogFile
371372

372373
####################################################################################################
373374
Write-Progress -Activity $ProgressActivity -Completed

azure-devops/provision-image.ps1

+10-2
Original file line numberDiff line numberDiff line change
@@ -43,11 +43,13 @@ foreach ($workload in $VisualStudioWorkloads) {
4343
$PowerShellUrl = 'https://github.com/PowerShell/PowerShell/releases/download/v7.5.0/PowerShell-7.5.0-win-x64.msi'
4444
$PowerShellArgs = @('/quiet', '/norestart')
4545

46-
$PythonUrl = 'https://www.python.org/ftp/python/3.13.1/python-3.13.1-amd64.exe'
46+
$PythonUrl = 'https://www.python.org/ftp/python/3.13.2/python-3.13.2-amd64.exe'
4747
$PythonArgs = @('/quiet', 'InstallAllUsers=1', 'PrependPath=1', 'CompileAll=1', 'Include_doc=0')
4848

49+
# TRANSITION, GH-5282: Install only nvcc and cudart, then manually add CUDA to the PATH (see below).
4950
$CudaUrl = 'https://developer.download.nvidia.com/compute/cuda/12.4.0/local_installers/cuda_12.4.0_551.61_windows.exe'
50-
$CudaArgs = @('-s', '-n', 'nvcc_12.4')
51+
$CudaArgs = @('-s', '-n', 'nvcc_12.4', 'cudart_12.4')
52+
$CudaPath = 'C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4\bin'
5153

5254
<#
5355
.SYNOPSIS
@@ -112,6 +114,12 @@ DownloadAndInstall -Name 'CUDA' -Url $CudaUrl -Args $CudaArgs
112114

113115
Write-Host 'Setting environment variables...'
114116

117+
# TRANSITION, GH-5282: Manually add CUDA to the PATH.
118+
# Don't use $Env:PATH here - that's the local path for this running script, captured before we installed anything.
119+
# The machine path was just updated by the installers above.
120+
$machinePath = [Environment]::GetEnvironmentVariable('Path', 'Machine')
121+
[Environment]::SetEnvironmentVariable('Path', "$machinePath;$CudaPath", 'Machine')
122+
115123
# The STL's PR/CI builds are totally unrepresentative of customer usage.
116124
[Environment]::SetEnvironmentVariable('VSCMD_SKIP_SENDTELEMETRY', '1', 'Machine')
117125

stl/inc/__msvc_bit_utils.hpp

+7-7
Original file line numberDiff line numberDiff line change
@@ -337,19 +337,19 @@ constexpr decltype(auto) _Select_countr_zero_impl(_Fn _Callback) {
337337
#if _HAS_TZCNT_BSF_INTRINSICS && _HAS_CXX20
338338
if (!_STD is_constant_evaluated()) {
339339
#ifdef __AVX2__
340-
return _Callback([](_Ty _Val) _STATIC_CALL_OPERATOR { return _Countr_zero_tzcnt(_Val); });
340+
return _Callback([](_Ty _Val) _STATIC_LAMBDA { return _Countr_zero_tzcnt(_Val); });
341341
#else // ^^^ AVX2 / not AVX2 vvv
342342
const bool _Definitely_have_tzcnt = __isa_available >= _Stl_isa_available_avx2;
343343
if (_Definitely_have_tzcnt) {
344-
return _Callback([](_Ty _Val) _STATIC_CALL_OPERATOR { return _Countr_zero_tzcnt(_Val); });
344+
return _Callback([](_Ty _Val) _STATIC_LAMBDA { return _Countr_zero_tzcnt(_Val); });
345345
} else {
346-
return _Callback([](_Ty _Val) _STATIC_CALL_OPERATOR { return _Countr_zero_bsf(_Val); });
346+
return _Callback([](_Ty _Val) _STATIC_LAMBDA { return _Countr_zero_bsf(_Val); });
347347
}
348348
#endif // ^^^ not AVX2 ^^^
349349
}
350350
#endif // ^^^ _HAS_TZCNT_BSF_INTRINSICS && _HAS_CXX20 ^^^
351351
// C++17 constexpr gcd() calls this function, so it should be constexpr unless we detect runtime evaluation.
352-
return _Callback([](_Ty _Val) _STATIC_CALL_OPERATOR { return _Countr_zero_fallback(_Val); });
352+
return _Callback([](_Ty _Val) _STATIC_LAMBDA { return _Countr_zero_fallback(_Val); });
353353
}
354354

355355
template <class _Ty, enable_if_t<_Is_standard_unsigned_integer<_Ty>, int> = 0>
@@ -376,13 +376,13 @@ _CONSTEXPR20 decltype(auto) _Select_popcount_impl(_Fn _Callback) {
376376
#if !_POPCNT_INTRINSICS_ALWAYS_AVAILABLE
377377
const bool _Definitely_have_popcnt = __isa_available >= _Stl_isa_available_sse42;
378378
if (!_Definitely_have_popcnt) {
379-
return _Callback([](_Ty _Val) _STATIC_CALL_OPERATOR { return _Popcount_fallback(_Val); });
379+
return _Callback([](_Ty _Val) _STATIC_LAMBDA { return _Popcount_fallback(_Val); });
380380
}
381381
#endif // ^^^ !_POPCNT_INTRINSICS_ALWAYS_AVAILABLE ^^^
382-
return _Callback([](_Ty _Val) _STATIC_CALL_OPERATOR { return _Unchecked_popcount(_Val); });
382+
return _Callback([](_Ty _Val) _STATIC_LAMBDA { return _Unchecked_popcount(_Val); });
383383
}
384384
#endif // ^^^ _HAS_POPCNT_INTRINSICS ^^^
385-
return _Callback([](_Ty _Val) _STATIC_CALL_OPERATOR { return _Popcount_fallback(_Val); });
385+
return _Callback([](_Ty _Val) _STATIC_LAMBDA { return _Popcount_fallback(_Val); });
386386
}
387387

388388
#undef _HAS_POPCNT_INTRINSICS

stl/inc/__msvc_ranges_to.hpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -1145,7 +1145,7 @@ namespace ranges {
11451145
"the default-constructed object. (N4981 [range.utility.conv.to]/2.1.5)");
11461146
}
11471147
} else if constexpr (input_range<range_reference_t<_Rng>>) {
1148-
const auto _Xform = [](auto&& _Elem) _STATIC_CALL_OPERATOR {
1148+
const auto _Xform = [](auto&& _Elem) _STATIC_LAMBDA {
11491149
return _RANGES to<range_value_t<_Container>>(_STD forward<decltype(_Elem)>(_Elem));
11501150
};
11511151
return _RANGES to<_Container>(views::transform(ref_view{_Range}, _Xform), _STD forward<_Types>(_Args)...);

stl/inc/__msvc_ranges_tuple_formatter.hpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -241,7 +241,7 @@ class basic_format_arg {
241241
template <class _Ty>
242242
explicit handle(_Ty& _Val) noexcept
243243
: _Ptr(_STD addressof(_Val)), _Format([](basic_format_parse_context<_CharType>& _Parse_ctx,
244-
_Context& _Format_ctx, const void* _Ptr) _STATIC_CALL_OPERATOR {
244+
_Context& _Format_ctx, const void* _Ptr) _STATIC_LAMBDA {
245245
using _Td = remove_const_t<_Ty>;
246246
// doesn't drop const-qualifier per an unnumbered LWG issue
247247
using _Tq = conditional_t<_Formattable_with<const _Ty, _Context>, const _Ty, _Ty>;

stl/inc/experimental/filesystem

+1-1
Original file line numberDiff line numberDiff line change
@@ -851,7 +851,7 @@ public:
851851
path& append(const basic_string<_Elem, _Traits, _Alloc>& _Str0) { // append arbitrary source string
852852
string_type _Str(_Str0.size(), L'\0');
853853
// convert _Elem and '/' to '\'
854-
_STD transform(_Str0.begin(), _Str0.end(), _Str.begin(), [](const _Elem _Ch) _STATIC_CALL_OPERATOR {
854+
_STD transform(_Str0.begin(), _Str0.end(), _Str.begin(), [](const _Elem _Ch) _STATIC_LAMBDA {
855855
auto _Wch = static_cast<wchar_t>(_Ch);
856856
if (_Wch == _FS_SLASH) {
857857
_Wch = _FS_PREF;

stl/inc/functional

+2-2
Original file line numberDiff line numberDiff line change
@@ -1237,7 +1237,7 @@ _NON_MEMBER_CALL(_FUNCTION_POINTER_DEDUCTION_GUIDE, X1, X2, X3)
12371237
template <class _Fx, class _Call_op, class = void>
12381238
struct _Deduce_from_call_operator : _Is_memfunptr<_Call_op>::_Guide_type {}; // N4958 [func.wrap.func.con]/16.1
12391239

1240-
#ifdef __cpp_static_call_operator
1240+
#if _HAS_CXX23
12411241
template <class>
12421242
struct _Inspect_static_call_operator {};
12431243

@@ -1257,7 +1257,7 @@ _NON_MEMBER_CALL(_STATIC_CALL_OPERATOR_GUIDES, , , noexcept)
12571257
template <class _Fx, class _Call_op>
12581258
struct _Deduce_from_call_operator<_Fx, _Call_op, void_t<decltype(_STD declval<_Fx>().operator())>>
12591259
: _Inspect_static_call_operator<_Call_op> {}; // N4958 [func.wrap.func.con]/16.2
1260-
#endif // ^^^ defined(__cpp_static_call_operator) ^^^
1260+
#endif // _HAS_CXX23
12611261

12621262
template <class _Fx, class = void>
12631263
struct _Deduce_signature {}; // can't deduce signature when &_Fx::operator() is missing, inaccessible, or ambiguous

stl/inc/memory_resource

+3-3
Original file line numberDiff line numberDiff line change
@@ -553,9 +553,9 @@ namespace pmr {
553553
// find the pool from which to allocate a block with size _Bytes and alignment _Align
554554
const size_t _Size = (_STD max)(_Bytes + sizeof(void*), _Align);
555555
const auto _Log_of_size = static_cast<unsigned char>(_Ceiling_of_log_2(_Size));
556-
return {_STD lower_bound(_Pools.begin(), _Pools.end(), _Log_of_size,
557-
[](const _Pool& _Al, const unsigned char _Log)
558-
_STATIC_CALL_OPERATOR { return _Al._Log_of_size < _Log; }),
556+
return {
557+
_STD lower_bound(_Pools.begin(), _Pools.end(), _Log_of_size,
558+
[](const _Pool& _Al, const unsigned char _Log) _STATIC_LAMBDA { return _Al._Log_of_size < _Log; }),
559559
_Log_of_size};
560560
}
561561

stl/inc/mutex

+1-1
Original file line numberDiff line numberDiff line change
@@ -480,7 +480,7 @@ public:
480480
: _MyMutexes(_Mtxes...) {} // construct but don't lock
481481

482482
~scoped_lock() noexcept {
483-
_STD apply([](_Mutexes&... _Mtxes) _STATIC_CALL_OPERATOR { (..., (void) _Mtxes.unlock()); }, _MyMutexes);
483+
_STD apply([](_Mutexes&... _Mtxes) _STATIC_LAMBDA { (..., (void) _Mtxes.unlock()); }, _MyMutexes);
484484
}
485485

486486
scoped_lock(const scoped_lock&) = delete;

0 commit comments

Comments
 (0)