caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
* [Caml-list] Accelerating compilation
@ 2013-09-06 13:56 Romain Bardou
  2013-09-06 14:55 ` Markus Mottl
                   ` (3 more replies)
  0 siblings, 4 replies; 49+ messages in thread
From: Romain Bardou @ 2013-09-06 13:56 UTC (permalink / raw)
  To: caml-list

Hello list,

As my project grows bigger, it is becoming much less efficient to use
the type-checker to quickly find places in my code which must be updated
(e.g. pattern-matching). Here is a wishlist for improvements.

1) Separate typing and code generation, in ocamlc and in ocamlopt

For instance, provide an option -typing-only which would mean "only
produce the .cmi but do not produce the .cmo or the .cmx". The compiler
would only need the .cmi of the dependencies, not their .cmo or .cmx.
This would make it possible to have a Makefile target, or an Ocamlbuild
option, to just type.

Also, provide an option -do-not-retype which would mean "if the .cmi
exists, load it instead of type-checking again". This would allow the
build process to first type-check (using -typing-only) and then generate
the code without type-checking again (using -do-not-retype). Of course
the build system should be very careful to ensure the .cmi is
up-to-date. This option could also help when compiling both in bytecode
and in native code. This option is not necessary to just find errors
quickly, though.

2) Be able to disable Ocamlbuild's digest mechanism and use dates and
file sizes instead

If I am not mistaken, this is one of the main reasons why Ocamlbuild is
slower that make. It does help to prevent useless recompilation, but
what good does it make to prevent a useless recompilation once in a
while if it is at the cost of losing a lot of time in all other cases?
I'm sure it is project-dependent though so it should only be an option,
say, -do-not-hash, or -comparison-mode dateandsize.

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.

I think the most important point is the first one, as the other two
depend on the build system, and they have been debated already. I'm not
aware of any discussion about separing typing and code generation
though. What do you think about that?

Cheers,

-- 
Romain Bardou

^ permalink raw reply	[flat|nested] 49+ messages in thread

end of thread, other threads:[~2013-10-01 12:26 UTC | newest]

Thread overview: 49+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-09-06 13:56 [Caml-list] Accelerating compilation Romain Bardou
2013-09-06 14:55 ` Markus Mottl
2013-09-06 15:19   ` Romain Bardou
2013-09-06 15:27     ` Gabriel Scherer
2013-09-06 15:33       ` Alain Frisch
2013-09-06 20:51     ` Fabrice Le Fessant
2013-09-09  7:44       ` Romain Bardou
2013-09-11 13:00       ` Francois Berenger
2013-09-11 13:46         ` Wojciech Meyer
2013-09-12  1:23           ` Francois Berenger
2013-09-12 15:15             ` Jacques Le Normand
2013-09-30  8:06       ` [Caml-list] from oasis to obuild (original subject was Re: Accelerating compilation) Francois Berenger
2013-09-30  8:18         ` Török Edwin
2013-09-30  9:00         ` Fabrice Le Fessant
2013-09-30  9:13           ` Anil Madhavapeddy
2013-09-30 11:13             ` Alain Frisch
2013-09-30 11:19               ` Anil Madhavapeddy
2013-09-30 11:27                 ` Alain Frisch
2013-09-30 11:36                   ` Anil Madhavapeddy
2013-09-30  9:18           ` Francois Berenger
2013-09-30 14:11         ` Sylvain Le Gall
2013-10-01  0:57           ` Francois Berenger
2013-10-01 12:25             ` Sylvain Le Gall
2013-09-07 11:37     ` [Caml-list] Accelerating compilation Matej Kosik
2013-09-08  6:37     ` Francois Berenger
2013-09-06 15:18 ` Gabriel Scherer
2013-09-06 15:28   ` Romain Bardou
2013-09-06 16:04   ` Markus Mottl
2013-09-06 16:30 ` Xavier Leroy
2013-09-07 19:13   ` Wojciech Meyer
2013-09-07 21:42     ` Jacques-Pascal Deplaix
2013-09-08  1:59       ` Markus Mottl
2013-09-09  7:59   ` Romain Bardou
2013-09-09  8:25   ` Alain Frisch
2013-09-09  8:35     ` Francois Berenger
2013-09-09 10:13     ` Anil Madhavapeddy
2013-09-09 17:08     ` Adrien Nader
2013-09-09 17:17       ` Gabriel Kerneis
2013-09-10  2:01     ` oleg
2013-09-10 10:21       ` Gerd Stolpmann
2013-09-10 16:15       ` Adrien Nader
2013-09-10 16:46       ` Xavier Leroy
2013-09-10 16:53         ` Adrien Nader
2013-09-10 17:43           ` ygrek
2013-09-06 18:45 ` Martin Jambon
2013-09-09  8:15   ` Romain Bardou
2013-09-09  8:36     ` Francois Berenger
2013-09-09  8:41       ` Thomas Refis
2013-09-09 17:32     ` Aleksey Nogin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).