The Future of SCIP
The Future of SCIP
... and not the solver for mixed integer (linear) programming (MI(L)P) and mixed integer nonlinear programming (MINLP):
Nor the other SCIP.
https://en.wikipedia.org/wiki/Secure_Communications_Interope...
The similar acronym appears to be intentional:
> Note on the name: SCIP is pronounced the same way as “skip” and it’s a recursive acronym that stands for “SCIP Code Intelligence Protocol.”
> SCIP is also a purposeful nod to SICP (Structure and Interpretation of Programs), a book about analyzing programs.
https://sourcegraph.com/blog/announcing-scip#:~:text=SCIP%20...
The git repo is here: https://github.com/scip-code/scip
Looks like it's defined using protocol buffers, with "rich Go and Rust bindings" and links to implementations for many other languages.
In its simplest form, it's just a dump of the code intelligence information from a static copy of the code. This can power an LSP, however, without additional logic wouldn't be able to handle a project under edit, since the locations won't match between the indexed state and the edited project state; So it lends itself well for something like Sourcegraph that already displays a static copy of the codebase.
Uber uses SCIP as part of the LSP implementation for our Java monorepo (Pieces of which we've [open-sourced](https://github.com/uber/scip-lsp)).
Standardizing on SCIP has helped us generalize tools to be independent of the compiler/language ecosystem (eg we could do call-stack-analysis on any project that exports valid SCIP; do feature flag cleanup; find refs/impls across a wider scope than most LSP servers can handle due to memory constraints).