From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail3-relais-sop.national.inria.fr (mail3-relais-sop.national.inria.fr [192.134.164.104]) by sympa.inria.fr (Postfix) with ESMTPS id BFCF97ED69 for ; Sun, 26 May 2019 08:27:17 +0200 (CEST) Authentication-Results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=asai@is.ocha.ac.jp; spf=Pass smtp.mailfrom=asai@is.ocha.ac.jp; spf=None smtp.helo=postmaster@web.is.ocha.ac.jp Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of asai@is.ocha.ac.jp) identity=pra; client-ip=133.65.64.10; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="asai@is.ocha.ac.jp"; x-sender="asai@is.ocha.ac.jp"; x-conformance=sidf_compatible Received-SPF: Pass (mail3-smtp-sop.national.inria.fr: domain of asai@is.ocha.ac.jp designates 133.65.64.10 as permitted sender) identity=mailfrom; client-ip=133.65.64.10; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="asai@is.ocha.ac.jp"; x-sender="asai@is.ocha.ac.jp"; x-conformance=sidf_compatible; x-record-type="v=spf1" Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of postmaster@web.is.ocha.ac.jp) identity=helo; client-ip=133.65.64.10; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="asai@is.ocha.ac.jp"; x-sender="postmaster@web.is.ocha.ac.jp"; x-conformance=sidf_compatible IronPort-PHdr: =?us-ascii?q?9a23=3AnHFTpxSNnmP7rGiqGNRs3XwRTtpsv+yvbD5Q0YIu?= =?us-ascii?q?jvd0So/mwa69YRWN2/xhgRfzUJnB7Loc0qyK6vmmADVRqs/Z6zgrS99lb1c9k8?= =?us-ascii?q?IYnggtUoauKHbQC7rUVRE8B9lIT1R//nu2YgB/Ecf6YEDO8DXptWZBUhrwOhBo?= =?us-ascii?q?KevrB4Xck9q41/yo+53Ufg5EmCexbal9IRmrsAndrNQajZZmJ6o+1xfFvnVFcP?= =?us-ascii?q?lKyG11Il6egwzy7dqq8p559CRQtfMh98peXqj/Yq81U79WAik4Pm4s/MHkugXN?= =?us-ascii?q?QgWJ5nsHT2UZiQFIDBTf7BH7RZj+rC33vfdg1SaAPM32Sbc0WSm+76puVRTlhj?= =?us-ascii?q?sLOyI//WrKjMF7kaBVrw+7pxFnzYDaYJ+bOud9cKzSYdwVWGROU91UVyBdGI6x?= =?us-ascii?q?dZcDAvAfMetesoLzp0EOrRy7BQS0Ae3g1DlIhn7q0q060uQqDB3L3Bc6ENIPrX?= =?us-ascii?q?/Zq8/6NLwIXuC016TIzC7DY+lR2Tjh6IjHaAotruuQUr5qc8rR0VAiGgXYhVue?= =?us-ascii?q?rozlOima1uULs2WD4OpgVP6vi246qw5quDSg2sAsiozPi4kIyV7E7T10zJs7KN?= =?us-ascii?q?C2UkJ2YN6pHIFRuiyVLYd6X98uT3l2tConybAKo5G2cSgQxJkmxhPTceGLfoeV?= =?us-ascii?q?7h/lSe2fOy13hGh/d7K6nxuy8Vavyun7VsSs3ldFsDFKnsPNtnAWzRDT7dSISv?= =?us-ascii?q?tn8Uu7wzmAyxrf6uNcIUwslKrbLYAuwqIom5YOv0nOEDX6lUT2gaOMd0gp9fKk?= =?us-ascii?q?5/n7brn+o5+TLY50igXwMqQ0ncy/BPw1PRIVX2eB+OSxz7zj/VbjTLVNkvI2kr?= =?us-ascii?q?PWvIrAKssHvKK5ARdV3p456xmjFzemzMgYnX4fIV1ZYh2HiozpN0jKIPD5Fve/?= =?us-ascii?q?n0+hkCxrxvDDJr3uGI/BLnnFkLf7fLZy8VRQyAQpzYMX25UBAbgEJLf3W1TtnN?= =?us-ascii?q?3eFB4wdQKukMj9D9Ao9Y4YWGmPA+ewK6rT+QuB/esuC+iXIogeuD+7IvNj5ea4?= =?us-ascii?q?3ixxokMUYaT8hchfU3u/BPkzexzEM0qpuc8IFCIxhiR7TOHujwTTAyFebTCzRO?= =?us-ascii?q?Q77TEyToutS4XbFNj03O6xmRyjF5gTXVhoT0iWGC61JYSfHfAHaCvUK8QnkCRW?= =?us-ascii?q?DeHwGb9k7gmnsUrB85QiK+PV/iMCspe6iYp0/KvUnhE7szV/ScaFgTiA?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0CBLADMMOpcbQpAQYVlGwEBAQEXAQEBB?= =?us-ascii?q?QMBAQEKAQEBgUiBKAIBAQEBAWBpUzEojQ6mcgEIAQMBBwECAQElCAIBAYN6XzU?= =?us-ascii?q?JgWobBwEENBMBAwEBBAEBAgEBAwETDRUHGzEMgjoihConDQUgAQUBg1iCCQEPm?= =?us-ascii?q?l08jE+IMSGBRxANAgOBIAIBAQEBAQEBgUmKGoF/g3WDTQKCLoJvgiYEiHQHgiS?= =?us-ascii?q?IfIZ1jUMJgg8Dgg+BBIIZgQWMVQwbgwaJRol9LZNDjnYCBAIEBQIGDyGBRYF4M?= =?us-ascii?q?xoIMIMnCYV2hCCGQjEygQMmE40+AQE?= X-IPAS-Result: =?us-ascii?q?A0CBLADMMOpcbQpAQYVlGwEBAQEXAQEBBQMBAQEKAQEBgUi?= =?us-ascii?q?BKAIBAQEBAWBpUzEojQ6mcgEIAQMBBwECAQElCAIBAYN6XzUJgWobBwEENBMBA?= =?us-ascii?q?wEBBAEBAgEBAwETDRUHGzEMgjoihConDQUgAQUBg1iCCQEPml08jE+IMSGBRxA?= =?us-ascii?q?NAgOBIAIBAQEBAQEBgUmKGoF/g3WDTQKCLoJvgiYEiHQHgiSIfIZ1jUMJgg8Dg?= =?us-ascii?q?g+BBIIZgQWMVQwbgwaJRol9LZNDjnYCBAIEBQIGDyGBRYF4MxoIMIMnCYV2hCC?= =?us-ascii?q?GQjEygQMmE40+AQE?= X-IronPort-AV: E=Sophos;i="5.60,513,1549926000"; d="ml'63?html'63,217?scan'63,217,208,217,50,63,49?gz'63,217,208,217,50,63,49,50?_fac'63,217,208,217,50,63,49,50,63";a="307223402" X-MGA-submission: =?us-ascii?q?MDExqTwDXPgy7vdJlan2qRTtJ5tvntF9Kca7Uk?= =?us-ascii?q?qLpLSu8tR/Z31iST+bSPxISz7Q8Bjpgye8UCT2soTApQ/nJh1p9tVF7P?= =?us-ascii?q?izl6uu++Emy5ylMbeelbUUlBsHkOGBi9hKuvgAaTW/wZdAcS0xs8ojzb?= =?us-ascii?q?X5tWP+RWvi/dtqKgEF5hhskA=3D=3D?= Received: from web.is.ocha.ac.jp ([133.65.64.10]) by mail3-smtp-sop.national.inria.fr with ESMTP; 26 May 2019 08:27:15 +0200 Received: from mail-pf1-f199.google.com (mail-pf1-f199.google.com [209.85.210.199]) by web.is.ocha.ac.jp (Postfix) with ESMTP id DB58E2009397A for ; Sun, 26 May 2019 15:27:11 +0900 (JST) Received: by mail-pf1-f199.google.com with SMTP id 77so6951741pfu.1 for ; Sat, 25 May 2019 23:27:11 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:subject:message-id:mime-version :content-disposition:user-agent; bh=MxcZIaYLbBxkAOZYKYJrOLahhYm94LJ6qJV5xSzcIF0=; b=WbU7rkM48pirVhcIew+xUuv+ic8KxEEYukqVJPihEkjFbRdVxn3aig5iLlgKprUtif 8tacRUZ7vbOOCvBWbqzCAoBVTnAQ+VDsYbN2KyAdXLS5w+NyaJrbfIS7RISkpQPpd7qc EjM/TR+dRRuC/Xid87OE/INoJhMSFDkI+VI+lH9bPLmLpTNsRm5zl4B1ik60gTJ6enAL h+P6wzN/U/xO8iVkDhCEGeFipFVyjE26n69ZjZXN7lbMjqjKS9GdOvQdK5Bk5Hh7FVix x66FIraAeCoqowbzIgcrFFJvhzfTP0y3xVZgM3yxTEOu0/AYmU0pEJOpddjsRrb+P4M6 tuFA== X-Gm-Message-State: APjAAAWfdZWyuuKCzQuyfSna1/fnRrcuX5G+amk2pvFD13/vKh8y9Fav q69ZnietzZPr6siyZz5yugVuKF7RFhHmHxEs/zsbj24w+VcdBhTZl6oM37ypTwNhGmvOXnJhyP0 syRmCRlbrW1b3 X-Received: by 2002:a17:902:324:: with SMTP id 33mr119436300pld.284.1558852030897; Sat, 25 May 2019 23:27:10 -0700 (PDT) X-Google-Smtp-Source: APXvYqy3lNqyhJv19oe61ujYI30dhnUHXnOH8+23xMRsSF2tN+NlMaeHZzbfnbx/UBDOzowYapkVOg== X-Received: by 2002:a17:902:324:: with SMTP id 33mr119436265pld.284.1558852030493; Sat, 25 May 2019 23:27:10 -0700 (PDT) Received: from localhost (218.45.66.141.eo.eaccess.ne.jp. [218.45.66.141]) by smtp.gmail.com with ESMTPSA id l38sm5451459pje.12.2019.05.25.23.27.08 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 25 May 2019 23:27:09 -0700 (PDT) Date: Sun, 26 May 2019 15:26:59 +0900 From: Kenichi Asai To: caml-list@inria.fr Message-ID: <20190526062659.GA63981@pllab.is.ocha.ac.jp> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="Q68bSM7Ycu6FN28Q" Content-Disposition: inline User-Agent: Mutt/1.7.2 (2016-11-26) Subject: [Caml-list] How can I use a library in a toplevel created by js_of_ocaml? --Q68bSM7Ycu6FN28Q Content-Type: text/plain; charset=us-ascii Content-Disposition: inline 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):
but the output says: File "/dev/fake_stdin", line 2, characters 6-12: Error: Unbound module Fac Thank you in advance. -- Kenichi Asai --Q68bSM7Ycu6FN28Q Content-Type: application/x-tar-gz Content-Disposition: attachment; filename="toplevel.tar.gz" Content-Transfer-Encoding: base64 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 --Q68bSM7Ycu6FN28Q--