unofficial mirror of help-guix@gnu.org 
 help / color / mirror / Atom feed
From: 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 17:53:06 +0000	[thread overview]
Message-ID: <ecb59046-4095-47b8-b854-8fa0c48b3973@posteo.de> (raw)
In-Reply-To: <62213a9d-3bab-4f0f-bd7b-9a98b880ae0d@posteo.de>

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.

-- 
repositories:https://notabug.org/ZelphirKaltstahl,https://codeberg.org/ZelphirKaltstahl

  reply	other threads:[~2024-12-30 18:38 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 ` Zelphir Kaltstahl [this message]
2024-12-30 19:33   ` OCaml package `ocaml-zarith` not working / Guix installed `ocamlc` not picking up installed libraries (addendum 1) Julien Lepiller
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=ecb59046-4095-47b8-b854-8fa0c48b3973@posteo.de \
    --to=zelphirkaltstahl@posteo.de \
    --cc=help-guix@gnu.org \
    /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).