Architecture decisions
These records explain decisions that shape Ripscope’s code and would surprise someone reading it for the first time. Each one says what was decided, why, and what follows for the code. A new decision takes the next number. When it replaces an earlier one, the earlier record names its replacement.
Compatibility with cscope
- 0001 A pinned cscope executable defines expected results
- 0002 Compatibility with cscope is measured, and its misreadings are corrected
Reading C
- 0003 Each file is read as written, without a compiler or preprocessor
- 0004 Ripscope’s own scanner reads every file as cscope does
Storage and freshness
- 0005 An index is one SQLite file in Ripscope’s own format
- 0006 One update at a time, and each query reads one revision
- 0007 A refresh re-applies the selection rule and trusts unchanged metadata
- 0008 Sessions refresh when a watch reports a change
Queries
- 0009 Stored queries read the index, and text searches read the files
- 0010 Ripscope’s own query semantics give each name the context it sits in
- 0011 The index keeps lines in blocks with their scope, and records answer rows
- 0012 Assignment search includes subscript stores, increments and decrements