Skip to content

[windows] [vscode] RLS won't start due to $OCAMLLIB parse error #319

@bgoscinski

Description

@bgoscinski

@jaredly thanks again for solving #284. Now RLS breaks in different way. How can I help to narrow down the issue? AFAIK @zetashift faces the same problem but we're not sure if it's RLS or esy issue though.

  1. as admin in powershell
git clone https://github.com/esy-ocaml/hello-reason.git
cd ./hello-reason
esy
code . # launch VSCode
  1. In VS Code I get
Invalid response for esy -q sh -c 'echo $OCAMLLIB'

$OCAMLLIB': -c: line 0: unexpected EOF while looking for matching `''
$OCAMLLIB': -c: line 1: syntax error: unexpected end of file
node_modules/.lsp/debug.log
Hello - from c:\Users\ja\.vscode\extensions\jaredly.reason-vscode-1.7.1\bin.native.exe.hot.exe
Previous log location: C:\Users\ja\AppData\Local\Temp\lsp.log
Sending notification {"jsonrpc": "2.0", "method": "client/registerCapability", "params": {"registrations": [{"id": "watching", "method": "workspace/didChangeWatchedFiles", "registerOptions": {"watchers": [{"globPattern": "**/bsconfig.json"}, {"globPattern": "**/.merlin"}]}}]}}
Sending response {"id": 0, "jsonrpc": "2.0", "result": {"capabilities": {"textDocumentSync": 1, "hoverProvider": true, "completionProvider": {"resolveProvider": true, "triggerCharacters": ["."]}, "signatureHelpProvider": {"triggerCharacters": ["("]}, "definitionProvider": true, "typeDefinitionProvider": true, "referencesProvider": true, "documentSymbolProvider": true, "codeActionProvider": true, "executeCommandProvider": {"commands": ["reason-language-server.add_to_interface_inner"]}, "codeLensProvider": {"resolveProvider": true}, "documentHighlightProvider": true, "documentRangeFormattingProvider": true, "documentFormattingProvider": true, "documentFormattingProvider": true, "renameProvider": true}}}
Read message 
{"jsonrpc":"2.0","method":"initialized","params":{}}
Read message 
{"jsonrpc":"2.0","method":"workspace/didChangeConfiguration","params":{"settings":{"reason_language_server":{"location":"","build_system_override_by_root":{},"refmt":"","lispRefmt":"","format_width":80,"per_value_codelens":false,"dependencies_codelens":true,"opens_codelens":true,"show_module_path_on_hover":true,"reloadOnChange":false,"show_debug_errors":false,"autoRebuild":true,"useOldDuneProcess":true}}}}
Read message 
{"jsonrpc":"2.0","method":"textDocument/didOpen","params":{"textDocument":{"uri":"file:///c%3A/Users/ja/dev/hello-reason/lib/Util.re","languageId":"reason","version":1,"text":"let hello = () =>\n  Pastel.(\n    \n       \"Hello\" \n      \", \"\n       \"World\" \n      \"!\"\n    \n  );\n"}}}
Found a `dune` file at C:\Users\ja\dev\hello-reason\lib
]] Making a new jbuilder package at C:\Users\ja\dev\hello-reason\lib
=== Project root: C:\Users\ja\dev\hello-reason
Detected `esy` dependency manager for local use
Get ocaml stdlib dirs
Sending notification {"jsonrpc": "2.0", "method": "window/showMessage", "params": {"type": 1, "message": "Invalid response for esy -q sh -c 'echo $OCAMLLIB'\n\n$OCAMLLIB': -c: line 0: unexpected EOF while looking for matching `''\n$OCAMLLIB': -c: line 1: syntax error: unexpected end of file"}}
Found a `dune` file at C:\Users\ja\dev\hello-reason\lib
]] Making a new jbuilder package at C:\Users\ja\dev\hello-reason\lib
=== Project root: C:\Users\ja\dev\hello-reason
Detected `esy` dependency manager for local use
Get ocaml stdlib dirs
Read message 
{"jsonrpc":"2.0","id":1,"method":"textDocument/documentSymbol","params":{"textDocument":{"uri":"file:///c%3A/Users/ja/dev/hello-reason/lib/Util.re"}}}
[server] Got a method textDocument/documentSymbol
[server] processing took 0.ms
Found a `dune` file at C:\Users\ja\dev\hello-reason\lib
]] Making a new jbuilder package at C:\Users\ja\dev\hello-reason\lib
=== Project root: C:\Users\ja\dev\hello-reason
Detected `esy` dependency manager for local use
Get ocaml stdlib dirs
Sending response {"id": 1, "jsonrpc": "2.0", "error": {"code": -32603, "message": "Invalid response for esy -q sh -c 'echo $OCAMLLIB'\n\n$OCAMLLIB': -c: line 0: unexpected EOF while looking for matching `''\n$OCAMLLIB': -c: line 1: syntax error: unexpected end of file"}}
Read message 
{"jsonrpc":"2.0","id":2,"method":"textDocument/codeAction","params":{"textDocument":{"uri":"file:///c%3A/Users/ja/dev/hello-reason/lib/Util.re"},"range":{"start":{"line":4,"character":9},"end":{"line":4,"character":9}},"context":{"diagnostics":[]}}}
[server] Got a method textDocument/codeAction
[server] processing took 0.ms
Found a `dune` file at C:\Users\ja\dev\hello-reason\lib
]] Making a new jbuilder package at C:\Users\ja\dev\hello-reason\lib
=== Project root: C:\Users\ja\dev\hello-reason
Detected `esy` dependency manager for local use
Get ocaml stdlib dirs
Sending response {"id": 2, "jsonrpc": "2.0", "error": {"code": -32603, "message": "Invalid response for esy -q sh -c 'echo $OCAMLLIB'\n\n$OCAMLLIB': -c: line 0: unexpected EOF while looking for matching `''\n$OCAMLLIB': -c: line 1: syntax error: unexpected end of file"}}
Read message 
{"jsonrpc":"2.0","id":3,"method":"textDocument/codeLens","params":{"textDocument":{"uri":"file:///c%3A/Users/ja/dev/hello-reason/lib/Util.re"}}}
[server] Got a method textDocument/codeLens
[server] processing took 0.ms
Found a `dune` file at C:\Users\ja\dev\hello-reason\lib
]] Making a new jbuilder package at C:\Users\ja\dev\hello-reason\lib
=== Project root: C:\Users\ja\dev\hello-reason
Detected `esy` dependency manager for local use
Get ocaml stdlib dirs
Sending response {"id": 3, "jsonrpc": "2.0", "result": [{"range": {"start": {"line": 0, "character": 0}, "end": {"line": 0, "character": 0}}, "command": {"title": "Unable to load compilation data: Invalid response for esy -q sh -c 'echo $OCAMLLIB'\n\n$OCAMLLIB': -c: line 0: unexpected EOF while looking for matching `''\n$OCAMLLIB': -c: line 1: syntax error: unexpected end of file", "command": ""}}]}
Read message 
{"jsonrpc":"2.0","method":"$/cancelRequest","params":{"id":3}}
Read message 
{"jsonrpc":"2.0","id":4,"method":"textDocument/codeLens","params":{"textDocument":{"uri":"file:///c%3A/Users/ja/dev/hello-reason/lib/Util.re"}}}
[server] Got a method textDocument/codeLens
[server] processing took 0.ms
Found a `dune` file at C:\Users\ja\dev\hello-reason\lib
]] Making a new jbuilder package at C:\Users\ja\dev\hello-reason\lib
=== Project root: C:\Users\ja\dev\hello-reason
Detected `esy` dependency manager for local use
Get ocaml stdlib dirs
Sending response {"id": 4, "jsonrpc": "2.0", "result": [{"range": {"start": {"line": 0, "character": 0}, "end": {"line": 0, "character": 0}}, "command": {"title": "Unable to load compilation data: Invalid response for esy -q sh -c 'echo $OCAMLLIB'\n\n$OCAMLLIB': -c: line 0: unexpected EOF while looking for matching `''\n$OCAMLLIB': -c: line 1: syntax error: unexpected end of file", "command": ""}}]}
Read message 
{"jsonrpc":"2.0","id":5,"method":"textDocument/codeLens","params":{"textDocument":{"uri":"file:///c%3A/Users/ja/dev/hello-reason/lib/Util.re"}}}
[server] Got a method textDocument/codeLens
[server] processing took 0.ms
Found a `dune` file at C:\Users\ja\dev\hello-reason\lib
]] Making a new jbuilder package at C:\Users\ja\dev\hello-reason\lib
=== Project root: C:\Users\ja\dev\hello-reason
Detected `esy` dependency manager for local use
Get ocaml stdlib dirs
Sending response {"id": 5, "jsonrpc": "2.0", "result": [{"range": {"start": {"line": 0, "character": 0}, "end": {"line": 0, "character": 0}}, "command": {"title": "Unable to load compilation data: Invalid response for esy -q sh -c 'echo $OCAMLLIB'\n\n$OCAMLLIB': -c: line 0: unexpected EOF while looking for matching `''\n$OCAMLLIB': -c: line 1: syntax error: unexpected end of file", "command": ""}}]}
Read message 
{"jsonrpc":"2.0","id":6,"method":"textDocument/hover","params":{"textDocument":{"uri":"file:///c%3A/Users/ja/dev/hello-reason/lib/Util.re"},"position":{"line":3,"character":37}}}
[server] Got a method textDocument/hover
[server] processing took 0.ms
Found a `dune` file at C:\Users\ja\dev\hello-reason\lib
]] Making a new jbuilder package at C:\Users\ja\dev\hello-reason\lib
=== Project root: C:\Users\ja\dev\hello-reason
Detected `esy` dependency manager for local use
Get ocaml stdlib dirs
Sending response {"id": 6, "jsonrpc": "2.0", "error": {"code": -32603, "message": "Invalid response for esy -q sh -c 'echo $OCAMLLIB'\n\n$OCAMLLIB': -c: line 0: unexpected EOF while looking for matching `''\n$OCAMLLIB': -c: line 1: syntax error: unexpected end of file"}}
Read message 
{"jsonrpc":"2.0","method":"$/cancelRequest","params":{"id":6}}
Read message 
{"jsonrpc":"2.0","id":7,"method":"textDocument/hover","params":{"textDocument":{"uri":"file:///c%3A/Users/ja/dev/hello-reason/lib/Util.re"},"position":{"line":3,"character":38}}}
[server] Got a method textDocument/hover
[server] processing took 0.ms
Found a `dune` file at C:\Users\ja\dev\hello-reason\lib
]] Making a new jbuilder package at C:\Users\ja\dev\hello-reason\lib
=== Project root: C:\Users\ja\dev\hello-reason
Detected `esy` dependency manager for local use
Get ocaml stdlib dirs
Sending response {"id": 7, "jsonrpc": "2.0", "error": {"code": -32603, "message": "Invalid response for esy -q sh -c 'echo $OCAMLLIB'\n\n$OCAMLLIB': -c: line 0: unexpected EOF while looking for matching `''\n$OCAMLLIB': -c: line 1: syntax error: unexpected end of file"}}
Read message 
{"jsonrpc":"2.0","method":"$/cancelRequest","params":{"id":7}}

When I try to manually run esy -q sh -c 'echo $OCAMLLIB' in

  1. powershell without elevation:
PS C:\Users\ja\dev\hello-reason> esy -q sh -c 'echo $OCAMLLIB'
ERROR: Unable to create symlinks. Missing SeCreateSymbolicLinkPrivilege.

Esy must be ran as an administrator on Windows, because it uses symbolic links.
Open an elevated command shell by right-clicking and selecting 'Run as administrator', and try esy again.

For more info, see https://github.com/esy/esy/issues/389
  1. powershell as admin:
PS C:\Users\ja\dev\hello-reason> esy -q sh -c 'echo $OCAMLLIB'
C:/Users/ja/.esy/3_/i/ocaml-4.6.10-7ba95816/lib/ocaml
  1. bash (from git for windows) (with and without elevation):
$ esy -q sh -c 'echo $OCAMLLIB'
/c/Users/ja/AppData/Roaming/npm/esy: line 1: /node_modules/esy/_build/default/bin/esy.exe: No such file or directory

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions