Merge nucleic/fuzzy-spruce-dingo-vpaa into dev

This commit is contained in:
2026-07-30 22:21:21 -07:00
parent 6777223e3d
commit c34eb1ff61
+11 -7
View File
@@ -170,11 +170,6 @@ function Invoke-Swift([string[]]$SwiftArgs, [hashtable]$Sql) {
# carries the prefix — it is global, so it also downgrades any FUTURE duplicate to a
# warning. Read the warnings.
$full = @($SwiftArgs) + @(
# Index-while-building costs real per-file work (`-index-store-path` +
# `-index-system-modules` on every frontend job) and nothing consumes the store from a
# command-line build — it exists for editors. Off here; CI leaves it at the default,
# where a cold index nothing reads costs nothing either way.
'--disable-index-store',
'-Xcc', "-I$($Sql.Include)",
# `/LIBPATH:`, NOT `-LIBPATH:`. A leading `-L` is claimed by the driver's GNU-style
# library-path flag, so `-LIBPATH:C:\…\lib` is read as `-L` + `IBPATH:C:\…\lib` and
@@ -196,7 +191,13 @@ function Build-Protocol([hashtable]$sql) {
try {
Write-Step 'protocol: building NucleicProtocol'
$code = if ($Test) {
Invoke-Swift @('test', '--filter', 'NucleicProtocolTests') $sql
# SwiftPM 6.3.3 on Windows still schedules index units for test discovery even with
# `--disable-index-store`, then a clean build dies opening units it never emitted.
# With indexing enabled, parallel frontends contend for shared SDK/module unit files
# and Windows reports sharing violations as "permission denied". Serialize test
# builds until SwiftPM fixes that pair of index-store bugs; ordinary builds stay
# parallel.
Invoke-Swift @('test', '-j', '1', '--filter', 'NucleicProtocolTests') $sql
} else {
Invoke-Swift @('build', '--target', 'NucleicProtocol') $sql
}
@@ -222,7 +223,10 @@ function Build-Core([hashtable]$sql) {
Remove-Item Env:\NUCLEIC_WINDOWS_PROTOCOL_ONLY
}
try {
if ($Test) { return Invoke-Swift @('test', '--filter', 'NucleicCarbonTests') $sql }
if ($Test) {
# See Build-Protocol: clean Windows test builds require indexing + one frontend job.
return Invoke-Swift @('test', '-j', '1', '--filter', 'NucleicCarbonTests') $sql
}
return Invoke-Swift @('build', '--target', 'NucleicCore') $sql
} finally {
if ($inherited) { $env:NUCLEIC_WINDOWS_PROTOCOL_ONLY = $inherited }