Conditional compiling in OCaml
Asked Answered
T

1

5

suppose I have a long algorithm which I would like to be optionally verbose to debug it. So far I just added many if verbose then printf "whatever" all around the code but this forces the code to execute many useless tests if I don't want to have it in the verbose mode.

Is there a way to obtain a simple conditional compilation which can just ignore the printf lines if a flag is set?

Something that, for example, I can do in C by using #IFDEF DEBUG printf .. #ENDIF

Tarry answered 1/9, 2010 at 3:43 Comment(0)
C
7

What you are looking for can be found in camlp4. If you include the predefined macros then you can define flags on the command line using -D (and -U to undef them):

camlp4o pa_macro.cmo -DFOO file.ml

In code it looks like this:

let f x = IFDEF FOO THEN x + 1 ELSE x - 1 END;;
Custombuilt answered 1/9, 2010 at 3:57 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.