Skip to content

request: automatic macro for reporting current function definition in error messages #1

Open
@mjambon

Description

@mjambon

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__, an automatic macro that 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__

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions