From 6ccf92fc25e7f28ca217300e763ed5fa884bbfd9 Mon Sep 17 00:00:00 2001 From: Redbeanw44602 Date: Sun, 2 Mar 2025 12:07:41 +0800 Subject: [PATCH] refactor: update. --- .clangd.windows | 2 -- src/data_format/bound_symbol_list.h | 2 +- src/data_format/magic_blob.h | 2 +- src/data_format/raw_text.h | 2 +- src/data_format/typed_symbol_list.h | 2 +- src/io/io_base.h | 4 ++-- src/io/streamed_io.cpp | 4 ++-- src/io/streamed_io.h | 6 +++--- src/nonstd.h | 2 +- src/object_file/pdb.h | 2 +- src/tools/askrva/main.cpp | 9 +++++---- src/tools/blob-extractor/main.cpp | 3 ++- src/tools/extractsym/main.cpp | 3 ++- src/tools/makepdb/main.cpp | 3 ++- xmake.lua | 6 +++--- 15 files changed, 27 insertions(+), 25 deletions(-) delete mode 100644 .clangd.windows diff --git a/.clangd.windows b/.clangd.windows deleted file mode 100644 index 2eec217..0000000 --- a/.clangd.windows +++ /dev/null @@ -1,2 +0,0 @@ -CompileFlags: - Add: ["-std:latest", "/clang:-std=c++23"] diff --git a/src/data_format/bound_symbol_list.h b/src/data_format/bound_symbol_list.h index 96c366c..7938aef 100644 --- a/src/data_format/bound_symbol_list.h +++ b/src/data_format/bound_symbol_list.h @@ -5,7 +5,7 @@ namespace di::data_format { -class BoundSymbolList : public IOBase { +class BoundSymbolList : public io::IOBase { public: using for_each_callback_t = std::function; diff --git a/src/data_format/magic_blob.h b/src/data_format/magic_blob.h index 459e3c3..629df8f 100644 --- a/src/data_format/magic_blob.h +++ b/src/data_format/magic_blob.h @@ -5,7 +5,7 @@ namespace di::data_format { -class MagicBlob : public StreamedIO { +class MagicBlob : public io::StreamedIO { public: using for_each_callback_t = std::function; diff --git a/src/data_format/raw_text.h b/src/data_format/raw_text.h index 205638f..e56b48e 100644 --- a/src/data_format/raw_text.h +++ b/src/data_format/raw_text.h @@ -4,7 +4,7 @@ namespace di::data_format { -class RawText : public IOBase { +class RawText : public io::IOBase { public: void read(const fs::path& path) override; void write(const fs::path& path) const override; diff --git a/src/data_format/typed_symbol_list.h b/src/data_format/typed_symbol_list.h index 2278d24..635f1b0 100644 --- a/src/data_format/typed_symbol_list.h +++ b/src/data_format/typed_symbol_list.h @@ -7,7 +7,7 @@ namespace di::data_format { -class TypedSymbolList : public IOBase { +class TypedSymbolList : public io::IOBase { public: using for_each_callback_t = std::function; diff --git a/src/io/io_base.h b/src/io/io_base.h index 2fb5215..348baf3 100644 --- a/src/io/io_base.h +++ b/src/io/io_base.h @@ -1,6 +1,6 @@ #pragma once -namespace di { +namespace di::io { class IOBase { public: @@ -10,4 +10,4 @@ public: virtual void write(const fs::path& path) const = 0; }; -} // namespace di +} // namespace di::io diff --git a/src/io/streamed_io.cpp b/src/io/streamed_io.cpp index 6886fcc..f9696e5 100644 --- a/src/io/streamed_io.cpp +++ b/src/io/streamed_io.cpp @@ -1,6 +1,6 @@ #include "io/streamed_io.h" -namespace di { +namespace di::io { void StreamedIO::read(const fs::path& path) { m_file_stream.open(path, std::ios::binary); @@ -14,4 +14,4 @@ void StreamedIO::write(const fs::path& path) const { ofs << m_file_stream.rdbuf(); } -} // namespace di \ No newline at end of file +} // namespace di::io \ No newline at end of file diff --git a/src/io/streamed_io.h b/src/io/streamed_io.h index af261fb..5d37efe 100644 --- a/src/io/streamed_io.h +++ b/src/io/streamed_io.h @@ -2,9 +2,9 @@ #include "io/io_base.h" -namespace di { +namespace di::io { -class StreamedIO : public IOBase { +class StreamedIO : public io::IOBase { public: void read(const fs::path& path) override; void write(const fs::path& path) const override; @@ -40,4 +40,4 @@ private: std::ifstream m_file_stream; }; -} // namespace di +} // namespace di::io diff --git a/src/nonstd.h b/src/nonstd.h index 4c45f79..1b9d8b3 100644 --- a/src/nonstd.h +++ b/src/nonstd.h @@ -19,7 +19,7 @@ namespace { // http://stackoverflow.com/questions/4948780 template -inline void hash_combine(std::size_t& seed, T const& v) { +constexpr void hash_combine(std::size_t& seed, T const& v) { seed ^= std::hash()(v) + 0x9e3779b9 + (seed << 6) + (seed >> 2); } diff --git a/src/object_file/pdb.h b/src/object_file/pdb.h index 42ca68a..ab4b603 100644 --- a/src/object_file/pdb.h +++ b/src/object_file/pdb.h @@ -13,7 +13,7 @@ namespace di::object_file { -class PDB : public IOBase { +class PDB : public io::IOBase { public: using owning_coff_t = std::unique_ptr; using owning_symbol_data_t = std::unique_ptr; diff --git a/src/tools/askrva/main.cpp b/src/tools/askrva/main.cpp index 6ef00ad..d453197 100644 --- a/src/tools/askrva/main.cpp +++ b/src/tools/askrva/main.cpp @@ -11,6 +11,7 @@ #endif using namespace di; +using namespace di::data_format; [[nodiscard]] auto load_args(int argc, char* argv[]) { argparse::ArgumentParser program("askrva"); @@ -66,13 +67,13 @@ using namespace di; int main(int argc, char* argv[]) try { auto args = load_args(argc, argv); - auto symlist = data_format::TypedSymbolList(); + auto symlist = TypedSymbolList(); - data_format::BoundSymbolList bound_symbol_list; - data_format::RawText failed_list; + BoundSymbolList bound_symbol_list; + RawText failed_list; #if !DI_USE_NATIVE_SYMBOL_RESOLVER - data_format::MagicBlob magic_blob; + MagicBlob magic_blob; magic_blob.read(args.m_magic_blob_path); #endif diff --git a/src/tools/blob-extractor/main.cpp b/src/tools/blob-extractor/main.cpp index ff56590..d11474b 100644 --- a/src/tools/blob-extractor/main.cpp +++ b/src/tools/blob-extractor/main.cpp @@ -4,6 +4,7 @@ #include using namespace di; +using namespace di::data_format; auto load_args(int argc, char* argv[]) { argparse::ArgumentParser program("blob-extractor"); @@ -36,7 +37,7 @@ int main(int argc, char* argv[]) try { auto args = load_args(argc, argv); - data_format::MagicBlob blob; + MagicBlob blob; blob.read(args.m_magic_blob_path); nlohmann::json data; diff --git a/src/tools/extractsym/main.cpp b/src/tools/extractsym/main.cpp index de090c3..29a9406 100644 --- a/src/tools/extractsym/main.cpp +++ b/src/tools/extractsym/main.cpp @@ -7,6 +7,7 @@ using namespace di; using namespace di::object_file; +using namespace di::data_format; auto load_args(int argc, char* argv[]) { argparse::ArgumentParser program("extractpdb"); @@ -42,7 +43,7 @@ int main(int argc, char* argv[]) try { PDB pdb; pdb.read(args.m_program_database_path); - data_format::TypedSymbolList symbol_list; + TypedSymbolList symbol_list; pdb.for_each([&symbol_list](const codeview::PublicSym32& symbol ) { diff --git a/src/tools/makepdb/main.cpp b/src/tools/makepdb/main.cpp index 02f97d7..9492039 100644 --- a/src/tools/makepdb/main.cpp +++ b/src/tools/makepdb/main.cpp @@ -6,6 +6,7 @@ #include "data_format/bound_symbol_list.h" using namespace di; +using namespace di::data_format; [[nodiscard]] auto load_args(int argc, char* argv[]) { @@ -54,7 +55,7 @@ int main(int argc, char* argv[]) try { auto server_program = std::make_unique(args.server_program_path); - auto symbol_data = std::make_unique(); + auto symbol_data = std::make_unique(); symbol_data->read(args.symbol_data_path); object_file::PDB pdb; diff --git a/xmake.lua b/xmake.lua index 6171117..8b6d00f 100644 --- a/xmake.lua +++ b/xmake.lua @@ -3,7 +3,6 @@ add_rules('mode.debug', 'mode.release') add_requires('argparse 3.1') add_requires('nlohmann_json 3.11.3') add_requires('xxhash 0.8.3') -add_requires('boost 1.87.0') add_requires('llvm') @@ -30,13 +29,13 @@ end --- global settings +set_policy("build.optimization.lto", true) + set_languages('c23', 'c++23') set_warnings('all') add_includedirs('src') -set_policy("build.optimization.lto", true) - if is_mode('debug') then add_defines('DI_DEBUG') end @@ -100,6 +99,7 @@ target('extractsym') add_packages( 'llvm', + 'nlohmann_json', 'argparse' )