unofficial mirror of help-guix@gnu.org 
 help / color / mirror / Atom feed
From: Julien Lepiller <julien@lepiller.eu>
To: help-guix@gnu.org, Zelphir Kaltstahl <zelphirkaltstahl@posteo.de>
Cc: help-guix <help-guix@gnu.org>
Subject: Re: OCaml package `ocaml-zarith` not working / Guix installed `ocamlc` not picking up installed libraries (addendum 1)
Date: Mon, 30 Dec 2024 20:33:48 +0100	[thread overview]
Message-ID: <5C5E5640-35C0-43CD-8D29-1EB168E8DF30@lepiller.eu> (raw)
In-Reply-To: <ecb59046-4095-47b8-b854-8fa0c48b3973@posteo.de>

That might be a mismatch between ocaml (latest version is ocaml 5) and tge libraries which are currently built with ocaml4. If you try the same with ocaml@4, does it work?

Le 30 décembre 2024 18:53:06 GMT+01:00, Zelphir Kaltstahl <zelphirkaltstahl@posteo.de> a écrit :
>On 30.12.24 18:50, Zelphir Kaltstahl wrote:
>> 
>> Hello Guix users,
>> 
>> I am facing a problem trying to use Guix to install Ocaml packages.
>> 
>> I was implementing a simple recursive factorial function, as part of learning the language, and tested what would happen, if I calculated factorial of 100 ... Result: 0. "Ah!" I thought, "all I need to do is get that Zarith package I have been reading about before, and import that in my code!". So I added it to my manifest.scm file, which I use for a `guix shell`, and expected the Ocaml compiler to naturally pick up packages installed via guix, since the Ocaml compiler ocamlc is also installed using guix. However, it seems this is dysfunctional currently and ocamlc does not realize that the library is in fact installed. I am not sure where it is looking for libraries.
>> 
>> Here is how to reproduce:
>> 
>> ~~~~guix-env/channels.scm~~~~
>> (list (channel
>>          (name 'guix)
>>          (url"https://git.savannah.gnu.org/git/guix.git")
>>          (branch "master")
>>          (commit
>>            "4473f8ae902c2192cab6919363a9101ce9861e45")
>>          (introduction
>>            (make-channel-introduction
>>              "9edb3f66fd807b096b48283debdcddccfea34bad"
>>              (openpgp-fingerprint
>>                "BBB0 2DDF 2CEA F6A8 0D1D  E643 A2A0 6DF2 A33A 54FA")))))
>> ~~~~
>> 
>> ~~~~guix-env/manifest.scm~~~~
>> (specifications->manifest
>>   '("ocaml"
>>     "ocaml-utop"
>>     "dune"
>>     ;; "opam"  ; using guix to install packages, should not need opam
>>     "bash"
>>     "ocaml-zarith"))
>> ~~~~
>> 
>> ~~~~main.ml~~~~
>> open Z
>> 
>> let factorial n =
>>    let rec iter n =
>>      if n < (of_int 2)
>>      then of_int 1
>>      else mul n (iter (sub n (of_int 1)))
>>    in
>>      iter (of_int n)
>> 
>> 
>> let _ = 5 |> factorial |> to_string |> print_endline
>> let _ = 100 |> factorial |> to_string |> print_endline
>> ~~~~
>> 
>> ~~~~command~~~~
>> guix time-machine --channels=guix-env/channels.scm -- shell --check --manifest=guix-env/manifest.scm -- bash -c 'ocamlc -c main.ml -o main.byte'
>> 
>> guix shell: checking the environment variables visible from shell '/bin/bash'...
>> guix shell: All is good!  The shell gets correct environment variables.
>> File "main.ml", line 1, characters 5-6:
>> 1 | open Z
>>           ^
>> Error: Unbound module Z
>> ~~~~
>
>I would also like to add, that utop _does_ pick up the library and that in utop I can:
>
>~~~~in utop~~~~
>#require "zarith";;
>~~~~
>
>And work with its functions.
>
>So this really seems to be about ocamlc.
>


  reply	other threads:[~2024-12-30 19:34 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-12-30 17:50 OCaml package `ocaml-zarith` not working / Guix installed `ocamlc` not picking up installed libraries Zelphir Kaltstahl
2024-12-30 17:53 ` OCaml package `ocaml-zarith` not working / Guix installed `ocamlc` not picking up installed libraries (addendum 1) Zelphir Kaltstahl
2024-12-30 19:33   ` Julien Lepiller [this message]
2024-12-30 19:53     ` OCaml package `ocaml-zarith` not working / Guix installed `ocamlc` not picking up installed libraries Zelphir Kaltstahl
2024-12-31 14:02   ` OCaml package `ocaml-zarith` not working / Guix installed `ocamlc` not picking up installed libraries (addendum 2 - using guix profiles) Zelphir Kaltstahl
2024-12-31 14:06 ` OCaml package `ocaml-zarith` not working / Guix installed `ocamlc` not picking up installed libraries (addendum 3 - comparison with guile) Zelphir Kaltstahl
2024-12-31 14:57   ` Julien Lepiller
2025-01-02  1:18     ` Zelphir Kaltstahl
2025-01-02  7:44       ` Julien Lepiller
2025-01-02 13:35         ` Zelphir Kaltstahl

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5C5E5640-35C0-43CD-8D29-1EB168E8DF30@lepiller.eu \
    --to=julien@lepiller.eu \
    --cc=help-guix@gnu.org \
    --cc=zelphirkaltstahl@posteo.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).