From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.1.3 (2006-06-01) on yquem.inria.fr X-Spam-Level: * X-Spam-Status: No, score=1.1 required=5.0 tests=AWL,SPF_FAIL autolearn=disabled version=3.1.3 X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from mail1-relais-roc.national.inria.fr (mail1-relais-roc.national.inria.fr [192.134.164.82]) by yquem.inria.fr (Postfix) with ESMTP id 492EEBBB7 for ; Fri, 9 Jan 2009 19:13:14 +0100 (CET) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Ar4AALciZ0nUTWUFkGdsb2JhbACHHIx1AQEBAQkJDAcRBLt1hW8 X-IronPort-AV: E=Sophos;i="4.37,240,1231110000"; d="scan'208";a="22240555" Received: from mx1.wp.pl ([212.77.101.5]) by mail1-smtp-roc.national.inria.fr with ESMTP/TLS/DHE-RSA-AES256-SHA; 09 Jan 2009 19:13:13 +0100 Received: (wp-smtpd smtp.wp.pl 7062 invoked from network); 9 Jan 2009 19:13:09 +0100 Received: from phpdk6.ph.kcl.ac.uk (HELO [137.73.5.196]) (d0@[137.73.5.196]) (envelope-sender ) by smtp.wp.pl (WP-SMTPD) with AES256-SHA encrypted SMTP for ; 9 Jan 2009 19:13:09 +0100 Message-ID: <496793B3.1080801@wp.pl> Date: Fri, 09 Jan 2009 18:13:07 +0000 From: Dawid Toton User-Agent: Thunderbird 1.5.0.12 (X11/20090107) MIME-Version: 1.0 To: caml-list@yquem.inria.fr Subject: Re: [Caml-list] Toplevel - loading dependencies References: <49675DE7.5030000@uj.edu.pl> <200901091814.08168.fmonnier@linux-nantes.fr.eu.org> In-Reply-To: <200901091814.08168.fmonnier@linux-nantes.fr.eu.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-WP-AV: skaner antywirusowy poczty Wirtualnej Polski S. A. X-WP-SPAM: NO 0000000 [EfMk] X-Spam: no; 0.00; toplevel:01 dependencies:01 ocamlc:01 recompile:01 makefile:01 recompile:01 traversing:01 dynamically:01 caml-list:01 dependency:01 cma:01 tree:02 tree:02 cached:02 cached:02 > in case you're doing so this way: > ocamlc -o my.cma mod1.ml mod2.ml mod3.ml mod4.ml > > this will recompile everything, > but you can use in your makefile: > (...) > then you don't recompile everything, only the modified module > Yes, with ocamlbuild I need not to recompile everything, but it's slow traversing even nothing-to-be-done tree: Finished, 432 targets (411 cached) in 00:00:08. It takes already 8 seconds if nothing is touched. If I edit few files, it's worse: Finished, 432 targets (256 cached) in 00:00:49. I'm looking for alternatives. That's why I try with scripting: keep core libraries compiled and run outermost parts with an interpreter. Another idea is to change ocamlbuild to work dynamically: keep the dependency tree in memory and update it from time to time, watching files on disk. Dawid