hackwaly / vscode-ocaml-debugger

OCaml debugger for VS Code
14 stars 4 forks source link

installation of earlybird fails on Windows 7 x64 bit #14

Closed PavelKotov1 closed 4 years ago

PavelKotov1 commented 4 years ago

Hello, dear friends! Please help me in my quest: learn how to debug ocaml code in Visual Code Since the prerequisite for OcamlDebugger is earlybird, i tried to install it first. opam install earlybird fails with those results: Error report <><><><><><><><><><><><><><><><><><><><><><><><><><><> +- The following actions failed | - build cmdliner 1.0.4 | - build dune 2.4.0 | - build ocamlbuild 0.14.0 | - build ocamlfind 1.8.1

<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><> Processing 3/60: [cmdliner: make all] [dune: ocaml bootstrap.ml] [ocamlbuild: pProcessing 4/60: [cmdliner: make all] [dune: ocaml bootstrap.ml] [ocamlbuild: pProcessing 4/60: [cmdliner: make all] [dune: ocaml bootstrap.ml] [ocamlbuild: m[ERROR] The compilation of cmdliner failed at "D:\cygwin64\home\root\OCaml64\bin\make.exe all PREFIX=D:/cygwin64/home/root/OCaml64/home/root/.opam/ocaml-variants.4.08.0+mingw64c". Processing 4/60: [dune: ocaml bootstrap.ml] [ocamlbuild: make configure.make] [Processing 5/60: [dune: ocaml bootstrap.ml] [ocamlbuild: make configure.make] [Processing 5/60: [dune: ocaml bootstrap.ml] [ocamlbuild: make all] [ocamlfind: Processing 5/60: [dune: ocaml bootstrap.ml] [ocamlbuild: make all] [ocamlfind: [ERROR] The compilation of dune failed at "D:\cygwin64\home\root\OCaml64\home\root\.opam\ocaml-variants.4.08.0+mingw64c\bin\ocaml.exe bootstrap.ml -j 7". [ERROR] The compilation of ocamlbuild failed at "D:\cygwin64\home\root\OCaml64\bin\make.exe all". [ERROR] The compilation of ocamlfind failed at "D:\cygwin64\home\root\OCaml64\bin\make.exe opt".

=== ERROR while compiling ocamlfind.1.8.1 ====================================

context 2.0.5 | win32/x86_64 | ocaml-variants.4.07.1+msvc64c | git+https://github.com/fdopen/opam-repository-mingw.git#opam2

path ~/.opam/ocaml-variants.4.08.0+mingw64c/.opam-switch/build/ocamlfind.1.8.1

command D:\cygwin64\home\root\OCaml64\bin\make.exe opt

exit-code 2

env-file ~/.opam/log/ocamlfind-12224-e1320e.env

output-file ~/.opam/log/ocamlfind-12224-e1320e.out

output

for p in findlib; do ( cd src/$p; /usr/bin/make opt ) || exit; done

make[1]: Entering directory '/home/root/.opam/ocaml-variants.4.08.0+mingw64c/.opam-switch/build/ocamlfind.1.8.1/src/findlib'

ocamlopt -I +compiler-libs -g -opaque -c findlib_config.ml

'ml64' is not recognized as an internal or external command,

operable program or batch file.

File "findlib_config.ml", line 1:

Error: Assembler error, input left in file D:\cygwin64\home\root\OCaml64\tmp\camlasmb6bc70.asm

make[1]: *** [Makefile:163: findlib_config.cmx] Error 2

make[1]: Leaving directory '/home/root/.opam/ocaml-variants.4.08.0+mingw64c/.opam-switch/build/ocamlfind.1.8.1/src/findlib'

make: *** [Makefile:17: opt] Error 2

=== ERROR while compiling ocamlbuild.0.14.0 ==================================

context 2.0.5 | win32/x86_64 | ocaml-variants.4.07.1+msvc64c | git+https://github.com/fdopen/opam-repository-mingw.git#opam2

path ~/.opam/ocaml-variants.4.08.0+mingw64c/.opam-switch/build/ocamlbuild.0.14.0

command D:\cygwin64\home\root\OCaml64\bin\make.exe all

exit-code 2

env-file ~/.opam/log/ocamlbuild-12224-2f17b7.env

output-file ~/.opam/log/ocamlbuild-12224-2f17b7.out

output

[...]

ocamlc.opt -w L -w R -w Z -I src -I +unix -safe-string -bin-annot -strict-sequence -c src/ocamlbuild_unix_plugin.mli

ocamlc.opt -w L -w R -w Z -I src -I +unix -safe-string -bin-annot -strict-sequence -c src/ocamlbuild_unix_plugin.ml

ocamlc.opt -w L -w R -w Z -I src -I +unix -safe-string -bin-annot -strict-sequence -c src/ocamlbuild.mli

ocamlc.opt -w L -w R -w Z -I src -I +unix -safe-string -bin-annot -strict-sequence -c src/ocamlbuild.ml

ocamlc.opt -I +unix -I src -o ocamlbuild.byte unix.cma src/ocamlbuild_pack.cmo src/ocamlbuild_plugin.cmo src/ocamlbuild_executor.cmo src/ocamlbuild_unix_plugin.cmo src/ocamlbuild.cmo

ocamlc.opt -a -o src/ocamlbuildlib.cma src/ocamlbuild_pack.cmo src/ocamlbuild_plugin.cmo src/ocamlbuild_executor.cmo src/ocamlbuild_unix_plugin.cmo

ocamlopt.opt -for-pack Ocamlbuild_pack -w L -w R -w Z -I src -I +unix -safe-string -bin-annot -strict-sequence -c src/const.ml

'ml64' is not recognized as an internal or external command,

operable program or batch file.

File "src/const.ml", line 1:

Error: Assembler error, input left in file D:\cygwin64\home\root\OCaml64\tmp\camlasmf43957.asm

make: *** [Makefile:428: src/const.cmx] Error 2

=== ERROR while compiling dune.2.4.0 =========================================

context 2.0.5 | win32/x86_64 | ocaml-variants.4.07.1+msvc64c | git+https://github.com/fdopen/opam-repository-mingw.git#opam2

path ~/.opam/ocaml-variants.4.08.0+mingw64c/.opam-switch/build/dune.2.4.0

command D:\cygwin64\home\root\OCaml64\home\root.opam\ocaml-variants.4.08.0+mingw64c\bin\ocaml.exe bootstrap.ml -j 7

exit-code 2

env-file ~/.opam/log/dune-12224-aa4a43.env

output-file ~/.opam/log/dune-12224-aa4a43.out

output

ocamlc -custom -w -24 -g -o .duneboot.exe -I boot unix.cma boot/libs.ml boot/duneboot.ml

camlprim6a49ef.c

** Fatal error: Cannot find file "ws2_32.lib"

File "boot/duneboot.ml", line 1:

Error: Error while building custom runtime system

=== ERROR while compiling cmdliner.1.0.4 =====================================

context 2.0.5 | win32/x86_64 | ocaml-variants.4.07.1+msvc64c | git+https://github.com/fdopen/opam-repository-mingw.git#opam2

path ~/.opam/ocaml-variants.4.08.0+mingw64c/.opam-switch/build/cmdliner.1.0.4

command D:\cygwin64\home\root\OCaml64\bin\make.exe all PREFIX=D:/cygwin64/home/root/OCaml64/home/root/.opam/ocaml-variants.4.08.0+mingw64c

exit-code 2

env-file ~/.opam/log/cmdliner-12224-bb845d.env

output-file ~/.opam/log/cmdliner-12224-bb845d.out

output

ocaml build.ml cma

ocaml build.ml cmxa

'ml64' is not recognized as an internal or external command,

operable program or batch file.

File "cmdliner_trie.ml", line 1:

Error: Assembler error, input left in file D:\cygwin64\home\root\OCaml64\tmp\camlasm7ac9ce.asm

exited with 2: "ocamlopt.opt" "-g" "-bin-annot" "-safe-string" "cmdliner.mli" "cmdliner_base.mli" "cmdliner_manpage.mli" "cmdliner_suggest.mli" "cmdliner_trie.mli" "cmdliner_trie.ml" "cmdliner_suggest.ml" "cmdliner_info.mli" "cmdliner_docgen.mli" "cmdliner_cline.mli" "cmdliner_base.ml" "cmdliner_manpage.ml" "cmdliner_msg.mli" "cmdliner_term.mli" "cmdliner_info.ml" "cmdliner_docgen.ml" "cmdlin[...]

make: *** [Makefile:53: build-native] Error 1

I can be wrong, but it looks like the root of all evils is : ** Fatal error: Cannot find file "ws2_32.lib" Visual Code info: Version: 1.43.0 (system setup) Commit: 78a4c91400152c0f27ba4d363eb56d2835f9903a Date: 2020-03-09T19:47:57.235Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 6.1.7601

hackwaly commented 4 years ago

Sorry, I can't help you for that. Can you install other library as expect?

hackwaly commented 4 years ago

@PavelKotov1 Have you solved your problem?

PavelKotov1 commented 4 years ago

not yet... but I am trying to.

PavelKotov1 commented 4 years ago

OK, somehow everything worked just fine on Windows 10 x64. So whatever it takes, the matter is closed! Thanks for the great tool!

PavelKotov1 commented 4 years ago

Ok, I have to reopen the case, due to some unexpected behavior of the debugger. Looks like earlybird is installed, [NOTE] Package earlybird is already installed (current version is 0.1.4). but VS code cannot see it and reacts with "no debug adapter" message when I press F5. Debugging icons appear on the tool bar and disappear in about 5 seconds. If I try to use ocamldebug on my a.out file produced by ocamlc -g, outside of the Visual Code IDE, it works fine, but the idea is to be able to step through the code in graphic UI. I use VS code 1.43 on Windows 10 x64, and have Cygwin bash running in my terminal. I also have Ocaml Debugger and Ocaml and Reason IDE extensions installed. Can their potential conflict cause the problem? Your help will be greatly appreciated!

PavelKotov1 commented 4 years ago

I think I have found the answer, could be useful to others, who is strugliing like me: if you’ve already got a working OCaml environment on Windows, including OPAM and Merlin (probably a Cygwin environment), you just need to make sure you open up VSCode from that Cygwin shell where the OPAM environment settings are defined. Then VSCode and the OCaml extension should pick up your Merlin setup. So, I guess, the case is closed!