From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (from majordomo@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id NAA09673; Sat, 4 Sep 2004 13:49:39 +0200 (MET DST) X-Authentication-Warning: pauillac.inria.fr: majordomo set sender to owner-caml-list@pauillac.inria.fr using -f Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id NAA08161 for ; Sat, 4 Sep 2004 13:49:38 +0200 (MET DST) Received: from annexia.force9.co.uk (annexia.force9.co.uk [212.56.101.183]) by concorde.inria.fr (8.13.0/8.13.0) with ESMTP id i84Bnc4t023069 for ; Sat, 4 Sep 2004 13:49:38 +0200 Received: from rich by annexia.force9.co.uk with local (Exim 3.36 #1 (Debian)) id 1C3Z33-0006Ir-00 for ; Sat, 04 Sep 2004 12:49:37 +0100 Date: Sat, 4 Sep 2004 12:49:37 +0100 Cc: caml-list@pauillac.inria.fr Subject: Re: [Caml-list] laziness Message-ID: <20040904114937.GA24148@annexia.org> References: <1094279400.3352.240.camel@pelican.wigram> <87656u2zrk.fsf@qrnik.zagroda> <1094296869.3352.280.camel@pelican.wigram> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="KsGdsel6WgEHnImy" Content-Disposition: inline In-Reply-To: <1094296869.3352.280.camel@pelican.wigram> User-Agent: Mutt/1.5.5.1+cvs20040105i From: Richard Jones X-Miltered: at concorde with ID 4139ABD2.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Loop: caml-list@inria.fr X-Spam: no; 0.00; caml-list:01 endline:01 endline:01 printf:01 printf:01 ocamlc:01 ocamlopt:01 -inline:01 ocamlopt:01 inlining:01 ltd:98 assembler:01 arch:02 laziness:02 perl:03 X-Attachments: type="application/pgp-signature" name="signature.asc" Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk --KsGdsel6WgEHnImy Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Should be easy enough to test this: -------------------------------------------------------------- iftest.ml let f a b c =3D if c then a else b let r =3D f (print_endline "function a"; 'a') (print_endline "function b"; 'b') true;; Printf.printf "r =3D %c\n" r ---------------------------------------------------------------------- When compiled with ocamlc and run, this prints: function b function a r =3D a When compiled with ocamlopt -inline 99 and run, this prints: function a function b r =3D a I examined the assembler output from ocamlopt, and it looks to me like it's doing inlining and significant optimizations. So it all works fine, I think. Rich. --=20 Richard Jones. http://www.annexia.org/ http://www.j-london.com/ Merjis Ltd. http://www.merjis.com/ - improving website return on investment MONOLITH is an advanced framework for writing web applications in C, easier than using Perl & Java, much faster and smaller, reusable widget-based arch, database-backed, discussion, chat, calendaring: http://www.annexia.org/freeware/monolith/ --KsGdsel6WgEHnImy Content-Type: application/pgp-signature; name="signature.asc" Content-Description: Digital signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (GNU/Linux) iD8DBQFBOavR4le1M6q9pzoRAqu1AJ9IDDnXtuAZ2YViL9T5IIixV6hQAwCcDd7+ hYuDI/eq4SHKoYXajW2mr2U= =Wh7R -----END PGP SIGNATURE----- --KsGdsel6WgEHnImy-- ------------------- To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/ Beginner's list: http://groups.yahoo.com/group/ocaml_beginners