Files
Juliet/todo_modules.md

2.1 KiB

Modular Architecture & Tooling TODO

This document tracks upcoming tasks for Juliet's modular architecture (core, appbin, future render, ui, etc.) and the build/LSP generation tooling.


1. Tooling & Project Generator (tools/new_project_gen.c)

  • Dynamic Preceding Include Parser:
    • Implemented dynamic parser get_preceding_includes_from_inc_h(layer_name, target_file_path) in tools/new_project_gen.c.
    • Reads <layer>_inc.h line-by-line and collects all #include "..." statements that appear strictly above the target header being analyzed.
    • Automatically injects those preceding includes via /FI so that any header opened in Neovim/clangd has its exact required preprocessor context with zero hardcoding.
  • Multi-Layer Cascade:
    • Deduces layer hierarchy from appbin_main.c and supplies lower layer includes (/FIcore/core_inc.h, etc.) to upper layers automatically.

2. Core Module Implementation (Juliet/core/)

  • Fill core.c:
    • Implement base core routines (OS helpers, string utilities, arena allocation implementations, math helpers).
  • Win32 Core Cleanup:
    • Fix argument passing in win32_core.c:55 (main_thread_core_entry_point(argc, &argv) vs char** argv).
    • Implement proper command line argument parsing into String8/String16 arenas.
  • Unit Tests for Core:
    • Create standalone test executable or test entry point validating arena allocation, commit/decommit, and string routines.

3. Future Layers

  • Render Layer (Juliet/render/):
    • Create render_inc.h, render_inc.c.
    • Implement D3D12 device initialization, command queues, swap chain, and memory allocators.
    • Add #include "render/render_inc.h" and #include "render/render_inc.c" to appbin_main.c.
  • UI Layer (Juliet/ui/):
    • Create ui_inc.h, ui_inc.c.
    • Implement UI hierarchy, layout, text rendering, and input handling.

4. Build System & LSP Maintenance

  • Run new_generate.bat after adding new layers or changing layer include order in appbin_main.c.
  • Keep new_build.bat as the single-pass unity compiler command for lightning-fast build times.