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 291AF820A1 for ; Sat, 7 Sep 2013 23:42:07 +0200 (CEST) Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of jp.deplaix@gmail.com) identity=pra; client-ip=74.125.82.43; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="jp.deplaix@gmail.com"; x-sender="jp.deplaix@gmail.com"; x-conformance=sidf_compatible Received-SPF: Pass (mail3-smtp-sop.national.inria.fr: domain of jp.deplaix@gmail.com designates 74.125.82.43 as permitted sender) identity=mailfrom; client-ip=74.125.82.43; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="jp.deplaix@gmail.com"; x-sender="jp.deplaix@gmail.com"; 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@mail-wg0-f43.google.com) identity=helo; client-ip=74.125.82.43; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="jp.deplaix@gmail.com"; x-sender="postmaster@mail-wg0-f43.google.com"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AnABADmdK1JKfVIrk2dsb2JhbABAGoJmWYN7vl6BJRYOAQEBAQcLCwkUBCSCJQEBBSMVCAEbHAIDDAYFCw0CAgUWCwICCQMCAQIBEREBBQEcEwYCAheHVAEDDwELNKkWjABRgwWDYwoZJw1kiBEBBQyBHY5eFoJTgTQDl3WBL45OQYRK X-IPAS-Result: AnABADmdK1JKfVIrk2dsb2JhbABAGoJmWYN7vl6BJRYOAQEBAQcLCwkUBCSCJQEBBSMVCAEbHAIDDAYFCw0CAgUWCwICCQMCAQIBEREBBQEcEwYCAheHVAEDDwELNKkWjABRgwWDYwoZJw1kiBEBBQyBHY5eFoJTgTQDl3WBL45OQYRK X-IronPort-AV: E=Sophos;i="4.90,861,1371074400"; d="scan'208";a="26068400" Received: from mail-wg0-f43.google.com ([74.125.82.43]) by mail3-smtp-sop.national.inria.fr with ESMTP/TLS/RC4-SHA; 07 Sep 2013 23:42:06 +0200 Received: by mail-wg0-f43.google.com with SMTP id z12so4114946wgg.22 for ; Sat, 07 Sep 2013 14:42:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=message-id:date:from:user-agent:mime-version:to:subject:references :in-reply-to:content-type:content-transfer-encoding; bh=o6LBMs5bU2ZyrLb7ZSKBuj7wIjnkuZYeElzqOq5IZE0=; b=W9FLHabCy5oIts9OBJtwXxN8DXtpGB4Fj+c8m9KeNpZEEcsochrLJeyNbtC0zsNQ9t MTgmx4f5K3LJ2VJuNj9pH1l0zg6eDcFy48qAEU8GiUvAaL6t1m+QgVmvBf1hskZ0mKOo mPisRVXMvGoRtZfsWpviUPu1ME19vt7IaBhMTa1qTdRoK6pcUOuenFJOpRBv+UcWAU/H s+EMygRm69kEVdck/BRK2S28dsCetAkWPzUr2blytAlrkKs6+aM23GcR8DOMgHIFd5dH VVMnVaCPmnJGas6oZ8+zGwaLHWimsYUtRQKLsI3CqeruqCz7xDwFjWFztfWquxx/64CD OaoQ== X-Received: by 10.180.75.239 with SMTP id f15mr3163241wiw.43.1378590126187; Sat, 07 Sep 2013 14:42:06 -0700 (PDT) Received: from ?IPv6:2a01:e35:242f:140:1a3d:a2ff:fe56:8f20? ([2a01:e35:242f:140:1a3d:a2ff:fe56:8f20]) by mx.google.com with ESMTPSA id e5sm6391250wiy.2.1969.12.31.16.00.00 (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Sat, 07 Sep 2013 14:42:05 -0700 (PDT) Message-ID: <522B9DAB.8010704@gmail.com> Date: Sat, 07 Sep 2013 23:42:03 +0200 From: Jacques-Pascal Deplaix User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130821 Icedove/17.0.8 MIME-Version: 1.0 To: caml-list@inria.fr References: <5229DEF9.7040706@inria.fr> <522A0336.7030203@inria.fr> <87hadw1m42.fsf@gmail.com> In-Reply-To: <87hadw1m42.fsf@gmail.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Caml-list] Accelerating compilation Personally, I'd prefer the second solution because the former will not do anything during the first build (if I'm not wrong) and this is quite problematic for end user (for installation). On 09/07/2013 09:13 PM, Wojciech Meyer wrote: > Xavier Leroy writes: > >>> 3) Parallel compilation in Ocamlbuild >>> Of course it would help but it is not easy to implement so I'm just >>> putting it there to be exhaustive. >> As others said, ocamlbuild has some support for parallelism, but >> it's much less effective than "make -j". One reason could be that >> ocamlbuild discovers dependencies as it goes, so it's doing online >> scheduling, in contrast with make's offline scheduling. But within >> the online scheduling approach, there is certainly room for >> improvement. Suggestions and patches welcome. > That's exactly what happens and is described here: > > http://caml.inria.fr/mantis/view.php?id=5754 > > Unfortunately it's not that easy to fix. Possible solutions: > > - do the scheduling after the project was build for the first time and > then: > * for each of the targets note the products and store it in the > database > * when the target changes, re-build the database for this target and > it's products > > - provide simpler and less dynamic rules for ocamlbuild: > * that actually don't run the Caml code, but do only invoke shell > commands with some substitution > * try to convert existing rules to the static ones > > Both solutions guarantee perfect scheduling. > > Wojciech >