caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
* Re: [Caml-list] How can I use a library in a toplevel created by js_of_ocaml?
@ 2019-05-27 18:34 Quaker Quickoats
  2019-05-29  0:39 ` Kenichi Asai
  0 siblings, 1 reply; 9+ messages in thread
From: Quaker Quickoats @ 2019-05-27 18:34 UTC (permalink / raw)
  To: asai; +Cc: caml-list

[-- Attachment #1: Type: text/plain, Size: 3536 bytes --]

Looking to solve your problem in 2-toplevel.tar.gz code, I've proceeded to
notice that out of all the js_of_ocaml libraries installed here, there is
missing js_of_ocaml-toplevel -- here is what happened when I try to
download and install it with OPAM (2.0.4~):

~/Downloads/p/toplevel $ opam install js_of_ocaml-toplevel
The following actions will be performed:
  ∗ install js_of_ocaml-toplevel 3.4.0

<><> Gathering sources
><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
[js_of_ocaml-toplevel.3.4.0] found in cache

<><> Processing actions
<><><><><><><><><><><><><><><><><><><><><><><><><><><><>
[ERROR] The compilation of js_of_ocaml-toplevel failed at
"/home/user/.opam/opam-init/hooks/sandbox.sh build dune build -p
js_of_ocaml-toplevel -j
        1".

#=== ERROR while compiling js_of_ocaml-toplevel.3.4.0
=========================#
# context              2.0.4 | linux/x86_64 | ocaml-base-compiler.4.07.1 |
https://opam.ocaml.org#a7ba7031
# path
~/.opam/default/.opam-switch/build/js_of_ocaml-toplevel.3.4.0
# command              ~/.opam/opam-init/hooks/sandbox.sh build dune build
-p js_of_ocaml-toplevel -j 1
# exit-code            1
# env-file             ~/.opam/log/js_of_ocaml-toplevel-3670-05296d.env
# output-file          ~/.opam/log/js_of_ocaml-toplevel-3670-05296d.out
### output ###
# Error: Unbound module Js_of_ocaml_compiler.Stdlib
# [...]
# (cd _build/default && /home/user/.opam/default/bin/ocamlc.opt -w -40 -g
-bin-annot -I toplevel/lib/.js_of_ocaml_toplevel.objs/byte -I
/home/user/.opam/default/lib/biniou -I /home/user/.opam/default/lib/bytes
-I /home/user/.opam/default/lib/easy-format -I
/home/user/.opam/default/lib/js_of_ocaml -I
/home/user/.opam/default/lib/js_of_ocaml-compiler -I
/home/user/.opam/default/lib/[...]
# File "toplevel/lib/jsooTopPpx.ml", line 20, characters 5-32:
# Error: Unbound module Js_of_ocaml_compiler.Stdlib
#       ocamlc
toplevel/lib/.js_of_ocaml_toplevel.objs/byte/js_of_ocaml_toplevel__JsooTop.{cmo,cmt}
(exit 2)
# (cd _build/default && /home/user/.opam/default/bin/ocamlc.opt -w -40 -g
-bin-annot -I toplevel/lib/.js_of_ocaml_toplevel.objs/byte -I
/home/user/.opam/default/lib/biniou -I /home/user/.opam/default/lib/bytes
-I /home/user/.opam/default/lib/easy-format -I
/home/user/.opam/default/lib/js_of_ocaml -I
/home/user/.opam/default/lib/js_of_ocaml-compiler -I
/home/user/.opam/default/lib/[...]
# File "toplevel/lib/jsooTop.ml", line 22, characters 5-32:
# Error: Unbound module Js_of_ocaml_compiler.Stdlib
#     ocamlopt
toplevel/lib/.js_of_ocaml_toplevel.objs/native/js_of_ocaml_toplevel__JsooTopPpx.{cmx,o}
(exit 2)
# (cd _build/default && /home/user/.opam/default/bin/ocamlopt.opt -w -40 -g
-I toplevel/lib/.js_of_ocaml_toplevel.objs/byte -I
toplevel/lib/.js_of_ocaml_toplevel.objs/native -I
/home/user/.opam/default/lib/biniou -I /home/user/.opam/default/lib/bytes
-I /home/user/.opam/default/lib/easy-format -I
/home/user/.opam/default/lib/js_of_ocaml -I
/home/user/.opam/default/lib/js_of_ocaml-co[...]
# File "toplevel/lib/jsooTopPpx.ml", line 20, characters 5-32:
# Error: Unbound module Js_of_ocaml_compiler.Stdlib



<><> Error report
<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
┌─ The following actions failed
│ λ build js_of_ocaml-toplevel 3.4.0
└─
╶─ No changes have been performed
~/Downloads/p/toplevel $ opam install js_of_ocaml-compiler
[NOTE] Package js_of_ocaml-compiler is already installed (current version
is 3.3.0).

[-- Attachment #2: Type: text/html, Size: 4353 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread
* [Caml-list] How can I use a library in a toplevel created by js_of_ocaml?
@ 2019-05-26  6:26 Kenichi Asai
  2019-05-28  0:41 ` hugo
  0 siblings, 1 reply; 9+ messages in thread
From: Kenichi Asai @ 2019-05-26  6:26 UTC (permalink / raw)
  To: caml-list

[-- Attachment #1: Type: text/plain, Size: 1391 bytes --]

I want to create a web page where I can execute an OCaml expression
that mentions a prebuilt user-defined library.  I find the following
example in the js_of_ocaml/toplevel repository:

https://github.com/ocsigen/js_of_ocaml/tree/master/toplevel/examples/eval

Can I extend this example so that the toplevel is compiled with a
user-defined library?  The attached program contains the following
where the first three files are copied from the example in the
js_of_ocaml/toplevel repository.

toplevel/ -- dune
          -- eval.ml
          -- index.html
          -- fac/ -- dune
                  -- fac.ml

I intend that fac.ml is compiled as a library and I want to use it in
the toplevel.  I added "fac" in the libraries stanza of the toplevel
dune file (as in the attached file):

(executables
  (names eval)
  (libraries
    fac
    js_of_ocaml-compiler
    js_of_ocaml-toplevel)
  (link_flags (:standard -linkall))
  (preprocess (pps js_of_ocaml-ppx)))

Naturally, fac.ml is compiled and I can use it in the eval.ml, but it
is not visible from the toplevel.  I included the following part in
the index.html (as in the attached file):

<script type="text/ocaml" stdout="script3" stderr="script3">
  Fac.go 3;;
</script>
<div id="script3"> </div>

but the output says:

File "/dev/fake_stdin", line 2, characters 6-12:
Error: Unbound module Fac

Thank you in advance.

-- 
Kenichi Asai

[-- Attachment #2: toplevel.tar.gz --]
[-- Type: application/x-tar-gz, Size: 2149 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2019-06-06  1:05 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-05-27 18:34 [Caml-list] How can I use a library in a toplevel created by js_of_ocaml? Quaker Quickoats
2019-05-29  0:39 ` Kenichi Asai
2019-05-29 20:27   ` Quaker Quickoats
2019-05-30  0:45     ` hugo
  -- strict thread matches above, loose matches on Subject: below --
2019-05-26  6:26 Kenichi Asai
2019-05-28  0:41 ` hugo
2019-05-30 14:19   ` Kenichi Asai
2019-06-01  1:00     ` Kenichi Asai
2019-06-06  1:05       ` hugo

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 NNTP newsgroup(s).