OCaml 5.4.0 released

I have already upgraded to 5.4.0
Not having ocamlformat has broken my makefiles recipies.

opam install ocamlformat
[ERROR] Package conflict!
  * No agreement on the version of ocaml-base-compiler:
    - (invariant) → ocaml-base-compiler >= 5.4.0
    - ocamlformat → ocaml < 5.4 → ocaml-base-compiler < 5.3.1~
    You can temporarily relax the switch invariant with `--update-invariant'
  * Incompatible packages:
    - (invariant) → ocaml-base-compiler >= 5.4.0
    - ocamlformat → ocaml < 4.13 → dkml-base-compiler
  * Incompatible packages:
    - (invariant) → ocaml-base-compiler >= 5.4.0
    - ocamlformat → ocaml < 4.11 → ocaml-variants
  * Missing dependency:
    - ocamlformat → ocaml < 4.11 → ocaml-variants → ocaml-beta
    unmet availability conditions: 'enable-ocaml-beta-repository'
  * Missing dependency:
    - ocamlformat → ocaml < 4.11 → ocaml-variants → system-msvc
    unmet availability conditions: 'os = "win32"'

No solution found, exiting
1 Like

Rejoice! For OCamlFormat 0.28.1 has been released and all of our problems will be a thing of the past. Congrats, and many thanks to the team.

5 Likes

Arigato goziamasu.
I had to do opam update then opam update then opam install ocamlformat

@python-pk Took me a while to get around to it (surprise it wasn’t just a matter of …) but Add FreeBSD frame pointer support by tmcgilchrist · Pull Request #14486 · ocaml/ocaml · GitHub adds fixes for FreeBSD frame pointers on AMD64 and ARM64 plus a short section to the manual on using pmcstat or dtrace. You can test out the changes with a custom trunk compiler using opam compiler create --switch 5.6.0+fp ocaml/ocaml#14486 ./configure-command "./configure --enable-frame-pointers"

1 Like

I wanted to try out eliom for a new side project.
When I tried to install it, I saw it has conflict with the Ocaml 5.4.0 compiler.
The solution is to create a switch, I do not want to do that at least for now.

:~$  opam install eliom
[ERROR] Package conflict!
  * No agreement on the version of ocaml-base-compiler:
    - (invariant) → ocaml-base-compiler >= 5.4.0
    - eliom → ocaml < 5.3.0 → ocaml-base-compiler < 5.2.2~
    You can temporarily relax the switch invariant with `--update-invariant'
  * Incompatible packages:
    - (invariant) → ocaml-base-compiler >= 5.4.0
    - eliom → ocaml < 5.2 → dkml-base-compiler
  * Incompatible packages:
    - (invariant) → ocaml-base-compiler >= 5.4.0
    - eliom → ocaml < 5.2 → ocaml-variants
  * Missing dependency:
    - eliom → ocaml < 5.2 → ocaml-variants → ocaml-beta
    unmet availability conditions: 'enable-ocaml-beta-repository'
  * Missing dependency:
    - eliom → ocaml < 5.2 → ocaml-variants → system-msvc
    unmet availability conditions: 'os = "win32"'
  * Missing dependency:
    - eliom → ocsigenserver < 3.0.0 → pcre → conf-libpcre
    depends on the unavailable system package 'libpcre3-dev'. Use
      `--no-depexts' to attempt installation anyway, or it is possible that a
      depext package name in the opam file is incorrect.

No solution found, exiting

That’s on Eliom, not OCaml 5.4. They merged a fix to remove the < 5.3.0 constraint, but they haven’t released a new version yet.

1 Like

Thanks for the feedback.
I’ll wait it seems

For the time being, eliom.11.1.1 requires ocaml.5.2.0 (“<5.3.0”) (the possible fix is not available).
See opam - eliom
Irrespectively of any other package conflict you may have.

Hello,

About the immutable arrays, do they have some kind of protection at run-time, like they are stored in a read-only memory area or something?

Thanks,

F.

No, this is a type-only property. They use the same runtime representation as regular arrays.