Hello everyone!
I’m new here and would like to start by thanking all the contributors for putting Haxe together. I really like the language and the concepts behind it.
I’m successfully using haxe from linuxbrew right now, but I’d like to build it from source as a little learning exercise. I have zero OCaml experience though.
Using the build instructions [1] and an old forum thread [2], I managed to get semi-far, but I’m stuck at the stage where it compiles haxelib from the extra/haxelib_src
subdir of the main haxe repo.
Hopefully, all I require here is a pointer about which is the best commit of haxelib to use when building haxe 4.2.5.
The 4.2.5 tag of the haxe repo from Mar-6 '22 seems to have haxelib_src linked to haxelib_src @ 4b27f91
, which seems to be the 4.0.2 tag of haxelib from Nov '19.
Is this the best commit of haxelib to use when making a fresh build of haxe+haxelib now, when one is going for a setup that’s as stable as possible?
If I use that, my build fails with
dune build --workspace dune-workspace.dev src-prebuild/prebuild.exe
_build/default/src-prebuild/prebuild.exe libparams -cclib -lpcre -cclib -lz -cclib -lmbedtls -cclib -lmbedx509 -cclib -lmbedcrypto > lib.sexp
_build/default/src-prebuild/prebuild.exe version "0" "" "" > src/compiler/version.ml
dune build --workspace dune-workspace.dev src/haxe.exe
cp -f _build/default/src/haxe.exe ./"haxe"
(cd /tmp/haxe/haxe-4.2.5/extra/haxelib_src && /tmp/haxe/haxe-4.2.5/haxe client.hxml && nekotools boot run.n)
Type not found : haxe.remoting.Connection
make: *** [Makefile:105: haxelib] Error 1
If I use the most recent commit, it fails with
dune build --workspace dune-workspace.dev src-prebuild/prebuild.exe
_build/default/src-prebuild/prebuild.exe libparams -cclib -lpcre -cclib -lz -cclib -lmbedtls -cclib -lmbedx509 -cclib -lmbedcrypto > lib.sexp
_build/default/src-prebuild/prebuild.exe version "0" "" "" > src/compiler/version.ml
dune build --workspace dune-workspace.dev src/haxe.exe
cp -f _build/default/src/haxe.exe ./"haxe"
(cd /tmp/haxe/haxe-4.2.5/extra/haxelib_src && /tmp/haxe/haxe-4.2.5/haxe client.hxml && nekotools boot run.n)
src/haxelib/api/Installer.hx:329: characters 22-23 : Unexpected ?
make: *** [Makefile:105: haxelib] Error 1
This is also the symptom I get when I try to compile with the a18b403e8d commit that it’s currently pinned to from Apr-21.
If I try to compile the most recent commit of haxe, it doesn’t even get as far as having a working haxe build and trying to build haxelib. It instead fails with this symptom:
File "src/macro/eval/evalLuv.ml", line 95, characters 3-13:
95 | | `EOVERFLOW -> 78
^^^^^^^^^^
Error: This pattern matches values of type [? `EOVERFLOW ]
but a pattern was expected which matches values of type Luv.Error.t
The second variant type does not allow tag(s) `EOVERFLOW
make: *** [Makefile:77: haxe] Error 1
How should I proceed?
Many thanks in advance,
Leo
[1] haxe/BUILDING.md at development · HaxeFoundation/haxe · GitHub
[2] Opam switch?
P.S. I also have a pointer that may be useful to future readers trying to build haxe from source: I’m on Gentoo and had to install the following prerequisites which weren’t on my system by default: dev-perl/String-ShellQuote
, dev-perl/IPC-System-Simple
, net-libs/mbedtls
, dev-ml/opam
.
When building neko, I had to run cmake with -DWITH_UI=OFF -DWITH_MYSQL=OFF -DWITH_APACHE=OFF -DWITH_SSL=OFF
.