2.1 KiB
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)intools/new_project_gen.c. - Reads
<layer>_inc.hline-by-line and collects all#include "..."statements that appear strictly above the target header being analyzed. - Automatically injects those preceding includes via
/FIso that any header opened in Neovim/clangd has its exact required preprocessor context with zero hardcoding.
- Implemented dynamic parser
- Multi-Layer Cascade:
- Deduces layer hierarchy from
appbin_main.cand supplies lower layer includes (/FIcore/core_inc.h, etc.) to upper layers automatically.
- Deduces layer hierarchy from
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)vschar** argv). - Implement proper command line argument parsing into
String8/String16arenas.
- Fix argument passing in
- 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"toappbin_main.c.
- Create
- UI Layer (
Juliet/ui/):- Create
ui_inc.h,ui_inc.c. - Implement UI hierarchy, layout, text rendering, and input handling.
- Create
4. Build System & LSP Maintenance
- Run
new_generate.batafter adding new layers or changing layer include order inappbin_main.c. - Keep
new_build.batas the single-pass unity compiler command for lightning-fast build times.