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