lymp
lymp copied to clipboard
can it run from the ocaml repl? something like #load "lymp.cmo"
I use opam, and I admit there was a long time I used ocaml, more into F# the recent years. I tried this:
$ ocaml -I +threads
OCaml version 4.05.0
# #load "unix.cma" ;;
# #load "threads.cma" ;;
# #load "/home/mattias/.opam/system/lib/lymp/lymp.cma" ;;
# open Lymp ;;
Characters 5-9:
open Lymp ;;
^^^^
Error: Unbound module Lymp
# open Unix ;;
# open Mutex ;;
#
Hi @mattiasw2, I don't have much experience with the toplevel. I wasn't able to do most of what I wanted to do with it in the past, and this time once again :) I tried to use yojson
in the toplevel, but got the same issue :
# #load "/Users/<user>/.opam/default/lib/easy-format/easy_format.cma" ;;
# #load "/Users/<user>/.opam/default/lib/biniou/biniou.cma" ;;
# #load "/Users/<user>/.opam/default/lib/yojson/yojson.cma" ;;
# open Yojson ;;
Error: Unbound module Yojson
Let me know if you successfully get lymp
or some other package working in the toplevel.
You can use ocamlfind
to load the package and its dependencies, but you have to load the thread modules first:
$ ocaml
OCaml version 4.14.1
Enter #help;; for help.
# #use "topfind";;
- : unit = ()
Findlib has been successfully loaded. Additional directives:
#require "package";; to load a package
#list;; to list the available packages
#camlp4o;; to load camlp4 (standard syntax)
#camlp4r;; to load camlp4 (revised syntax)
#predicates "p,q,...";; to set these predicates
Topfind.reset();; to force that packages will be reloaded
#thread;; to enable threads
- : unit = ()
# #thread;;
/var/home/edwin/.opam/4.14.1/lib/ocaml/threads: added to search path
/var/home/edwin/.opam/4.14.1/lib/ocaml/unix.cma: loaded
/var/home/edwin/.opam/4.14.1/lib/ocaml/threads/threads.cma: loaded
# #require "lymp";;
/var/home/edwin/.opam/4.14.1/lib/lymp: added to search path
/var/home/edwin/.opam/4.14.1/lib/lymp/lymp.cma: loaded
# open Lymp;;
#
Or you can use utop
as a toplevel and then you can just require it directly:
$ utop
─( 11:56:35 )─< command 0 >───────────────────────────────────────────────────────────────────────────────────────────────────────{ counter: 0 }─
utop # #require "lymp";;
─( 11:56:35 )─< command 1 >───────────────────────────────────────────────────────────────────────────────────────────────────────{ counter: 0 }─
utop # open Lymp;;
─( 11:56:42 )─< command 2 >───────────────────────────────────────────────────────────────────────────────────────────────────────{ counter: 0 }─
utop #