enso/tools
Hubert Plociniczak 0b58a361ed
Eliminate VCS TimeoutExceptions on startup (#8080)
Having a modest-size files in a project would lead to a timeout when the project was first initialized. This became apparent when testing delivered `.enso-project` files with some data files. After some digging there was a bug in JGit
(https://bugs.eclipse.org/bugs/show_bug.cgi?id=494323) which meant that adding such files was really slow. The implemented fix is not on by default but even with `--renormalization` turned off I did not see improvement.
In the end it didn't make sense to add `data` directory to our version control, or any other files than those in `src` or some meta files in `.enso`. Not including such files eliminates first-use initialization problems.

# Important Notes
To test, pick an existing Enso project with some data files in it (> 100MB) and remove `.enso/.vcs` directory. Previously it would timeout on first try (and work in successive runs). Now it works even on the first try.

The crash:
```
[org.enso.languageserver.requesthandler.vcs.InitVcsHandler] Initialize project request [Number(2)] for [f9a7cd0d-529c-4e1d-a4fa-9dfe2ed79008] failed with: null.
java.util.concurrent.TimeoutException: null
at org.enso.languageserver.effect.ZioExec$.<clinit>(Exec.scala:134)
at org.enso.languageserver.effect.ZioExec.$anonfun$exec$3(Exec.scala:60)
at org.enso.languageserver.effect.ZioExec.$anonfun$exec$3$adapted(Exec.scala:60)
at zio.ZIO.$anonfun$foldCause$4(ZIO.scala:683)
at zio.internal.FiberRuntime.runLoop(FiberRuntime.scala:904)
at zio.internal.FiberRuntime.evaluateEffect(FiberRuntime.scala:381)
at zio.internal.FiberRuntime.evaluateMessageWhileSuspended(FiberRuntime.scala:504)
at zio.internal.FiberRuntime.drainQueueOnCurrentThread(FiberRuntime.scala:220)
at zio.internal.FiberRuntime.run(FiberRuntime.scala:139)
at akka.dispatch.TaskInvocation.run(AbstractDispatcher.scala:49)
at java.base/java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1395)
at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373)
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182)
```
2023-10-18 09:34:08 +00:00
..
build-performance Faster dev builds; tooling for measuring build times and app performance. (#3491) 2022-06-02 19:24:18 +00:00
ci Remove FastR component from Dockerfile. (#7374) 2023-07-24 10:56:30 +02:00
enso4igv Icon and documentation for Enso VSCode extension (#8051) 2023-10-15 04:43:26 +00:00
graphmod Add a markdown style guide (#1022) 2020-07-21 13:59:40 +01:00
language-server Consistent naming of visualization (#7124) 2023-06-26 17:04:35 +00:00
legal-review Eliminate VCS TimeoutExceptions on startup (#8080) 2023-10-18 09:34:08 +00:00
legal-review-helper [Gui2] Opening projects and language server connection (#7813) 2023-09-22 03:43:25 +00:00
native-image-config-cleanup Apply unified prettier style to engine codebase (#3145) 2021-11-08 16:45:29 +01:00
performance [Gui2] Opening projects and language server connection (#7813) 2023-09-22 03:43:25 +00:00
simple-httpbin Improve HTTP tests (#7847) 2023-09-27 14:02:32 +00:00
simple-library-server Enable log-to-file configuration (#7918) 2023-10-02 14:25:09 +02:00
README.md Add a markdown style guide (#1022) 2020-07-21 13:59:40 +01:00

Enso Tools

This folder contains various tools and utilities that aid in the development of the Enso programming language. It should not be used as a dumping ground for things that have better places, but instead is used to hold things that should be part of this repository but do not have another sensible place for them.