Skip to content

docs: add GitHub Pages documentation with Documenter.jl#12

Merged
mgyoo86 merged 8 commits intomasterfrom
docs/GitHub_Pages
Jan 5, 2026
Merged

docs: add GitHub Pages documentation with Documenter.jl#12
mgyoo86 merged 8 commits intomasterfrom
docs/GitHub_Pages

Conversation

@mgyoo86
Copy link
Collaborator

@mgyoo86 mgyoo86 commented Jan 5, 2026

PR: Add GitHub Pages Documentation with Documenter.jl

Summary

  • Set up GitHub Pages documentation using Documenter.jl with automatic CI deployment
  • Restructure documentation into a 4-stage learning journey: Basics → Advanced → Features → Reference → Architecture
  • Add comprehensive English design documents
  • Improve technical accuracy of memory semantics documentation

Key Changes

Infrastructure

File Description
.github/workflows/Documentation.yml CI workflow for automatic docs deployment
docs/Project.toml Documenter.jl dependencies
docs/make.jl Build script with README path rewriting

Documentation Structure

docs/src/
├── index.md                    # Generated from README.md
├── basics/                     # Getting started
│   ├── quick-start.md
│   ├── with-pool-patterns.md
│   ├── api-essentials.md
│   └── safety-rules.md
├── advanced/                   # Advanced patterns (NEW)
│   └── pool-patterns.md
├── features/                   # Optional features
│   ├── maybe-with-pool.md
│   ├── cuda-support.md
│   └── configuration.md
├── reference/                  # Complete API
│   └── api.md
└── architecture/               # Internal design
    ├── how-it-works.md
    ├── type-dispatch.md
    ├── macro-internals.md
    └── design-docs.md

Design Documents (English)

Document Topic
hybrid_api_design.md acquire! vs unsafe_acquire! type stability analysis
nd_array_approach_comparison.md N-way set-associative cache design
untracked_acquire_design.md Macro-based detection and 1-based sentinel pattern
fixed_slots_codegen_design.md Zero-allocation iteration via @generated
cuda_extension_design.md CUDA backend architecture

Technical Accuracy Improvements

Memory semantics clarification:

  • Changed "recycled" → "marked available for reuse" throughout docs
  • Added !!! warning admonition explaining undefined behavior:
    • Subsequent acquire! calls may overwrite data
    • Task termination may trigger GC
    • Silent data corruption is the worst case

unsafe_acquire! clarification:

  • Explicitly states zero-allocation on cache hit
  • Added !!! tip showing cache behavior (0 bytes hit / 80-144 bytes miss)
  • Links to N-Way Cache architecture documentation

New advanced patterns:

  • Direct pool access via get_task_local_pool() in inner functions
  • Memory flow visualization with ASCII diagrams
  • User responsibility warnings for leak prevention

Commits

b7cb5bf docs: improve technical accuracy and add advanced pool patterns
6c13552 docs: restructure to 4-stage learning journey
d807d05 refactor: move docs to docs/src/, update README links to GitHub Pages
5049263 docs: update Further Reading with GitHub links and English descriptions
27ef39a docs: update design documents to match current codebase
7384f84 docs: merge hybrid API design docs into single file
e984134 docs: add English design documents to docs/design
5de5de3 docs: add GitHub Pages documentation with Documenter.jl

Test Plan

  • julia --project=docs docs/make.jl builds successfully
  • All cross-references resolve correctly
  • Admonitions (!!! warning, !!! tip) render properly
  • Verify deployment on GitHub Pages after merge

Breaking Changes

None. This PR only adds documentation infrastructure.

Related

  • Closes documentation setup for GitHub Pages
  • Prepares for future doc improvements and API documentation

- Add .github/workflows/Documentation.yml for automated deployment
- Add docs/Project.toml with Documenter.jl dependencies
- Add docs/make.jl with path rewriting and page organization
- Add new documentation pages:
  - guide/getting-started.md: Quick start guide
  - advanced/macro-internals.md: How @with_pool works
  - advanced/internals.md: Pool architecture overview
- Organize existing docs into structured hierarchy:
  - Guide: Getting Started, Safety Rules
  - Usage: API Reference, Configuration, @maybe_with_pool, CUDA
  - Advanced: Multi-threading, Macro Internals, Internals
- Translate 6 Korean/mixed documents to English:
  - fixed_slots_codegen_design.md (updated for 7 fixed slots)
  - hybrid_api_design.md
  - nd_array_approach_comparison.md
  - new_hybrid_api_design.md
  - untracked_acquire_design.md
  - macro-linenumbernode-improvement.md
- Copy 2 existing English documents:
  - cuda_extension_design.md
  - vector_resize_memory_behavior.md
- Verify codebase consistency with design specs
- Merge new_hybrid_api_design.md into hybrid_api_design.md
- Add Implementation Specification section (struct layout, N-way algorithm)
- Add API Aliases section (acquire_view!, acquire_array!)
- Add Verification Checklist
- Remove redundant new_hybrid_api_design.md
- fixed_slots_codegen_design.md: Update empty!() to 1-based sentinel pattern
- hybrid_api_design.md: Mark changes as implemented, resolve open questions
- nd_array_approach_comparison.md: Update N-way cache structure (nd_views removed)
- untracked_acquire_design.md: Update _mark_untracked!(), rewind!(), replace
  all_type_stacks() with foreach_fixed_slot()
- Remove copy logic from make.jl (files now live in docs/src/)
- Delete redundant docs/*.md files (content is in docs/src/**)
- Update README links to point to GitHub Pages stable URLs
- Simplify documentation build process
Reorganize documentation from Guide/Usage/Advanced to:
- Basics: quick-start, @with_pool patterns, essential API, safety rules
- Features: @maybe_with_pool, CUDA, multi-threading, configuration
- Reference: full API
- Architecture: how-it-works, type dispatch, macro internals, design docs

New content:
- basics/with-pool-patterns.md: function decorator vs block wrapper
- basics/api-essentials.md: core API with reset! and fill! patterns
- architecture/type-dispatch.md: N-way cache + View vs Array guide
- architecture/design-docs.md: links to design documents

Improvements:
- safety-rules.md: visual emphasis with tables
- how-it-works.md: zero-alloc diagram + try...finally explanation
- make.jl: mapping table approach for path rewriting
- Add advanced/pool-patterns.md with direct pool access pattern
- Fix memory semantics: "recycled" → "marked available for reuse"
- Add warning admonition explaining undefined behavior after scope
- Clarify unsafe_acquire! is zero-allocation on cache hit
- Add tip admonition for cache behavior documentation
- Separate basics and advanced pool patterns into distinct sections
@codecov
Copy link

codecov bot commented Jan 5, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 96.41%. Comparing base (fa1bf81) to head (b7cb5bf).
⚠️ Report is 9 commits behind head on master.

Additional details and impacted files
@@           Coverage Diff           @@
##           master      #12   +/-   ##
=======================================
  Coverage   96.41%   96.41%           
=======================================
  Files           8        8           
  Lines        1004     1004           
=======================================
  Hits          968      968           
  Misses         36       36           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@mgyoo86 mgyoo86 merged commit 52f0989 into master Jan 5, 2026
9 checks passed
@mgyoo86 mgyoo86 deleted the docs/GitHub_Pages branch January 5, 2026 20:45
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