mbox

[bug#45498,00/12] Add ocaml-merlin.

Message ID 20201228124017.24295-1-pukkamustard@posteo.net
Headers show

Message

pukkamustard Dec. 28, 2020, 12:40 p.m. UTC
Hi Guix,

This adds ocaml-merlin, a development tool for OCaml (and dependencies).

Some notes and questions:

- ocaml4.07-merlin is already available (version 3.2.2). This version has not
  been updated (but changed to inherit from ocaml-merlin).

- There are many ocaml4.07-* packages in Guix. The reason for this is that
  some packages need to be built with OCaml 4.07 but some newer versions of
  libraries do no longer support OCaml 4.07 (or the old version of dune),
  requiring older versions of the same packages. See also commit message
  9ada1555.

  This is quite cumbersome as two trees of OCaml packages need to be
  maintained.

  A nice solution would be to upgrade packages requiring OCaml 4.07 to also
  build with the default OCaml (4.11). Packages that are not dependencies of
  other packages that require OCaml 4.07 seem to be: `bap`, `ocaml-earley` and
  `pplacer`. Maybe this should be opened as an issue?

- Some OCaml libraries have dependencies in `inputs` that seem to be required
  from packages using the libraries.  E.g. `ocaml-yojson` depends on
  `ocaml-biniou`. Packages depending on `ocaml-yojson` need to manually add
  `ocaml-biniou` to their inputs. Would it work/make sense to add
  `ocaml-biniou` to `propagated-inputs` of `ocaml-yojson`?

- Test for ocaml-merlin (version 3.4.2) work. This resolves issue #34412
  (alltough ocaml4.07-merlin still can not run tests).

Thanks!
-pukkamustard

pukkamustard (12):
  gnu: Remove ocaml-js-build-tools.
  gnu: Add ocaml-sexplib.
  gnu: Add ocaml-base.
  gnu: Add ocaml-parsexp.
  gnu: Add ocaml-sexplib.
  gnu: Add ocaml-ounit2.
  gnu: ocaml-tyxml: Update to 4.4.0.
  gnu: ocaml-markup: Update to 1.0.0.
  gnu: Add ocaml-odoc.
  gnu: Add ocaml-version.
  gnu: Add ocaml-mdx.
  gnu: Add ocaml-merlin.

 gnu/packages/ocaml.scm | 527 ++++++++++++++++++++++++++++-------------
 1 file changed, 359 insertions(+), 168 deletions(-)

Comments

Julien Lepiller Dec. 28, 2020, 2:06 p.m. UTC | #1
Le Mon, 28 Dec 2020 13:40:17 +0100,
pukkamustard <pukkamustard@posteo.net> a écrit :

> Hi Guix,
> 
> This adds ocaml-merlin, a development tool for OCaml (and
> dependencies).

Thanks for the patches!

> 
> Some notes and questions:
> 
> - ocaml4.07-merlin is already available (version 3.2.2). This version
> has not been updated (but changed to inherit from ocaml-merlin).
> 
> - There are many ocaml4.07-* packages in Guix. The reason for this is
> that some packages need to be built with OCaml 4.07 but some newer
> versions of libraries do no longer support OCaml 4.07 (or the old
> version of dune), requiring older versions of the same packages. See
> also commit message 9ada1555.

Have you tried updating dune to the latest version that builds with
ocaml 4.07?

> 
>   This is quite cumbersome as two trees of OCaml packages need to be
>   maintained.

Actually 3, there are ocaml 4.07, 4.09 and 4.11 currently. I'm working
on a bootstrap for ocaml 4.07 (ocaml builds from a binary version of
itself), so I don't think it'll disappear soon, but at least we can try
and make ocaml4.07-* packages disappear :)

> 
>   A nice solution would be to upgrade packages requiring OCaml 4.07
> to also build with the default OCaml (4.11). Packages that are not
> dependencies of other packages that require OCaml 4.07 seem to be:
> `bap`, `ocaml-earley` and `pplacer`. Maybe this should be opened as
> an issue?

pretty sure they build with at least ocaml-4.09 now, I'll see what I
can do :)

> 
> - Some OCaml libraries have dependencies in `inputs` that seem to be
> required from packages using the libraries.  E.g. `ocaml-yojson`
> depends on `ocaml-biniou`. Packages depending on `ocaml-yojson` need
> to manually add `ocaml-biniou` to their inputs. Would it work/make
> sense to add `ocaml-biniou` to `propagated-inputs` of `ocaml-yojson`?

Yeah, could you provide an additional patch for that?

> 
> - Test for ocaml-merlin (version 3.4.2) work. This resolves issue
> #34412 (alltough ocaml4.07-merlin still can not run tests).
> 
> Thanks!
> -pukkamustard

Thank you! I've sent some remarks to your patches, but generally LGTM :)

> 
> pukkamustard (12):
>   gnu: Remove ocaml-js-build-tools.
>   gnu: Add ocaml-sexplib.
>   gnu: Add ocaml-base.
>   gnu: Add ocaml-parsexp.
>   gnu: Add ocaml-sexplib.
>   gnu: Add ocaml-ounit2.
>   gnu: ocaml-tyxml: Update to 4.4.0.
>   gnu: ocaml-markup: Update to 1.0.0.
>   gnu: Add ocaml-odoc.
>   gnu: Add ocaml-version.
>   gnu: Add ocaml-mdx.
>   gnu: Add ocaml-merlin.
> 
>  gnu/packages/ocaml.scm | 527
> ++++++++++++++++++++++++++++------------- 1 file changed, 359
> insertions(+), 168 deletions(-)
>
Julien Lepiller Dec. 30, 2020, 1:29 p.m. UTC | #2
Pushed as 77ca156ab2b3a89b2e15d9de4912ad8e022c2c78 to
8b036927a45fb2c1428badabdc3dc0d9d51f7f25 to master, thank you!