diff --git a/Builds/VisualStudio/stellar-core.vcxproj b/Builds/VisualStudio/stellar-core.vcxproj
index 866dfcc36f..3ad051f4d9 100644
--- a/Builds/VisualStudio/stellar-core.vcxproj
+++ b/Builds/VisualStudio/stellar-core.vcxproj
@@ -1243,27 +1243,27 @@ exit /b 0
false
false
false
- sh ../../hash-xdrs.sh ../../src/protocol-curr > src/$(Configuration)/generated/xdr/XDRFilesSha256.cpp
+ wsl bash ../../hash-xdrs.sh ../../src/protocol-curr > src/$(Configuration)/generated/xdr/XDRFilesSha256.cpp
running hash-xdrs.sh
src/$(Configuration)/generated/xdr/XDRFilesSha256.cpp
src/$(Configuration)/generated/xdr/Stellar-overlay.h;src/$(Configuration)/generated/xdr/Stellar-transaction.h;src/$(Configuration)/generated/xdr/Stellar-ledger.h;src/$(Configuration)/generated/xdr/Stellar-ledger-entries.h;src/$(Configuration)/generated/xdr/Stellar-SCP.h;src/$(Configuration)/generated/xdr/Stellar-types.h;src/$(Configuration)/generated/xdr/Stellar-contract-config-setting.h
None
- sh ../../hash-xdrs.sh ../../src/protocol-next > src/$(Configuration)/generated/xdr/XDRFilesSha256.cpp
+ wsl bash ../../hash-xdrs.sh ../../src/protocol-next > src/$(Configuration)/generated/xdr/XDRFilesSha256.cpp
running hash-xdrs.sh
src/$(Configuration)/generated/xdr/XDRFilesSha256.cpp
src/$(Configuration)/generated/xdr/Stellar-overlay.h;src/$(Configuration)/generated/xdr/Stellar-transaction.h;src/$(Configuration)/generated/xdr/Stellar-ledger.h;src/$(Configuration)/generated/xdr/Stellar-ledger-entries.h;src/$(Configuration)/generated/xdr/Stellar-SCP.h;src/$(Configuration)/generated/xdr/Stellar-types.h;src/$(Configuration)/generated/xdr/Stellar-contract-config-setting.h
None
- sh ../../hash-xdrs.sh ../../src/protocol-curr > src/$(Configuration)/generated/xdr/XDRFilesSha256.cpp
+ wsl bash ../../hash-xdrs.sh ../../src/protocol-curr > src/$(Configuration)/generated/xdr/XDRFilesSha256.cpp
running hash-xdrs.sh
src/$(Configuration)/generated/xdr/XDRFilesSha256.cpp
src/$(Configuration)/generated/xdr/Stellar-overlay.h;src/$(Configuration)/generated/xdr/Stellar-transaction.h;src/$(Configuration)/generated/xdr/Stellar-ledger.h;src/$(Configuration)/generated/xdr/Stellar-ledger-entries.h;src/$(Configuration)/generated/xdr/Stellar-SCP.h;src/$(Configuration)/generated/xdr/Stellar-types.h
None
- sh ../../hash-xdrs.sh ../../src/protocol-next > src/$(Configuration)/generated/xdr/XDRFilesSha256.cpp
+ wsl bash ../../hash-xdrs.sh ../../src/protocol-next > src/$(Configuration)/generated/xdr/XDRFilesSha256.cpp
running hash-xdrs.sh
src/$(Configuration)/generated/xdr/XDRFilesSha256.cpp
src/$(Configuration)/generated/xdr/Stellar-overlay.h;src/$(Configuration)/generated/xdr/Stellar-transaction.h;src/$(Configuration)/generated/xdr/Stellar-ledger.h;src/$(Configuration)/generated/xdr/Stellar-ledger-entries.h;src/$(Configuration)/generated/xdr/Stellar-SCP.h;src/$(Configuration)/generated/xdr/Stellar-types.h
None
- sh ../../hash-xdrs.sh ../../src/protocol-next > src/$(Configuration)/generated/xdr/XDRFilesSha256.cpp
+ wsl bash ../../hash-xdrs.sh ../../src/protocol-next > src/$(Configuration)/generated/xdr/XDRFilesSha256.cpp
running hash-xdrs.sh
src/$(Configuration)/generated/xdr/XDRFilesSha256.cpp
src/$(Configuration)/generated/xdr/Stellar-overlay.h;src/$(Configuration)/generated/xdr/Stellar-transaction.h;src/$(Configuration)/generated/xdr/Stellar-ledger.h;src/$(Configuration)/generated/xdr/Stellar-ledger-entries.h;src/$(Configuration)/generated/xdr/Stellar-SCP.h;src/$(Configuration)/generated/xdr/Stellar-types.h;src/$(Configuration)/generated/xdr/Stellar-contract-config-setting.h
@@ -1550,8 +1550,8 @@ exit /b 0
Document
- sed.exe -e "s/%%%%VERSION%%%%/msvc custom/" < %(FullPath) > %(RelativeDir)\StellarCoreVersion.cpp
- sed.exe -e "s/%%%%VERSION%%%%/msvc custom/" < %(FullPath) > %(RelativeDir)\StellarCoreVersion.cpp
+ wsl sed -e "s/%%%%VERSION%%%%/msvc custom/" < %(FullPath) > %(RelativeDir)\StellarCoreVersion.cpp
+ wsl sed -e "s/%%%%VERSION%%%%/msvc custom/" < %(FullPath) > %(RelativeDir)\StellarCoreVersion.cpp
Generating StellarCoreVersion.cpp
Generating StellarCoreVersion.cpp
../../src/main/StellarCoreVersion.cpp
@@ -1560,9 +1560,9 @@ exit /b 0
- sed.exe -e "s/%%%%VERSION%%%%/msvc custom/" < %(FullPath) > %(RelativeDir)\StellarCoreVersion.cpp
- sed.exe -e "s/%%%%VERSION%%%%/msvc custom/" < %(FullPath) > %(RelativeDir)\StellarCoreVersion.cpp
- sed.exe -e "s/%%%%VERSION%%%%/msvc custom/" < %(FullPath) > %(RelativeDir)\StellarCoreVersion.cpp
+ wsl sed -e "s/%%%%VERSION%%%%/msvc custom/" < %(FullPath) > %(RelativeDir)\StellarCoreVersion.cpp
+ wsl sed -e "s/%%%%VERSION%%%%/msvc custom/" < %(FullPath) > %(RelativeDir)\StellarCoreVersion.cpp
+ wsl sed -e "s/%%%%VERSION%%%%/msvc custom/" < %(FullPath) > %(RelativeDir)\StellarCoreVersion.cpp
Generating StellarCoreVersion.cpp
Generating StellarCoreVersion.cpp
Generating StellarCoreVersion.cpp
@@ -1614,6 +1614,11 @@ $(OutDir)\bin\cxxbridge.exe ..\..\src\rust\src\lib.rs --output src\$(Configurati
running bison for XDRQueryParser.yy
../../src/util/xdrquery/XDRQueryParser.h
true
+ wsl bison --defines=../../src/util/xdrquery/XDRQueryParser.h --output=../../src/util/xdrquery/XDRQueryParser.cpp ../../src/util/xdrquery/XDRQueryParser.yy
+ wsl bison --defines=../../src/util/xdrquery/XDRQueryParser.h --output=../../src/util/xdrquery/XDRQueryParser.cpp ../../src/util/xdrquery/XDRQueryParser.yy
+ wsl bison --defines=../../src/util/xdrquery/XDRQueryParser.h --output=../../src/util/xdrquery/XDRQueryParser.cpp ../../src/util/xdrquery/XDRQueryParser.yy
+ wsl bison --defines=../../src/util/xdrquery/XDRQueryParser.h --output=../../src/util/xdrquery/XDRQueryParser.cpp ../../src/util/xdrquery/XDRQueryParser.yy
+ wsl bison --defines=../../src/util/xdrquery/XDRQueryParser.h --output=../../src/util/xdrquery/XDRQueryParser.cpp ../../src/util/xdrquery/XDRQueryParser.yy
Document
@@ -1621,6 +1626,11 @@ $(OutDir)\bin\cxxbridge.exe ..\..\src\rust\src\lib.rs --output src\$(Configurati
running flex for XDRQueryScanner.ll
../../src/util/xdrquery/XDRQueryScanner.cpp
true
+ wsl flex --outfile=../../src/util/xdrquery/XDRQueryScanner.cpp ../../src/util/xdrquery/XDRQueryScanner.ll
+ wsl flex --outfile=../../src/util/xdrquery/XDRQueryScanner.cpp ../../src/util/xdrquery/XDRQueryScanner.ll
+ wsl flex --outfile=../../src/util/xdrquery/XDRQueryScanner.cpp ../../src/util/xdrquery/XDRQueryScanner.ll
+ wsl flex --outfile=../../src/util/xdrquery/XDRQueryScanner.cpp ../../src/util/xdrquery/XDRQueryScanner.ll
+ wsl flex --outfile=../../src/util/xdrquery/XDRQueryScanner.cpp ../../src/util/xdrquery/XDRQueryScanner.ll
diff --git a/src/bucket/Bucket.cpp b/src/bucket/Bucket.cpp
index 9daf36f808..d20a6d82c2 100644
--- a/src/bucket/Bucket.cpp
+++ b/src/bucket/Bucket.cpp
@@ -5,7 +5,7 @@
// ASIO is somewhat particular about when it gets included -- it wants to be the
// first to include -- so we try to include it before everything
// else.
-#include "util/asio.h"
+#include "util/asio.h" // IWYU pragma: keep
#include "bucket/Bucket.h"
#include "bucket/BucketApplicator.h"
#include "bucket/BucketList.h"
@@ -16,9 +16,7 @@
#include "bucket/MergeKey.h"
#include "crypto/Hex.h"
#include "crypto/Random.h"
-#include "crypto/SHA.h"
#include "database/Database.h"
-#include "ledger/LedgerHashUtils.h"
#include "ledger/LedgerTxn.h"
#include "ledger/LedgerTypeUtils.h"
#include "main/Application.h"
@@ -26,15 +24,11 @@
#include "util/Fs.h"
#include "util/GlobalChecks.h"
#include "util/Logging.h"
-#include "util/TmpDir.h"
#include "util/XDRStream.h"
#include "util/types.h"
-#include "xdrpp/message.h"
#include
-#include
#include "medida/counter.h"
-#include "medida/meter.h"
namespace stellar
{
diff --git a/src/bucket/Bucket.h b/src/bucket/Bucket.h
index 6a5c3be7b8..43cb97abfd 100644
--- a/src/bucket/Bucket.h
+++ b/src/bucket/Bucket.h
@@ -5,16 +5,18 @@
// of this distribution or at http://www.apache.org/licenses/LICENSE-2.0
#include "bucket/BucketIndex.h"
-#include "crypto/Hex.h"
-#include "overlay/StellarXDR.h"
#include "util/NonCopyable.h"
#include "util/ProtocolVersion.h"
-#include "util/UnorderedMap.h"
-#include "util/UnorderedSet.h"
-#include "util/XDRStream.h"
+#include "xdr/Stellar-ledger.h"
+#include
#include
#include
+namespace asio
+{
+class io_context;
+}
+
namespace medida
{
class Counter;
diff --git a/src/bucket/BucketApplicator.cpp b/src/bucket/BucketApplicator.cpp
index be2d36b29e..7c739aa6f2 100644
--- a/src/bucket/BucketApplicator.cpp
+++ b/src/bucket/BucketApplicator.cpp
@@ -2,7 +2,7 @@
// under the Apache License, Version 2.0. See the COPYING file at the root
// of this distribution or at http://www.apache.org/licenses/LICENSE-2.0
-#include "util/asio.h"
+#include "util/asio.h" // IWYU pragma: keep
#include "bucket/BucketApplicator.h"
#include "bucket/Bucket.h"
#include "bucket/BucketList.h"
diff --git a/src/bucket/BucketApplicator.h b/src/bucket/BucketApplicator.h
index 79e74d1dce..8aa1d0a2a7 100644
--- a/src/bucket/BucketApplicator.h
+++ b/src/bucket/BucketApplicator.h
@@ -6,9 +6,7 @@
#include "bucket/Bucket.h"
#include "bucket/BucketInputIterator.h"
-#include "ledger/LedgerHashUtils.h"
#include "util/Timer.h"
-#include "util/XDRStream.h"
#include
namespace stellar
diff --git a/src/bucket/BucketIndex.h b/src/bucket/BucketIndex.h
index 4bbae7e09c..91aa53fa6c 100644
--- a/src/bucket/BucketIndex.h
+++ b/src/bucket/BucketIndex.h
@@ -4,10 +4,10 @@
// under the Apache License, Version 2.0. See the COPYING file at the root
// of this distribution or at http://www.apache.org/licenses/LICENSE-2.0
-#include "bucket/LedgerCmp.h"
#include "util/GlobalChecks.h"
#include "util/NonCopyable.h"
-#include
+#include "util/XDROperators.h" // IWYU pragma: keep
+#include "xdr/Stellar-ledger-entries.h"
#include
#include
#include
diff --git a/src/bucket/BucketIndexImpl.cpp b/src/bucket/BucketIndexImpl.cpp
index d601b2ee9e..176615457d 100644
--- a/src/bucket/BucketIndexImpl.cpp
+++ b/src/bucket/BucketIndexImpl.cpp
@@ -5,8 +5,7 @@
#include "bucket/BucketIndexImpl.h"
#include "bucket/Bucket.h"
#include "bucket/BucketManager.h"
-#include "bucket/LedgerCmp.h"
-#include "ledger/LedgerHashUtils.h"
+#include "crypto/ShortHash.h"
#include "main/Config.h"
#include "util/Fs.h"
#include "util/LogSlowExecution.h"
diff --git a/src/bucket/BucketInputIterator.h b/src/bucket/BucketInputIterator.h
index b9280ecad8..02bdb2f3ea 100644
--- a/src/bucket/BucketInputIterator.h
+++ b/src/bucket/BucketInputIterator.h
@@ -4,7 +4,6 @@
// under the Apache License, Version 2.0. See the COPYING file at the root
// of this distribution or at http://www.apache.org/licenses/LICENSE-2.0
-#include "bucket/LedgerCmp.h"
#include "util/XDRStream.h"
#include "xdr/Stellar-ledger.h"
diff --git a/src/bucket/BucketList.cpp b/src/bucket/BucketList.cpp
index f127deec05..b49ba3a9b3 100644
--- a/src/bucket/BucketList.cpp
+++ b/src/bucket/BucketList.cpp
@@ -7,24 +7,16 @@
#include "bucket/BucketInputIterator.h"
#include "bucket/BucketManager.h"
#include "bucket/BucketSnapshot.h"
-#include "bucket/LedgerCmp.h"
-#include "crypto/Hex.h"
-#include "crypto/Random.h"
#include "crypto/SHA.h"
-#include "ledger/LedgerHashUtils.h"
#include "ledger/LedgerManager.h"
#include "ledger/LedgerTxn.h"
-#include "ledger/LedgerTypeUtils.h"
#include "main/Application.h"
#include "util/GlobalChecks.h"
#include "util/Logging.h"
#include "util/ProtocolVersion.h"
-#include "util/UnorderedSet.h"
-#include "util/XDRStream.h"
#include "util/types.h"
#include "medida/counter.h"
-#include "medida/metrics_registry.h"
#include
#include
diff --git a/src/bucket/BucketList.h b/src/bucket/BucketList.h
index 4e7463e090..3e9960aa8b 100644
--- a/src/bucket/BucketList.h
+++ b/src/bucket/BucketList.h
@@ -6,12 +6,6 @@
#include "bucket/Bucket.h"
#include "bucket/FutureBucket.h"
-#include "bucket/LedgerCmp.h"
-#include "overlay/StellarXDR.h"
-#include "xdrpp/message.h"
-#include
-#include
-#include
namespace medida
{
diff --git a/src/bucket/BucketListSnapshot.cpp b/src/bucket/BucketListSnapshot.cpp
index 4f81a3bac0..6a8738f65b 100644
--- a/src/bucket/BucketListSnapshot.cpp
+++ b/src/bucket/BucketListSnapshot.cpp
@@ -4,11 +4,10 @@
#include "bucket/BucketListSnapshot.h"
#include "bucket/BucketInputIterator.h"
-#include "crypto/SecretKey.h"
+#include "crypto/SecretKey.h" // IWYU pragma: keep
#include "ledger/LedgerTxn.h"
-#include "medida/meter.h"
-#include "medida/metrics_registry.h"
+#include "medida/timer.h"
namespace stellar
{
diff --git a/src/bucket/BucketListSnapshot.h b/src/bucket/BucketListSnapshot.h
index 3a6ca1351c..2ecc8182fc 100644
--- a/src/bucket/BucketListSnapshot.h
+++ b/src/bucket/BucketListSnapshot.h
@@ -75,7 +75,7 @@ class SearchableBucketListSnapshot : public NonMovableOrCopyable
SearchableBucketListSnapshot(BucketSnapshotManager const& snapshotManager);
- friend std::unique_ptr
+ friend std::shared_ptr
BucketSnapshotManager::getSearchableBucketListSnapshot() const;
public:
diff --git a/src/bucket/BucketManager.h b/src/bucket/BucketManager.h
index b48b0a8514..abdb91db8d 100644
--- a/src/bucket/BucketManager.h
+++ b/src/bucket/BucketManager.h
@@ -5,8 +5,8 @@
// of this distribution or at http://www.apache.org/licenses/LICENSE-2.0
#include "bucket/Bucket.h"
-#include "overlay/StellarXDR.h"
#include "util/NonCopyable.h"
+#include "util/types.h"
#include
#include