caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Francois Berenger <francois.berenger@inria.fr>
To: caml-list@inria.fr
Subject: Re: [Caml-list] getting the name of a function from its body
Date: Tue, 02 Jun 2015 10:10:20 +0200	[thread overview]
Message-ID: <556D64EC.7060800@inria.fr> (raw)
In-Reply-To: <CAHvkLrOhmGKq9fDSjqDzsBTiNY_NGzCR1KYOwB3RMk=No0tozA@mail.gmail.com>

On 06/01/2015 11:57 PM, Fabrice Le Fessant wrote:
> The main reason for the absence of __FUNCTION__ is probably that it
> does not really make sense : you might have several functions with the
> same name within the same module :
>
> let f x = x+1
> let f list = List.map f list
>
> It makes sense in C, because you can only define a symbol once in a
> file, so the pair (__FILE__, __FUNCTION__) is uniq (and if the
> function is not static, it is probably even uniq within the
> executable).
>
> In OCaml, it is probably better to use the pair (__FILE__, __LINE__)
> to tell the dev where to search for the problem.

Then, the triplet (__FILE__, __LINE__, __FUNCTION__) is unique in OCaml.

The problem I saw a long time ago while working with people who were not 
programmers (but still scientits)
is that they have more chance to fix an error in one of their input
file when given the function name than when not.

And since I created and maintain a logging library in OCaml, I was (and 
I am still) interested into making log messages as useful as possible to 
end users.

> --Fabrice
>
>
>
>
>
> On Mon, Jun 1, 2015 at 6:36 PM, Gustave Nimant <gustave.nimant@free.fr> wrote:
>> On 01/06/2015 13:46, Fabrice Le Fessant wrote:
>>>
>>> Recent versions of OCaml provide "__LOC__", "__FILE__", "__LINE__",
>>> "__MODULE__" and "__POS__" primitives that can be used to display
>>> precise error messages.
>>>
>>> --Fabrice
>>
>> Thank you for this information I was not aware of.
>> It seems that the functions described in
>> http://caml.inria.fr/pub/docs/manual-ocaml/libref/Pervasives.html
>> do not answer my question :
>> "how to get the name of the current function ?"
>>
>> Do I miss something ?
>>
>>
>> Gustave
>>
>> --
>> 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
>
>
>

-- 
Regards,
Francois.

  reply	other threads:[~2015-06-02  8:10 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-06-01 11:42 Gustave Nimant
2015-06-01 11:46 ` Fabrice Le Fessant
2015-06-01 11:52   ` Gabriel Scherer
2015-06-01 16:36   ` Gustave Nimant
2015-06-01 16:46     ` Francois Berenger
2015-06-01 17:38       ` Gustave Nimant
2015-06-01 18:07         ` Yotam Barnoy
2015-06-01 21:57     ` Fabrice Le Fessant
2015-06-02  8:10       ` Francois Berenger [this message]
2015-06-02  8:21         ` Jacques Garrigue
2015-06-02  8:37           ` Romain Bardou
2015-06-04 18:48         ` Damien Doligez
2015-06-02  8:45       ` Gerd Stolpmann
2015-06-01 14:57 ` [Caml-list] Getting the list of available function within a module Nicolas Ratier

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=556D64EC.7060800@inria.fr \
    --to=francois.berenger@inria.fr \
    --cc=caml-list@inria.fr \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).