summaryrefslogtreecommitdiff
path: root/Urbit/Harbor.hs
diff options
context:
space:
mode:
authorBen Sima <ben@bsima.me>2025-11-14 20:02:57 -0500
committerBen Sima <ben@bsima.me>2025-11-14 20:02:57 -0500
commit05e9c79a6a7b8f13835398342b6f2d26417da946 (patch)
treea9a86f1a142d4c4057815ce5d253ad9566d02525 /Urbit/Harbor.hs
parent6c70d27dac7335fcc56ade271ab84ed5a57c16a1 (diff)
Add per-module Haskell build foundation
Implements Steps 1-4 of per-module Nix architecture: - Add HsModuleGraph and HsModuleNode types to represent module DAG - Implement buildHsModuleGraph that: - Parses imports for each module in the transitive closure - Detects Template Haskell usage (language pragma or $( patterns) - Detects import cycles using SCC analysis - Returns Nothing (fallback to monolithic) if TH or cycles found - Wire hsGraph into Target type for all builders - Populate hsGraph for Haskell targets during analysis Module graph is now emitted in --plan output showing per-module dependencies. This enables the next step: per-module Nix derivations in Builder.nix for true incremental builds. Part of Phase 3 from the performance plan.
Diffstat (limited to 'Urbit/Harbor.hs')
0 files changed, 0 insertions, 0 deletions