scala-cli icon indicating copy to clipboard operation
scala-cli copied to clipboard

The option --bloop-bsp-protocol tcp doesn't connect to server

Open vascorsd opened this issue 2 years ago • 4 comments

Version(s) ❯ scala-cli version 0.1.11

OS: linux (archlinux distro) x64

Describe the bug I have a bloop running as a user daemon centrally in the system and expected that scala-cli would connect to it. Instead it always creates its own bloop daemon.

Reading some code and the docs I found some options, the related --bloop-server and --bloop-port and --bloop-bsp-protocol which should help.

When trying the option --bloop-bsp-protocol tcp it doesn't connect to the daemon already running. The only way to actually connect to it is by setting any of the options --bloop-server localhost or --bloop-port 8212

To Reproduce Having a central bloop server running:

❯ systemctl --user status bloop.service
● bloop.service - Bloop Scala build server
     Loaded: loaded (/usr/lib/systemd/user/bloop.service; enabled; preset: enabled)
     Active: active (running) since Tue 2022-08-16 01:01:51 WEST; 10min ago
   Main PID: 9735 (bloop)
      Tasks: 23 (limit: 9194)
     Memory: 211.3M
        CPU: 2.252s
     CGroup: /user.slice/user-1000.slice/[email protected]/app.slice/bloop.service
             ├─9735 /usr/bin/bloop server
             └─9763 /usr/lib/jvm/default/bin/java -Xss4m -XX:MaxInlineLevel=20 -XX:+UseParallelGC -classpath /home/diaz/.cache/coursier/v1/https/repo1.mave>

ago 16 01:01:51 snorlax systemd[1085]: Started Bloop Scala build server.
ago 16 01:01:51 snorlax bloop[9735]: Attempting a connection to the server...
ago 16 01:01:51 snorlax bloop[9735]: Resolving ch.epfl.scala:bloop-frontend_2.12:1.5.3...
ago 16 01:01:51 snorlax bloop[9735]: Starting bloop server at 127.0.0.1:8212...

Then try scala-cli by checking its output logs which match the running processes seen in htop:

❯ scala-cli bloop --bloop-bsp-protocol tcp -v -v -v
Checking for a running Bloop server at /home/diaz/.local/share/scalacli/bloop/daemon ...
Attempting to connect to Bloop server /home/diaz/.local/share/scalacli/bloop/daemon ...
Connection attempt result: None
No running Bloop server found, starting one
Fetching List(Dependency(io.github.alexarchambault.bleep:bloop-frontend_2.12, 1.5.0-sc-1, Configuration(), Set(), Publication(, Type(), Extension(), Classifier()), false, true))
Found 123 artifacts:
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/io/github/alexarchambault/bleep/bloop-frontend_2.12/1.5.0-sc-1/bloop-frontend_2.12-1.5.0-sc-1.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.12.16/scala-library-2.12.16.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/io/github/alexarchambault/bleep/bloop-shared_2.12/1.5.0-sc-1/bloop-shared_2.12-1.5.0-sc-1.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/io/github/alexarchambault/bleep/bloop-backend_2.12/1.5.0-sc-1/bloop-backend_2.12-1.5.0-sc-1.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/io/github/alexarchambault/bleep/bloop-config_2.12/1.5.0-sc-1/bloop-config_2.12-1.5.0-sc-1.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalaz/scalaz-core_2.12/7.2.20/scalaz-core_2.12-7.2.20.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/io/monix/monix_2.12/2.3.3/monix_2.12-2.3.3.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/com/github/alexarchambault/case-app_2.12/2.0.6/case-app_2.12-2.0.6.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/scala-debug-adapter_2.12/2.0.13/scala-debug-adapter_2.12-2.0.13.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/io/github/alexarchambault/libdaemon/libdaemon_2.12/0.0.10/libdaemon_2.12-0.0.10.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/bsp4s_2.12/2.0.0-M13/bsp4s_2.12-2.0.0-M13.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/io/get-coursier/interface/1.0.6/interface-1.0.6.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/zinc_2.12/1.6.0/zinc_2.12-1.6.0.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/org/apache/logging/log4j/log4j-core/2.17.1/log4j-core-2.17.1.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/net/jpountz/lz4/lz4/1.3.0/lz4-1.3.0.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/test-interface/1.0/test-interface-1.0.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/test-agent/1.6.2/test-agent-1.6.2.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/com/googlecode/java-diff-utils/diffutils/1.3.0/diffutils-1.3.0.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/com/lihaoyi/pprint_2.12/0.5.5/pprint_2.12-0.5.5.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/com-microsoft-java-debug-core/0.21.0%2B1-7f1080f1/com-microsoft-java-debug-core-0.21.0%2B1-7f1080f1.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/io/github/alexarchambault/bleep/nailgun-server/1.0.3/nailgun-server-1.0.3.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalaz/scalaz-concurrent_2.12/7.2.20/scalaz-concurrent_2.12-7.2.20.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/librarymanagement-ivy_2.12/1.0.0/librarymanagement-ivy_2.12-1.0.0.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/com/lihaoyi/sourcecode_2.12/0.1.7/sourcecode_2.12-0.1.7.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/ch/epfl/scala/directory-watcher/0.8.0%2B6-f651bd93/directory-watcher-0.8.0%2B6-f651bd93.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/org/zeroturnaround/zt-zip/1.13/zt-zip-1.13.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/io/zipkin/brave/brave/5.6.1/brave-5.6.1.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/io/zipkin/reporter2/zipkin-sender-urlconnection/2.7.15/zipkin-sender-urlconnection-2.7.15.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/org/ow2/asm/asm/9.2/asm-9.2.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/org/ow2/asm/asm-util/9.2/asm-util-9.2.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/com/github/plokhotnyuk/jsoniter-scala/jsoniter-scala-core_2.12/2.4.0/jsoniter-scala-core_2.12-2.4.0.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/io/monix/monix-types_2.12/2.3.3/monix-types_2.12-2.3.3.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/io/monix/monix-execution_2.12/2.3.3/monix-execution_2.12-2.3.3.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/io/monix/monix-eval_2.12/2.3.3/monix-eval_2.12-2.3.3.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/io/monix/monix-reactive_2.12/2.3.3/monix-reactive_2.12-2.3.3.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/com/github/alexarchambault/case-app-annotations_2.12/2.0.6/case-app-annotations_2.12-2.0.6.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/com/github/alexarchambault/case-app-util_2.12/2.0.6/case-app-util_2.12-2.0.6.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/ch/qos/logback/logback-core/1.2.3/logback-core-1.2.3.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/org/slf4j/slf4j-api/1.7.26/slf4j-api-1.7.26.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/io/circe/circe-core_2.12/0.9.3/circe-core_2.12-0.9.3.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/io/circe/circe-derivation_2.12/0.9.0-M4/circe-derivation_2.12-0.9.0-M4.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/lsp4s_2.12/0.2.0/lsp4s_2.12-0.2.0.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/zinc-core_2.12/1.6.0/zinc-core_2.12-1.6.0.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/zinc-persist_2.12/1.6.0/zinc-persist_2.12-1.6.0.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/zinc-compile-core_2.12/1.6.0/zinc-compile-core_2.12-1.6.0.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/zinc-classfile_2.12/1.6.0/zinc-classfile_2.12-1.6.0.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/org/apache/logging/log4j/log4j-api/2.17.1/log4j-api-2.17.1.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/com/lihaoyi/fansi_2.12/0.2.7/fansi_2.12-0.2.7.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/org/apache/commons/commons-lang3/3.6/commons-lang3-3.6.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/com/google/code/gson/gson/2.7/gson-2.7.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/io/reactivex/rxjava2/rxjava/2.1.1/rxjava-2.1.1.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/org/reactivestreams/reactive-streams/1.0.0/reactive-streams-1.0.0.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/commons-io/commons-io/2.5/commons-io-2.5.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/net/java/dev/jna/jna/5.8.0/jna-5.8.0.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/net/java/dev/jna/jna-platform/5.8.0/jna-platform-5.8.0.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalaz/scalaz-effect_2.12/7.2.20/scalaz-effect_2.12-7.2.20.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/librarymanagement-core_2.12/1.0.0/librarymanagement-core_2.12-1.0.0.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/com/eed3si9n/sjson-new-core_2.12/0.9.1/sjson-new-core_2.12-0.9.1.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/ivy/ivy/2.3.0-sbt-a3314352b638afbf0dca19f127e8263ed6f898bd/ivy-2.3.0-sbt-a3314352b638afbf0dca19f127e8263ed6f898bd.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/io/zipkin/zipkin2/zipkin/2.12.1/zipkin-2.12.1.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/io/zipkin/reporter2/zipkin-reporter/2.7.15/zipkin-reporter-2.7.15.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/org/ow2/asm/asm-tree/9.2/asm-tree-9.2.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/org/ow2/asm/asm-analysis/9.2/asm-analysis-9.2.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/org/jctools/jctools-core/2.0.1/jctools-core-2.0.1.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/com/chuusai/shapeless_2.12/2.3.3/shapeless_2.12-2.3.3.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/io/circe/circe-numbers_2.12/0.9.3/circe-numbers_2.12-0.9.3.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/org/typelevel/cats-core_2.12/1.1.0/cats-core_2.12-1.1.0.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/jsonrpc_2.12/0.2.0/jsonrpc_2.12-0.2.0.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/com/beachape/enumeratum_2.12/1.5.13/enumeratum_2.12-1.5.13.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/com/beachape/enumeratum-circe_2.12/1.5.17/enumeratum-circe_2.12-1.5.17.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/zinc-apiinfo_2.12/1.6.0/zinc-apiinfo_2.12-1.6.0.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/zinc-classpath_2.12/1.6.0/zinc-classpath_2.12-1.6.0.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/compiler-interface/1.6.0/compiler-interface-1.6.0.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/zinc-persist-core-assembly/1.6.0/zinc-persist-core-assembly-1.6.0.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/io_2.12/1.6.0/io_2.12-1.6.0.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/util-logging_2.12/1.6.0/util-logging_2.12-1.6.0.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/util-relation_2.12/1.6.0/util-relation_2.12-1.6.0.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/sbinary_2.12/0.5.1/sbinary_2.12-0.5.1.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/launcher-interface/1.1.3/launcher-interface-1.1.3.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/modules/scala-parser-combinators_2.12/1.1.2/scala-parser-combinators_2.12-1.1.2.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/net/openhft/zero-allocation-hashing/0.10.1/zero-allocation-hashing-0.10.1.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/util-control_2.12/1.6.0/util-control_2.12-1.6.0.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-compiler/2.12.16/scala-compiler-2.12.16.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/com/jcraft/jsch/0.1.46/jsch-0.1.46.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-reflect/2.12.16/scala-reflect-2.12.16.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/com/eed3si9n/gigahorse-okhttp_2.12/0.3.0/gigahorse-okhttp_2.12-0.3.0.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/com/squareup/okhttp3/okhttp-urlconnection/3.7.0/okhttp-urlconnection-3.7.0.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/modules/scala-xml_2.12/1.0.6/scala-xml_2.12-1.0.6.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/util-position_2.12/1.6.0/util-position_2.12-1.6.0.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/util-cache_2.12/1.0.0/util-cache_2.12-1.0.0.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/org/typelevel/macro-compat_2.12/1.1.1/macro-compat_2.12-1.1.1.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/org/typelevel/cats-macros_2.12/1.1.0/cats-macros_2.12-1.1.0.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/org/typelevel/cats-kernel_2.12/1.1.0/cats-kernel_2.12-1.1.0.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/org/typelevel/machinist_2.12/0.6.2/machinist_2.12-0.6.2.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/com/outr/scribe_2.12/2.5.0/scribe_2.12-2.5.0.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/io/circe/circe-parser_2.12/0.9.3/circe-parser_2.12-0.9.3.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/com/beachape/enumeratum-macros_2.12/1.5.9/enumeratum-macros_2.12-1.5.9.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/compiler-bridge_2.12/1.6.0/compiler-bridge_2.12-1.6.0.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/util-interface/1.6.0/util-interface-1.6.0.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/com/swoval/file-tree-views/2.1.7/file-tree-views-2.1.7.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/collections_2.12/1.6.0/collections_2.12-1.6.0.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/core-macros_2.12/1.6.0/core-macros_2.12-1.6.0.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/jline/jline/2.14.7-sbt-a1b0ffbb8f64bb820f4f84a0c07a0c0964507493/jline-2.14.7-sbt-a1b0ffbb8f64bb820f4f84a0c07a0c0964507493.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/org/jline/jline-terminal/3.19.0/jline-terminal-3.19.0.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/org/jline/jline-terminal-jna/3.19.0/jline-terminal-jna-3.19.0.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/org/jline/jline-terminal-jansi/3.19.0/jline-terminal-jansi-3.19.0.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/com/lmax/disruptor/3.4.2/disruptor-3.4.2.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/com/eed3si9n/sjson-new-scalajson_2.12/0.9.1/sjson-new-scalajson_2.12-0.9.1.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/com/eed3si9n/gigahorse-core_2.12/0.3.0/gigahorse-core_2.12-0.3.0.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/com/squareup/okhttp3/okhttp/3.7.0/okhttp-3.7.0.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/com/eed3si9n/sjson-new-murmurhash_2.12/0.8.0/sjson-new-murmurhash_2.12-0.8.0.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/com/outr/scribe-macros_2.12/2.5.0/scribe-macros_2.12-2.5.0.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/com/outr/perfolation_2.12/1.0.2/perfolation_2.12-1.0.2.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/io/circe/circe-jawn_2.12/0.9.3/circe-jawn_2.12-0.9.3.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/org/fusesource/jansi/jansi/2.1.0/jansi-2.1.0.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/com/eed3si9n/shaded-jawn-parser_2.12/0.9.1/shaded-jawn-parser_2.12-0.9.1.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/com/eed3si9n/shaded-scalajson_2.12/1.0.0-M4/shaded-scalajson_2.12-1.0.0-M4.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/com/typesafe/ssl-config-core_2.12/0.2.2/ssl-config-core_2.12-0.2.2.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/com/squareup/okio/okio/1.12.0/okio-1.12.0.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/com/outr/perfolation-macros_2.12/1.0.2/perfolation-macros_2.12-1.0.2.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/org/spire-math/jawn-parser_2.12/0.11.1/jawn-parser_2.12-0.11.1.jar
  /home/diaz/.cache/coursier/v1/https/repo1.maven.org/maven2/com/typesafe/config/1.2.0/config-1.2.0.jar

Checking for a running Bloop server at /home/diaz/.local/share/scalacli/bloop/daemon ...
Attempting to connect to Bloop server /home/diaz/.local/share/scalacli/bloop/daemon ...
Connection attempt result: None
Checking for a running Bloop server at /home/diaz/.local/share/scalacli/bloop/daemon ...
Attempting to connect to Bloop server /home/diaz/.local/share/scalacli/bloop/daemon ...
Connection attempt result: None
Checking for a running Bloop server at /home/diaz/.local/share/scalacli/bloop/daemon ...
Attempting to connect to Bloop server /home/diaz/.local/share/scalacli/bloop/daemon ...
Connection attempt result: None
Checking for a running Bloop server at /home/diaz/.local/share/scalacli/bloop/daemon ...
Attempting to connect to Bloop server /home/diaz/.local/share/scalacli/bloop/daemon ...
Connection attempt result: None
Checking for a running Bloop server at /home/diaz/.local/share/scalacli/bloop/daemon ...
Attempting to connect to Bloop server /home/diaz/.local/share/scalacli/bloop/daemon ...
Connection attempt result: None
Bloop server PID: 10840
Ignoring SIGINT
Will truncate output file /home/diaz/.local/share/scalacli/bloop/daemon/output every 5 minutes
Checking for a running Bloop server at /home/diaz/.local/share/scalacli/bloop/daemon ...
Attempting to connect to Bloop server /home/diaz/.local/share/scalacli/bloop/daemon ...
Connection attempt result: None
Checking for a running Bloop server at /home/diaz/.local/share/scalacli/bloop/daemon ...
Attempting to connect to Bloop server /home/diaz/.local/share/scalacli/bloop/daemon ...
Connection attempt result: None
Checking for a running Bloop server at /home/diaz/.local/share/scalacli/bloop/daemon ...
Attempting to connect to Bloop server /home/diaz/.local/share/scalacli/bloop/daemon ...
Connection attempt result: Some(Right(java.nio.channels.SocketChannel[connected local= remote=/home/diaz/.local/share/scalacli/bloop/daemon/socket]))
Bloop server started.
Bloop server is running.

~/dev/personal/archlinux/packages/test-stuff-2 [ master · github][?] 
❯ Unable to load nailgun-version.properties.
NGServer [UNKNOWN] started on local socket /home/diaz/.local/share/scalacli/bloop/daemon/socket.

Confirming the option is correct by doing:

scala-cli bloop --bloop-bsp-protocol stuff -v -v -v
Exception in thread "main" java.lang.RuntimeException: Invalid bloop BSP protocol value: 'stuff' (expected 'tcp', 'local', or 'default')
        at scala.sys.package$.error(package.scala:27)

Checking that the other options actually connect to the daemon:

❯ scala-cli bloop --bloop-port 8212 -v -v -v
Checking for a running Bloop server at 127.0.0.1:8212 ...
Attempting to connect to Bloop server 127.0.0.1:8212 ...
Connection attempt result: true
Found running Bloop server
Bloop server is running.
Checking for a running Bloop server at localhost:8212 ...
Attempting to connect to Bloop server localhost:8212 ...
Connection attempt result: true
Found running Bloop server
Bloop server is running.

Expected behaviour I would expect that by issuing the command scala-cli bloop --bloop-bsp-protocol tcp would connect to the already running bloop server at localhost:8212 as these are the defaults already in the code.

Maybe I would expect to be able to configure scala-cli to never try to launch an independent daemon and always try to connect to one existing by tcp and if couldn't just abort. But I guess that's a wish list point for another time.

vascorsd avatar Aug 16 '22 00:08 vascorsd

@vascorsd what is the version of the bloop instance you are running and attempting to connect to?

Scala CLI is relying on a custom fork of bloop, which is using a different version of nailgun.

If you are running a different version, this would potentially explain this part of the logs you provided:

❯ Unable to load nailgun-version.properties.
NGServer [UNKNOWN] started on local socket /home/diaz/.local/share/scalacli/bloop/daemon/socket.

If I'm not mistaken, the bloop sub-command is meant for debugging Scala CLI build-related stuff. It's a recent addition and it should be treated as experimental. Still, we might want to add some documentation for it. cc @alexarchambault

Gedochao avatar Aug 17 '22 08:08 Gedochao

Thanks for looking into it.

I was not aware of the custom fork of bloop.

The current version of the daemon I have runnings reports:

> bloop about
bloop v1.5.3

Using Scala v2.12.15 and Zinc v1.6.0
Running on Java JDK v18.0.2 (/usr/lib/jvm/java-18-openjdk)
  -> Supports debugging user code, Java Debug Interface (JDI) is available.
Maintained by the Scala Center and the community.

vascorsd avatar Aug 17 '22 10:08 vascorsd

To add to @Gedochao's comment, Scala CLI uses a fork of Bloop as it connects to it using a named socket (so a socket file on disk, basically) rather than TCP. The Bloop fork should be folded back into Bloop mainline at some point (and Metals would connect to it via a named socket too), so that Scala CLI and Metals would use the same Bloop server again.

alexarchambault avatar Aug 17 '22 13:08 alexarchambault

That said, I agree that --bloop-bsp-protocol tcp should make Scala CLI use the current default (TCP) Bloop server. I'm not sure why it doesn't. That's probably a bug or an oversight.

alexarchambault avatar Aug 17 '22 13:08 alexarchambault

This would need some work on the Bloop's side, @tgodzik is working on it

MaciejG604 avatar Aug 30 '23 09:08 MaciejG604