[gambit-list] LSP implementation for Gambit
Ricardo G. Herdt
r.herdt at posteo.de
Thu Sep 15 09:58:20 EDT 2022
Hi Marc, thanks for the suggestions.
> When I tried to run the LSP server I hit this error:
>
> > (import (codeberg.org/rgherdt/scheme-lsp-server lsp-server))
> *** ERROR IN
> "../../../.gambit_userlib/codeberg.org/rgherdt/scheme-lsp-server/@/gambit/util.scm"@25.9
> -- Duplicate import of identifier with-exception-handler
Strange, I don't get this exception (tried it with Gambit 4.9.4 and
master). Are you using some flag to start gsi? Anyway, I removed the
dependency on (scheme base) since it was not actually needed in
gambit/util.
>
> Regarding `guard` I looked at the file `gambit.scm` quickly and I
> found:
> [...]
>
> Is there any reason for using `#t` instead of an `else` in the `guard`
> to catch all exceptions?
I had a problem with Guile that 'else' was not recognized. It turns out,
I experienced that because (scheme base) was not included. I replaced
all #t's by else's in guard calls, thx.
> Also, there’s a more direct way in Gambit to get the value of a global
> variable and check if it is undefined:
>
> (let ((val (##global-var-ref (##make-global-var identifier)))))
> (if (##unbound? val) …
Done.
I pushed the changes. Can you please try it again?
BTW, I have a question. Is there some way to trigger compilation during
the install process with `gsi`? Currently I'm doing this with a script
that compiles all modules separately, and then compiles the server. I
also tried to statically build gambit-lsp-server, but didn't figure out
how to do that properly. Not a big deal, but I would like to learn
what's possible in this direction.
Best,
Ricardo
More information about the Gambit-list
mailing list