mjambon/cppo — Issue #1: request: automatic macro for reporting current function definition in error messages
Author: mjambon
Created: 2012-01-12 18:50:18+00:00
State: open

The request is about providing something like __FUNCTION__ in cpp but applicable to OCaml, whose purpose would be to provide better error messages by indicating the function or logical section of the program where an error occurs.

I suggested __CONTEXT__, macro the would contain the last contiguous sequence of non-empty, non-indented lines.

On 01/12/2012 01:15 AM, Francois Berenger wrote:
> Bonjour Martin,
>
> Est-ce que ca serait possible d'avoir la macro
> __FUNCTION__ traitee par cppo?

Non, mais je note la requete.

> En C cette macro existe et est bien pratique
> pour logger des messages detailles (j'ai
> deja compris des bugs sans meme avoir a ouvrir le code source
> des fois grace a ca dans de gros softs en C),
> elle donne le nom de la fonction dans laquelle la macro est placee.
>
> C'est vrai qu'un nom de fichier et un numero de ligne
> c'est pas si explicite que ca tant qu'on n'a pas ouvert
> le fichier source correspondant.

Il pourrait y avoir moyen de reporter les dernieres lignes non-indentees.

Par exemple:

let toto = 5

(* function for doing nothing *)
let nothing x =
let f y = blah y in
f x + 3

Une erreur sur "f x + 3" pourrait reporter les deux lignes suivantes pour indiquer le contexte:

(* function for doing nothing *)
let nothing x =

J'ai l'impression que git fait quelque chose comme ca pour afficher des diffs.

On pourrait mettre ca par exemple dans une macro __CONTEXT__