Skip to content

[MODULE] Create C++20 module files for kcenon.common #269

Description

@kcenon

Summary

Create C++20 module files for common_system as the foundation layer (Tier 0) of the unified system ecosystem.

Parent Epic

Part of #256 (C++20 Module Migration - Cross-System Preparation)

Prerequisites

Proposed Module Structure

// Primary module interface
export module kcenon.common;

export import kcenon.common.result;
export import kcenon.common.interfaces;
export import kcenon.common.di;
export import kcenon.common.patterns;

Module Partitions

Partition Contents
:result Result, error_info, VoidResult
:interfaces Base interfaces (IMetricCollector, etc.)
:di Dependency injection utilities
:patterns Design patterns (Observer, etc.)

File Structure

src/modules/
├── common.cppm              # Primary module interface
├── result.cppm              # Result<T> partition
├── interfaces.cppm          # Interfaces partition
├── di.cppm                  # DI partition
└── patterns.cppm            # Patterns partition

CMake Configuration

cmake_minimum_required(VERSION 3.28)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_SCAN_FOR_MODULES ON)

add_library(kcenon_common)
target_sources(kcenon_common
    PRIVATE FILE_SET CXX_MODULES
    FILES
        src/modules/common.cppm
        src/modules/result.cppm
        src/modules/interfaces.cppm
        src/modules/di.cppm
        src/modules/patterns.cppm
)

Tasks

  • Create module directory structure
  • Create common.cppm primary interface
  • Create result.cppm partition
  • Create interfaces.cppm partition
  • Create di.cppm partition
  • Create patterns.cppm partition
  • Update CMakeLists.txt for module support
  • Verify no circular module dependencies
  • Update all tests to use modules
  • Performance benchmark (compile time)
  • Update documentation

Acceptance Criteria

  • Module builds successfully with CMake 3.28+
  • All existing tests pass with module
  • No circular dependencies between partitions
  • Header-based build still works (transition period)
  • Performance not regressed

Migration Timeline

This is Phase 2 work (Release N+3) per EPIC #256:

  • Phase 1 (Refactoring) must be complete first
  • All dependent systems wait for this module

Related

Metadata

Metadata

Assignees

Labels

architectureArchitectural changes and designenhancementNew feature or request

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions