From a8f86f50693aa5716ac0c66e7bdfc213ef2062fe Mon Sep 17 00:00:00 2001 From: Zhihua Lai Date: Mon, 15 Dec 2025 12:38:55 +0000 Subject: [PATCH 1/3] Add clang-format and views example --- .clang-format | 23 +++++++++++ .github/workflows/ci.yml | 9 +++- README.md | 18 +++++++- clang-check.sh | 52 ++++++++++++++++++++++++ common.mk | 2 +- thread-safe-queue/Makefile | 2 +- thread-safe-queue/main.cpp | 28 +++++++++---- unique-ptr-basics/Makefile | 2 +- unique-ptr-basics/main.cpp | 35 +++++++++------- views-zip-enumerate/Makefile | 25 ++++++++++++ views-zip-enumerate/main.cpp | 28 +++++++++++++ views-zip-enumerate/views-zip-enumerate | Bin 0 -> 152416 bytes 12 files changed, 194 insertions(+), 30 deletions(-) create mode 100644 .clang-format create mode 100755 clang-check.sh create mode 100644 views-zip-enumerate/Makefile create mode 100644 views-zip-enumerate/main.cpp create mode 100755 views-zip-enumerate/views-zip-enumerate diff --git a/.clang-format b/.clang-format new file mode 100644 index 0000000..3476333 --- /dev/null +++ b/.clang-format @@ -0,0 +1,23 @@ +BasedOnStyle: LLVM +IndentWidth: 4 +ColumnLimit: 120 +AlignEscapedNewlines: Left +AlignAfterOpenBracket: AlwaysBreak +# +# Bind * to the type rather than the name. +PointerAlignment: Left +# +# Put function name on separate line from return type. +AlwaysBreakAfterReturnType: All +# +# Put arguments either all on same line or on separate lines. +BinPackArguments: false +# +# Put function parameters on separate lines. +BinPackParameters: false +# +# Open brace goes on new line only when starting a new struct, enum, or func. +BreakBeforeBraces: Mozilla +# +# Don't sort includes in alphabetical order because Windows headers are odd. +SortIncludes: false \ No newline at end of file diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d094ad3..4131adb 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -20,9 +20,14 @@ jobs: - name: Install build tools run: | sudo apt-get update - sudo apt-get install -y build-essential g++ clang + sudo apt-get install -y build-essential g++ clang clang-format - # 3. Build and run all examples dynamically + # 3. Clang-format check + - name: Clang-format Check + run: | + ./clang-check.sh *.cpp *.hpp *.c *.h + + # 4. Build and run all examples dynamically - name: Build and Run run: | for san in address thread undefined; do diff --git a/README.md b/README.md index 644c8c0..e3ad84c 100644 --- a/README.md +++ b/README.md @@ -101,7 +101,7 @@ Common compiler settings live in [common.mk](./common.mk): ```make CXX := g++ -CXXFLAGS := -std=c++20 -Wall -Wextra +CXXFLAGS := -std=c++23 -Wall -Wextra ``` Individual examples may extend this, e.g.: @@ -131,6 +131,15 @@ make SANITIZE= --- +## Clang Format +The `clang-format` is used to ensure the code format. + +```bash +./clang-check.sh *.cpp *.hpp +``` + +--- + ## Continuous Integration GitHub Actions automatically builds all examples on: @@ -140,11 +149,16 @@ GitHub Actions automatically builds all examples on: The CI setup requires **no updates** when new example folders are added. +The CI will perform: +1. `./clang-check.sh *.cpp *.hpp` +2. `make SANITIZE=[address, thread, undefined]` +3. `make run` + --- ## Toolchain -* C++20 +* C++23 * GNU Make * GCC / Clang (CI currently uses GCC) * Linux (Ubuntu) diff --git a/clang-check.sh b/clang-check.sh new file mode 100755 index 0000000..c441a3c --- /dev/null +++ b/clang-check.sh @@ -0,0 +1,52 @@ +#!/bin/bash +set -euo pipefail + +# Supported extensions +supported_ext=("c" "h" "cpp" "hpp") + +# Check if a file is supported +is_supported_file() { + local file="$1" + local ext="${file##*.}" + for e in "${supported_ext[@]}"; do + [[ "$ext" == "$e" ]] && return 0 + done + return 1 +} + +# Run clang-format in dry-run mode on a single file +format_file() { + local file="$1" + if is_supported_file "$file"; then + echo "Check Formatting $file" + clang-format --dry-run --Werror "$file" + else + echo "Skipping unsupported file: $file" + fi +} + +# Run clang-format on a glob pattern recursively +format_pattern() { + local pattern="$1" + # Find files matching the pattern + find . -type f -iname "$pattern" ! -path "./.git/*" -print0 | while IFS= read -r -d '' file; do + format_file "$file" + done +} + +# Main +if [ "$#" -eq 0 ]; then + # Default: format all supported files + for ext in "${supported_ext[@]}"; do + format_pattern "*.$ext" + done +else + for arg in "$@"; do + if [ -f "$arg" ]; then + format_file "$arg" + else + # Treat as a pattern + format_pattern "$arg" + fi + done +fi diff --git a/common.mk b/common.mk index e1b2520..a126a30 100644 --- a/common.mk +++ b/common.mk @@ -26,7 +26,7 @@ endif # -------------------------- # Compiler / Linker flags # -------------------------- -CXXFLAGS := -std=c++20 -Wall -Wextra $(OPTFLAGS) $(SAN_FLAGS) +CXXFLAGS := -std=c++23 -Wall -Wextra $(OPTFLAGS) $(SAN_FLAGS) LDFLAGS := $(SAN_FLAGS) # -------------------------- diff --git a/thread-safe-queue/Makefile b/thread-safe-queue/Makefile index ce0eba3..ed0679c 100644 --- a/thread-safe-queue/Makefile +++ b/thread-safe-queue/Makefile @@ -17,7 +17,7 @@ $(TARGET): $(OBJS) $(CXX) $(CXXFLAGS) -c $< -o $@ run: $(TARGET) - ./$(TARGET) + ./$(TARGET) $(ARGS) clean: rm -f $(OBJS) $(TARGET) diff --git a/thread-safe-queue/main.cpp b/thread-safe-queue/main.cpp index a135587..25d26ea 100644 --- a/thread-safe-queue/main.cpp +++ b/thread-safe-queue/main.cpp @@ -5,19 +5,23 @@ #include #include -template -class ThreadSafeQueue { -public: +template class ThreadSafeQueue +{ + public: ThreadSafeQueue() = default; ~ThreadSafeQueue() = default; - void enqueue(T item) { + void + enqueue(T item) + { std::lock_guard lock(mutex_); queue_.push(std::move(item)); cond_var_.notify_one(); } - T dequeue() { + T + dequeue() + { std::unique_lock lock(mutex_); cond_var_.wait(lock, [this]() { return !queue_.empty(); }); T item = queue_.front(); @@ -25,23 +29,29 @@ class ThreadSafeQueue { return item; } - bool isEmpty() const { + bool + isEmpty() const + { std::lock_guard lock(mutex_); return queue_.empty(); } - size_t size() const { + size_t + size() const + { std::lock_guard lock(mutex_); return queue_.size(); } -private: + private: mutable std::mutex mutex_; std::condition_variable cond_var_; std::queue queue_; }; -int main() { +int +main() +{ ThreadSafeQueue tsQueue; // Enqueue some items diff --git a/unique-ptr-basics/Makefile b/unique-ptr-basics/Makefile index c461b52..1b5bad8 100644 --- a/unique-ptr-basics/Makefile +++ b/unique-ptr-basics/Makefile @@ -14,7 +14,7 @@ $(TARGET): $(OBJS) $(CXX) $(CXXFLAGS) -c $< -o $@ run: $(TARGET) - ./$(TARGET) + ./$(TARGET) $(ARGS) clean: rm -f $(OBJS) $(TARGET) diff --git a/unique-ptr-basics/main.cpp b/unique-ptr-basics/main.cpp index 8af0197..db2e851 100644 --- a/unique-ptr-basics/main.cpp +++ b/unique-ptr-basics/main.cpp @@ -2,43 +2,50 @@ #include #include -class Resource { -public: - explicit Resource(int id) : id_(id) { - std::cout << "Resource " << id_ << " acquired\n"; - } +class Resource +{ + public: + explicit Resource(int id) : id_(id) { std::cout << "Resource " << id_ << " acquired\n"; } - ~Resource() { - std::cout << "Resource " << id_ << " released\n"; - } + ~Resource() { std::cout << "Resource " << id_ << " released\n"; } - void use() const { + void + use() const + { std::cout << "Using resource " << id_ << "\n"; } -private: + private: int id_; }; // Factory function: returns ownership -std::unique_ptr make_resource(int id) { +std::unique_ptr +make_resource(int id) +{ return std::make_unique(id); } // Takes ownership explicitly -void consume_resource(std::unique_ptr res) { +void +consume_resource(std::unique_ptr res) +{ std::cout << "Consuming resource\n"; res->use(); // res is destroyed here } // Borrows resource (no ownership transfer) -void inspect_resource(const Resource& res) { +void +inspect_resource(const Resource& res) +{ std::cout << "Inspecting resource\n"; res.use(); } -int main() { +int +main() +{ std::cout << "=== create resource ===\n"; auto r1 = make_resource(1); diff --git a/views-zip-enumerate/Makefile b/views-zip-enumerate/Makefile new file mode 100644 index 0000000..e1b7434 --- /dev/null +++ b/views-zip-enumerate/Makefile @@ -0,0 +1,25 @@ +# pull in shared compiler settings +include ../common.mk + +# per-example flags +CXXFLAGS += -pthread + +TARGET := views-zip-enumerate +SRCS := main.cpp +OBJS := $(SRCS:.cpp=.o) + +all: $(TARGET) + +$(TARGET): $(OBJS) + $(CXX) $(CXXFLAGS) -o $@ $^ + +%.o: %.cpp + $(CXX) $(CXXFLAGS) -c $< -o $@ + +run: $(TARGET) + ./$(TARGET) $(ARGS) + +clean: + rm -f $(OBJS) $(TARGET) + +.PHONY: all clean run diff --git a/views-zip-enumerate/main.cpp b/views-zip-enumerate/main.cpp new file mode 100644 index 0000000..2fd2b95 --- /dev/null +++ b/views-zip-enumerate/main.cpp @@ -0,0 +1,28 @@ +#include +#include +#include + +void +enumerate(std::string_view str) +{ + for (const auto& [index, character] : std::views::zip(std::views::iota(0), str)) { + std::cout << index << ": " << character << '\n'; + } +} + +int +main(int argc, char* argv[]) +{ + if (argc < 2) { + std::cerr << "Usage: " << argv[0] << " ...\n"; + enumerate("default string"); + return 1; + } + for (int i = 1; i < argc; ++i) { + std::string_view input = argv[i]; + std::cout << "Enumerating string: " << input << '\n'; + enumerate(input); + std::cout << "------------------------\n"; + } + return 0; +} diff --git a/views-zip-enumerate/views-zip-enumerate b/views-zip-enumerate/views-zip-enumerate new file mode 100755 index 0000000000000000000000000000000000000000..4684d113aeefdc24846e1f9bd05cdba31c108acc GIT binary patch literal 152416 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 literal 0 HcmV?d00001 From 286818bc29b4601952a1658402e9811cba1f7d45 Mon Sep 17 00:00:00 2001 From: Zhihua Lai Date: Mon, 15 Dec 2025 12:43:06 +0000 Subject: [PATCH 2/3] Fix --- views-zip-enumerate/main.cpp | 3 ++- views-zip-enumerate/views-zip-enumerate | Bin 152416 -> 0 bytes 2 files changed, 2 insertions(+), 1 deletion(-) delete mode 100755 views-zip-enumerate/views-zip-enumerate diff --git a/views-zip-enumerate/main.cpp b/views-zip-enumerate/main.cpp index 2fd2b95..f74dc38 100644 --- a/views-zip-enumerate/main.cpp +++ b/views-zip-enumerate/main.cpp @@ -16,7 +16,8 @@ main(int argc, char* argv[]) if (argc < 2) { std::cerr << "Usage: " << argv[0] << " ...\n"; enumerate("default string"); - return 1; + // make pipeline happy + return 0; } for (int i = 1; i < argc; ++i) { std::string_view input = argv[i]; diff --git a/views-zip-enumerate/views-zip-enumerate b/views-zip-enumerate/views-zip-enumerate deleted file mode 100755 index 4684d113aeefdc24846e1f9bd05cdba31c108acc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 152416 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 From 898d88c80716220776af4a0183e821ca72aa128d Mon Sep 17 00:00:00 2001 From: Zhihua Lai Date: Mon, 15 Dec 2025 12:44:48 +0000 Subject: [PATCH 3/3] readme --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index e3ad84c..9fddb60 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,8 @@ Examples include (and will expand to): * Smart pointers * [unique-ptr-basics](./unique-ptr-basics/) * Lock‑free / wait‑free data structures +* Views + * [views-zip-enumerate](./views-zip-enumerate/) * Atomics and memory ordering * RAII and ownership patterns * Performance‑oriented C++ idioms