Introducing the Systemtap Language-server

Martin Cermak mcermak@redhat.com
Mon Feb 6 09:47:52 GMT 2023


On  Fri  2023-02-03  15:06 , Ryan Goldberg via Systemtap wrote:
> Hi all,
> 
> A new language-server [0] mode has recently been added to systemtap. The
> language-server, which runs as a child of an lsp-client [1], serves up
> code-completion suggestions.
> 
> The language-server-protocol uses jsonrpc [2] and we developed our own C++
> SDK which both implements jsonrpc and allows for the creation of
> language-servers.
> 
> We use systemtap's pass 1 machinery in order to lex and parse
> code-completion requests and then use the termination state to determine
> the completion results as well as some metadata (such as the result type).
> Further deriving these allows us to provide additional context-specific
> completion results such as context variables within applicable probe
> statement blocks or string completions within probe components. The server
> also provides completions for globals, functions and macros from both
> within the script and from the tapsets.
> 
> The language server can be run with "stap --language-server" and should be
> started by a language-server client as the data is currently transferred
> via stdin/stdout. We have currently been testing with vim, emacs, vscode,
> jupyter and eclipse. Take a look at language-server/README.md for client
> specific usage instructions.
> 
> For more information I'll be releasing a blog post later this year
> describing the jupyter-notebook use case of the language-server. If you
> have any feedback, I'd be happy to hear it.

Hi Ryan, the source doesn't compile on RHEL.  RHEL9 currently only
has json-c-devel-0.14 which doesn't provide json_object_new_array_ext().
It only las json_object_new_array()  This seems to be the only
compilation problem on RHEL9.

However, systemtap is also supposed to work with RHEL8, where I
seem to see more compile time issues.  Please, check.  I'm happy
to provide a test box for you if interested.

Thanks,
Martin



More information about the Systemtap mailing list