The Future of SCIP

95 points
1/21/1970
5 days ago
by jdorfman

Comments


skybrian

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.

4 days ago

sanufar

I can’t speak for the Go bindings, but using the Rust crate has been pretty clean. Haven’t really felt the need to dip into deserializing raw .scip file in the time that I’ve been working with SCIP.

4 days ago

UncleOxidant

Oh, not SICP.

4 days ago

mentalpagefault

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...

4 days ago

bigfatkitten

4 days ago

eru

Or the other other SCIP: https://www.scipopt.org/

4 days ago

dobin

4 days ago

KK7NIL

Also not SCPI (Standard Commands for Programmable Instrumentation), widely used to control lab instruments and pronounced similarly ("skippy").

4 days ago

jamiek88

There IS no… wait, wrong acronym.

4 days ago

eru

Also not this SCIP: https://www.scipopt.org/

4 days ago

aleph_minus_one

... and not the solver for mixed integer (linear) programming (MI(L)P) and mixed integer nonlinear programming (MINLP):

> https://www.scipopt.org/

4 days ago

darkxanthos

This is what I clicked for.

4 days ago

eseliger

damn that is a cute logo, what a miss for SCIP-code

4 days ago

red_admiral

And also not SCP.

4 days ago

btown

At least, not that we remember.

4 days ago

yowayb

SCIP is a "nod" to SICP

4 days ago

soegaard

I misread it too.

4 days ago

groundzeros2015

Imagine working for this company where engineers don’t know about SICP

4 days ago

ananthakumaran

I have been using https://github.com/jacktasia/dumb-jump to quickly jump to definitions. LSP is hit or miss; in some languages, it works great, while in others, the implementation is not so good. I have been thinking about a middle ground based on Tree-sitter. GitHub uses Tree-sitter to power code navigation, but unfortunately, I can't find anything good that I can use offline. Why is there no ctags equivalent powered by Tree-sitter?

4 days ago

jupblb

It looks like GitHub's tree-sitter powered code navigation is no longer maintained: https://github.com/github/stack-graphs

4 days ago

ind-igo

[dead]

4 days ago

zingar

Something something powers go to definition… is this an implementation of an LSP server? Or a subset of what’s needed to implement LSP? A formerly proprietary alternative to LSP?

4 days ago

JamyDev

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).

4 days ago

s20n

Structure and Computer of Interpretation Programs

4 days ago

[deleted]
4 days ago

hikaru_ai

[dead]

4 days ago