[ocaml-platform] [Caml-list] Package compilation and debug mode

Mark Shinwell mshinwell at janestreet.com
Mon Mar 14 08:02:59 GMT 2016


I think there is a penalty (albeit a lesser one) with -g even if
OCAMLRUNPARAM does not contain "b".  Raising an exception from OCaml
code causes a function call, which it does not otherwise.

Mark

On 14 March 2016 at 08:14, whitequark <whitequark at whitequark.org> wrote:
> On 2016-03-14 10:19, Mark Shinwell wrote:
>>
>> There is a performance penalty with -g: it makes the raising of
>> exceptions slower (due to recording of backtraces).   I think that may
>> be the only difference at present, though I'm not completely sure.
>
>
> This penalty is only present with OCAMLRUNPARAM=b, which is now on by
> default. This is a good thing, because lack of backtraces is something
> 100% of newcomers trip over; and anyone who dislikes the penalty
> can trivially turn it off.
>
> However, -g also inhibits some optimizations along with adding debug info.
> So it is still not free.
>
> IMO there should be another option, something like -debug-info, that is
> equivalent to -g but does not inhibit any optimizations. Then it would
> be enabled by default.
>
>
>>
>> Mark
>>
>> On 13 March 2016 at 19:16, Ivan Gotovchits <ivg at ieee.org> wrote:
>>>
>>> It looks like, that currently the `-g` option has no performance cost at
>>> all (correct me if I’m wrong). Presumably, there is some increase in the
>>> package size, but who cares. With these premises, I think it would be a good
>>> policy to distribute packages with `-g` flag enabled.
>>>
>>>> On Mar 12, 2016, at 4:35 PM, Daniel Bünzli <daniel.buenzli at erratique.ch>
>>>> wrote:
>>>>
>>>> Hello,
>>>>
>>>> I'd like to know what the consensus is about distributing packages that
>>>> always compile in debug mode. It seems that some persons do want to have
>>>> debug always enabled [1,2], but the discussion is not clear cut [1].
>>>>
>>>> By default all my packages are released with -g disabled. It seems easy
>>>> enough to have an opam switch (even the official one) that automatically
>>>> enables the flag.
>>>>
>>>> So I think OCaml's opam repository should have a policy here. The answer
>>>> should also take system package managers into account since those pull
>>>> directly from the tarballs (if this document [3] is still in use for debian
>>>> it seems they do require compilation with debug mode).
>>>>
>>>> Personally I don't have an opinion about it, I'm rather seeking an
>>>> answer here.
>>>>
>>>> Best,
>>>>
>>>> Daniel
>>>>
>>>> [1] http://caml.inria.fr/mantis/view.php?id=6728
>>>> [2] http://rgrinberg.com/blog/2016/02/26/opam-package-checklist/
>>>> [3]
>>>> http://pkg-ocaml-maint.alioth.debian.org/ocaml_packaging_policy.html/c305.html#AEN307
>>>>
>>>>
>>>>
>>>> --
>>>> Caml-list mailing list.  Subscription management and archives:
>>>> https://sympa.inria.fr/sympa/arc/caml-list
>>>> Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
>>>> Bug reports: http://caml.inria.fr/bin/caml-bugs
>>>
>>>
>>>
>>> --
>>> Caml-list mailing list.  Subscription management and archives:
>>> https://sympa.inria.fr/sympa/arc/caml-list
>>> Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
>>> Bug reports: http://caml.inria.fr/bin/caml-bugs
>
>
> --
> whitequark


More information about the Platform mailing list