Skip to content

Feat/Fix and release#6

Merged
k5602 merged 24 commits into
mainfrom
feat/M4
Jun 14, 2026
Merged

Feat/Fix and release#6
k5602 merged 24 commits into
mainfrom
feat/M4

Conversation

@k5602

@k5602 k5602 commented Jun 14, 2026

Copy link
Copy Markdown
Owner

This pull request introduces major improvements to the build system, continuous integration, documentation, and benchmarking for the gthreads project. The changes add a CI workflow, expand the CMake build to include architecture-specific assembly and new source files, update the documentation for clarity and completeness, and introduce a suite of performance benchmarks for context switching, thread creation, mutex, and semaphore operations.

Build System and CI Improvements:

  • Added a comprehensive GitHub Actions CI workflow (.github/workflows/ci.yml) that runs formatting checks, builds, tests, and sanitizer checks on multiple compilers and build types, ensuring code quality and correctness on every push and pull request.
  • Updated CMakeLists.txt to:
    • Add support for x86_64 assembly context switching by conditionally including src/context/ctx_x86_64.S.
    • Include new trace, replay, and fuzzing source files in the build. [1] [2]
    • Add new tests, example programs, and benchmark executables for easier validation and demonstration.
    • Expand formatting targets to cover new source, example, and benchmark files.

Documentation Updates:

  • Rewrote the README.md to provide a clear project overview, rationale, build instructions, performance metrics, API summary, and links to architectural and testing documentation. This makes the project much more accessible to new contributors and users.

Benchmark Suite:

These changes significantly improve the project's robustness, usability, and ability to measure and communicate performance.


Most important changes:

Build System and CI:

  • Added a full CI workflow for formatting, building, testing, and sanitizer checks on push and PR events in .github/workflows/ci.yml.
  • Updated CMakeLists.txt to support x86_64 assembly context switching, add new source files for tracing, replay, and fuzzing, and build new tests, examples, and benchmarks. [1] [2] [3] [4]

Documentation:

  • Rewrote README.md for clarity, providing project overview, rationale, build instructions, performance data, API summary, and documentation links.

Benchmarking:

  • Introduced new benchmarks for context switching (bench_context_switch.c), thread creation (bench_thread_create.c), mutex throughput (bench_mutex.c), and semaphore throughput (bench_semaphore.c). [1] [2] [3] [4]

@k5602 k5602 self-assigned this Jun 14, 2026
Add .note.GNU-stack section to gth_ctx_trampoline to prevent executable
stack warnings.
@k5602 k5602 merged commit 89b4f64 into main Jun 14, 2026
2 of 14 checks passed
@k5602 k5602 deleted the feat/M4 branch June 14, 2026 05:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant