From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Authentication-Results: plum.tunbury.org; dkim=pass (1024-bit key; unprotected) header.d=inria.fr header.i=@inria.fr header.a=rsa-sha256 header.s=dc header.b=jrie8JO7; dkim-atps=neutral Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=192.134.164.83; helo=mail2-relais-roc.national.inria.fr; envelope-from=caml-list-owner@inria.fr; receiver=tunbury.org Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by plum.tunbury.org (Postfix) with ESMTPS id 897CB40066 for ; Sun, 17 Aug 2025 11:21:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=inria.fr; s=dc; h=date:from:to:cc:message-id:references:mime-version: in-reply-to:subject:reply-to:sender:list-id:list-help: list-subscribe:list-unsubscribe:list-post:list-owner: list-archive; bh=rov1G9+Q0QB1NWZ8wSGWsX42VtxEhdSUxUlD+kcWgN0=; b=jrie8JO7A+EkUYteXKypwuQr8Lo3ws8+bpAJMYbEgKbOrZc7jB6FIoDb GatCVODyhD0GfAtuU772GSDUsbkkj48QaN9Lg5r3d1sPmMCL/5ZFEwubm zT7O4RM7hnCij0PeTL4O9gZJRpKUpN/gdZFKgQaYJ1ho4xTx/ZbmMKKju Y=; X-CSE-ConnectionGUID: fNH1X1wlTga31s5zkj1hqw== X-CSE-MsgGUID: kcaowFELSs24DaexFlstyA== Authentication-Results: mail2-relais-roc.national.inria.fr; dkim=none (message not signed) header.i=none; spf=Pass smtp.mailfrom=caml-list-owner@inria.fr; spf=None smtp.helo=postmaster@sympa.inria.fr Received-SPF: Pass (mail2-relais-roc.national.inria.fr: domain of caml-list-owner@inria.fr designates 128.93.162.160 as permitted sender) identity=mailfrom; client-ip=128.93.162.160; receiver=mail2-relais-roc.national.inria.fr; envelope-from="caml-list-owner@inria.fr"; x-sender="caml-list-owner@inria.fr"; x-conformance=spf_only; x-record-type="v=spf1"; x-record-text="v=spf1 include:mailout.safebrands.com a:basic-mail.safebrands.com a:basic-mail01.safebrands.com a:basic-mail02.safebrands.com ip4:128.93.142.0/24 ip4:192.134.164.0/24 ip4:128.93.162.160 ip4:128.93.162.3 ip4:128.93.162.88 ip4:89.107.174.7 mx ~all" Received-SPF: None (mail2-relais-roc.national.inria.fr: no sender authenticity information available from domain of postmaster@sympa.inria.fr) identity=helo; client-ip=128.93.162.160; receiver=mail2-relais-roc.national.inria.fr; envelope-from="caml-list-owner@inria.fr"; x-sender="postmaster@sympa.inria.fr"; x-conformance=spf_only X-IronPort-AV: E=Sophos;i="6.17,293,1747692000"; d="scan'208";a="235212227" Received: from prod-listesu18.inria.fr (HELO sympa.inria.fr) ([128.93.162.160]) by mail2-relais-roc.national.inria.fr with ESMTP; 17 Aug 2025 13:21:02 +0200 Received: by sympa.inria.fr (Postfix, from userid 20132) id 990EEE0B0D; Sun, 17 Aug 2025 13:21:02 +0200 (CEST) Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by sympa.inria.fr (Postfix) with ESMTPS id 93B18E0171 for ; Sun, 17 Aug 2025 13:20:58 +0200 (CEST) X-CSE-ConnectionGUID: U4c3qmLRTnaHnCuzZR51BA== X-CSE-MsgGUID: oNVs+47rRNibqey8207HKw== IronPort-SDR: 68a1bb1a_KXgW394Hce0QetMXDvi0YrRr/FxjdaSurRlaOzNxtl9tMyz /zItue2Oq6KmL7UQP+pdduf4buKmLKutbllRVlg== X-ThreatScanner-Verdict: Negative X-IPAS-Result: =?us-ascii?q?A0GHAwCLuqFo/wpAQYVaHAEBAQEBAQcBARIBAQQEAQFAg?= =?us-ascii?q?VOBblIHelsyBAtJYYdDjgUdA6AZBgkBAwELAQExHgIEAQEDAQOFAAKMJQIeB?= =?us-ascii?q?wEENBMBAgQBAQEBAwIDAQEBAQEBAQEBDQEBBQEBAQIBAQIEBgECgQoThk8Ng?= =?us-ascii?q?ls7ghYsDX0BAQEBAgESKD8FCwsYLhAjAQUBHAY1gmGCTCYCAQGjeoEFQopEe?= =?us-ascii?q?IE0gQGDHNpZLVOBMBSBNYhQAYFzhUeDKUKCDYQOMT6BUIkVIgSCIoEWilKGD?= =?us-ascii?q?IFugR2GW1J4HANZLAETQhMXCwcFZzkoAhkDgQ8jSwUDERkdgR0KfYQZhCYrT?= =?us-ascii?q?4IidYF3Wj+DUx4Gaw8GgRUZHS4CAgIFAkM+gVwXBh4GHxICAwECAoEgQAMLb?= =?us-ascii?q?T03FBuVAoMkgRAFARsIgQNWM3aOFgeUaIIen1OBPoQmhFEfnQEzl1IMkw2ZB?= =?us-ascii?q?pcBkhUCCgcHESSBWyaBWTMaCDA7gmcJRgMZD5ZArjQ1NDwCBwsBAQMJhUMmE?= =?us-ascii?q?4wigUsBAQ?= IronPort-PHdr: A9a23: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 IronPort-Data: A9a23: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 IronPort-HdrOrdr: A9a23:Jq0jEqhefo0QoabCjpLUfAiNj3BQXvgji2hC6mlwRA09TyVXrb HIoB0+726ItN9xYgBbpTnuAtjjfZqxz+8R3WBVB8bfYOCEghrSEGgB1/qa/9SIIUSXnYQttp uIMZIOcOEYZmIK6/oSjjPId+oI8Z2o9OSHi47loEuFjjsHV0ij1WpE48qgc3GejTMpZaYEKA == X-Talos-CUID: =?us-ascii?q?9a23=3Aj8nYN2mCPaHjzc92sBB9FsOOiV7XOUCBxyzJJmu?= =?us-ascii?q?CNWBgaLu+VE2iwv49ueM7zg=3D=3D?= X-Talos-MUID: =?us-ascii?q?9a23=3A2HVCiAzg0p3jQj8mXOpowGTbVpaaqKOINltOzco?= =?us-ascii?q?cge+FPzV9KmfH1GuXYZByfw=3D=3D?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-AV: E=Sophos;i="6.17,293,1747692000"; d="scan'208";a="235212213" X-MGA-submission: =?us-ascii?q?MDGithuav5NjpaEyMZ80DGFKzrtPnPzQGHT++j?= =?us-ascii?q?WRjT96XCHBsjRJ8TlX8xpx8/ozTxBt9rB+a0N/6rtdUlveMAmKXZ56ZP?= =?us-ascii?q?LeLxGZBgZPtNrTvsgjraqeBkq7nYbRrzD0VpXP/rWkPtEykVnMnQVQH8?= =?us-ascii?q?n01fGkh5riajewQNx3OvVPXg=3D=3D?= Received: from web.is.ocha.ac.jp ([133.65.64.10]) by mail2-smtp-roc.national.inria.fr with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 17 Aug 2025 13:20:55 +0200 Received: from mail-pf1-f197.google.com (mail-pf1-f197.google.com [209.85.210.197]) by web.is.ocha.ac.jp (Postfix) with ESMTPS id 4c4YLS11pqz1LQLfp for ; Sun, 17 Aug 2025 20:20:48 +0900 (JST) Received: by mail-pf1-f197.google.com with SMTP id d2e1a72fcca58-76e2eb6d2baso7348435b3a.3 for ; Sun, 17 Aug 2025 04:20:48 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1755429646; x=1756034446; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=rov1G9+Q0QB1NWZ8wSGWsX42VtxEhdSUxUlD+kcWgN0=; b=hh5xNzGkUBT3Dk4yFlJGVTd5mJXa/EuufYTPpvvOsY6HReIKEk9ZtSn4K+1vQUvOkf leLIPXWAT/H80wcPaE8P4N+FKSS5zIO2E9f+31sJeyVMSgDrj4IEPGP3fs612/gWTr1K irULTii3oaig9Ft5LRKoNWcr0i6mjg7M9kK4XPjbwdAH3qHM+Kjqdnd+oFM4X+NCuwx3 NbxtSjYQQHgEh/iUKcJsrRWcIGOAGlaO+XM7flBgvQDSYUUrcjwIYvutyfZWCK4UpLYO oIcrUEG6VV9oxqvn4fKGWczIPJ8+3lPUuCg1UK+M5vPX4DyQF94qq1U/h++BiQGYsBhl n2xw== X-Gm-Message-State: AOJu0YzHh4Xm4TYxDBON6TaEL59ISj+TTbBarSFc3x3eq/98OOxYyK6H dXP2YvdGq+UsosauFFZhkoAJ9Oc+ts8R55pd4ElX0FjahT33Hg6VSVO4RIqgCJxdwT/qXArkgdH 7x6U2iitENcvYAajpXm7EPhTr4gDXPIs5oT1nSp+shedJKmRRxvs8AL/cc7HI X-Gm-Gg: ASbGncsd93BfxWHgLuDnUuJt2JdWNTEWaOw3i2kN3l/CquJDSEHpt8h0azcsAE+7s+S nPOqB/Z6ViNr3NGpw1s1MRftcZuYO6Cr27GL5AzIbJ5zRY/lnVaYJhIEIEbEcy6B+GhSDpfc2A4 TtkPfqQrnXrz4JSYSWQP2+MUcj+LoOtwLCn/tQvTazKNp0wQjhghi3hhZZhU5NYpA/DFCB1lWnd gVAHG4FR7R4LwlYpeCj9GE1/7pi40tqafo1GmuCED4vvod2MOJLGADc4Yu8TfHfFPSDTQocnRaV LM+6Z34LIfwmp/q4AGorbZy6zIG8pm8fZCuVCXo502ip5+01OFM= X-Received: by 2002:a05:6a00:853:b0:736:6043:69f9 with SMTP id d2e1a72fcca58-76e447e5c40mr11510361b3a.19.1755429646532; Sun, 17 Aug 2025 04:20:46 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGzbVGXJ5FTDEcQxpylovvaCstshqn3hRHU66hH7JhZuwgas2i2jNdXYD/IVgIaDZZlopE7Xg== X-Received: by 2002:a05:6a00:853:b0:736:6043:69f9 with SMTP id d2e1a72fcca58-76e447e5c40mr11510335b3a.19.1755429646063; Sun, 17 Aug 2025 04:20:46 -0700 (PDT) Received: from localhost ([240f:101:8218:1:a4ed:587d:43d8:87f5]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-76e4526e33asm5084341b3a.9.2025.08.17.04.20.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 17 Aug 2025 04:20:45 -0700 (PDT) Date: Sun, 17 Aug 2025 20:20:36 +0900 From: Kenichi Asai To: Kate Cc: caml-list@inria.fr Message-ID: References: <8574f38c-a6ef-49b8-a60a-b4c89db51552@exn.st> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <8574f38c-a6ef-49b8-a60a-b4c89db51552@exn.st> Subject: Re: [Caml-list] utop execution of multiple OCaml files Reply-To: Kenichi Asai X-Loop: caml-list@inria.fr X-Sequence: 19363 Errors-To: caml-list-owner@inria.fr Precedence: list Precedence: bulk Sender: caml-list-request@inria.fr X-no-archive: yes List-Id: List-Help: List-Subscribe: List-Unsubscribe: List-Post: List-Owner: List-Archive: Archived-At: Thank you. #use_output appears to be quite powerful (a bit dangerous perhaps?) but it is good to know it exists. I found that if I can enumerate all the required files, "ocamldep -sort" can topologically sort them. I could somehow enumerate them (with the help of generative AI) and write a script to #mod_use them, but not quite. I can't help but feel that dune has all the required information internally and what I am doing is quite wasteful. "dune exec" would compile all the required files and produce an executable. Instead of producing an executable, I suppose it would not be very difficult to create a toplevel, just like ocamlmktop does. Why don't we have such a toplevel? In a educational setting, I think it is quite valuable to have a toplevel with custom libraries for particular courses... -- Kenichi Asai On Fri, Aug 15, 2025 at 12:37:52PM +0100, Kate wrote: > I'm not exactly sure if there is an easy way to do this for you but > > #use_output "your command";; > > in the default ocaml toplevel (i'm not sure that exists in utop) should be > useful. The command can be any shell command. > For example "dune top" will output the right #directory and #load, but this > only works for libraries the same way "dune utop" does. > > So maybe something like: > > #use_output "dune top";; > #use_output "for f in src/*.ml; do echo \"#mod_use \\\"$f\\\";\";done";; > > The first "dune top" will load any dependencies you may have and the shell > command will load all of the ml files from src. > > I hope this helps, > Kate > > On 8/15/25 01:50, Kenichi Asai wrote: > > Suppose I have a.ml that uses definitions in b.ml (and possibly more). > > To compile these files, all I need to do is to prepare a dune file > > that mentions only the main file: (executable (name a)), and type > > "dune build". > > > > But before I compile the whole program, I often want to play with > > functions in a.ml using OCaml toplevel, like utop. If b.ml were > > registered as a library, I could do it by "dune utop ." and then "#use > > a.ml". But to do so, I need to create a directory for the library and > > create another dune file for it. > > > > Is there a way to load all the modules into utop, just as simple as > > typing "dune build" for the compilation case? > > > > Perhaps, there is a tool to analyze the dependency and produce a list > > of commands like the following? > > > > #mod_use "b.ml";; > > #mod_use "a.ml";;