So this is awkward, but we don't actually have docs for Caffeine yet. That's what I'm working on right now. In the meantime, you can read my brain dump document!
Declarative TOML-based monorepo configuration with bidirectional sync
A TypeScript static analysis for fast hashing of data structures
Prototype an iterative analysis to analyze call graph and interprocedural, field-sensitive points-to analysis at the same time
What happens when a new function is added by the user? We don't want to recompute everything and end up slow like Crystal (relevant: https://arxiv.org/abs/2412.10632)
What are the edge cases where we lose context or precision in the points-to analysis? Even flow-insensitive field-sensitive interprocedural points-to is undecidable
We should document the internals of everything we're doing
caffeine.pub rocks