You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Original bug ID: 360 Reporter: administrator Status: closed Resolution: fixed Priority: normal Severity: minor Category: ~DO NOT USE (was: OCaml general)
Bug description
Bonjour,
Je pense qu'un bug est mis en évidence dans la simple session
suivante (le mesage d'erreur du compilateur me semble injustifié):
/rinderkn/OCaml> ocaml -rectypes
Objective Caml version 3.01
class ['a] c = object end;;
class ['a] c : object end
type 'a t = K of 'a;;
type 'a t = K of 'a
class d = ['a t as 'a] c;;
Characters 11-21:
Already bound type parameter a
type u = 'a t as 'a;;
type u = 'a t as 'a
class d = [u] c;;
class d : [u] c
Le même problème peut apparaître sans l'option -rectypes en utilisant
les variantes polymorphes:
/rinderkn/OCaml> ocaml
Objective Caml version 3.01
class ['a] c = object end;;
class ['a] c : object end
type 'a t = [`K of 'a];;
type 'a t = [ `K of 'a]
class d = ['a t as 'a] c;;
Characters 11-21:
Already bound type parameter a
type u = 'a t as 'a;;
type u = 'a t as 'a
class d = [u] c;;
class d : [u] c
Voilà. Tenez-moi au courant.
À part ça, j'avais posté récemment un autre rapport de possible bug à caml@inria.fr, mais il me semble maintenant que j'aurais dû en fait
l'adresser à caml-bugs@pauillac.inria.fr, donc, dans le doute, je
copie ci-après mon premier message --- pardon pour l'éventuelle
redite.
Il me semble que le comportement suivant met en évidence une
bizarrerie lexico-syntaxique:
Objective Caml version 3.01
module type S = sig val f : [< `A of <m : unit -> unit; ..>] -> unit end;;
Characters 58-60:
Syntax error: 'end' expected
Characters 16-19:
This 'sig' might be unmatched
Peut-être l'analyseur croit-il analyser un flux... En tout état de
cause, une espace supplémentaire permet de résoudre le problème, mais
néanmoins ce genre de truc s'ajoute à ceux pour ( * ) et consorts:
module type S = sig val f : [< `A of <m : unit -> unit; ..> ] -> unit end;;
module type S = sig val f : [< `A of < m : unit -> unit; .. >] -> unit end
Indépendemment de la convention lexicale nécessaire, le résultat
imprimé du typeur n'est pas syntaxiquement correct (d'où mon mail).
D'autre part, je trouve bizarre l'erreur suivante:
let _ : bool = true;;
Characters 6-7:
Syntax error
Amitiés à tous,
--
Christian
Christian Rinderknecht Phone +33 (0)1 60 76 44 43
Institut National des Télécommunications Fax +33 (0)1 60 76 47 11
Département Logiciels Réseaux (LOR) WWW
9, Rue Charles Fourier, F-91011 Évry Cedex
Return-Path:
Received: from (rinderkn@localhost)
by hugo.int-evry.fr (8.8.8/jtpda-5.3) id RAA08734
; Wed, 9 May 2001 17:57:20 +0200 (MET DST)
Date: Wed, 9 May 2001 17:57:20 +0200
From: Christian RINDERKNECHT rinderkn@hugo.int-evry.fr
To: caml@inria.fr
Cc: Christian RINDERKNECHT rinderkn@hugo.int-evry.fr
Subject: Deux bizarreries suspectes
Message-ID: 20010509175720.G6480@hugo.int-evry.fr
X-Mailer: Mutt 0.95.5i
Mime-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain; charset=iso-8859-1
Salut,
Il me semble que le comportement suivant met en évidence une
bizarrerie lexico-syntaxique:
Objective Caml version 3.01
module type S = sig val f : [< `A of <m : unit -> unit; ..>] -> unit end;;
Characters 58-60:
Syntax error: 'end' expected
Characters 16-19:
This 'sig' might be unmatched
Peut-être l'analyseur croit-il analyser un flux... En tout état de
cause, une espace supplémentaire permet de résoudre le problème, mais
néanmoins ce genre de truc s'ajoute à ceux pour ( * ) et consorts:
module type S = sig val f : [< `A of <m : unit -> unit; ..> ] -> unit end;;
module type S = sig val f : [< `A of < m : unit -> unit; .. >] -> unit end
Indépendemment de la convention lexicale nécessaire, le résultat
imprimé du typeur n'est pas syntaxiquement correct (d'où mon mail).
D'autre part, je trouve bizarre l'erreur suivante:
let _ : bool = true;;
Characters 6-7:
Syntax error
Amitiés,
--
Christian
Christian Rinderknecht Phone +33 (0)1 60 76 44 43
Institut National des Télécommunications Fax +33 (0)1 60 76 47 11
Département Logiciels Réseaux (LOR) WWW
9, Rue Charles Fourier, F-91011 Évry Cedex
The text was updated successfully, but these errors were encountered:
Je pense qu'un bug est mis en évidence dans la simple session
suivante (le mesage d'erreur du compilateur me semble injustifié):
Bon, nous allons regarder ça.
À part ça, j'avais posté récemment un autre rapport de possible bug à caml@inria.fr, mais il me semble maintenant que j'aurais dû en fait
l'adresser à caml-bugs@pauillac.inria.fr, donc, dans le doute, je
copie ci-après mon premier message --- pardon pour l'éventuelle
redite.
Il me semble que le comportement suivant met en évidence une
bizarrerie lexico-syntaxique:
Objective Caml version 3.01
module type S = sig val f : [< `A of <m : unit -> unit; ..>] -> unit end;;
Characters 58-60:
Syntax error: 'end' expected
Characters 16-19:
This 'sig' might be unmatched
Oui, j'ai bien vu ton premier message, mais il n'y a pas grand-chose à
dire: [< et >] sont en effet des tokens (pour les streams), et la
séparation lexer/parser et la règle du longest match font que l'erreur
de syntaxe est ici inévitable.
Indépendemment de la convention lexicale nécessaire, le résultat
imprimé du typeur n'est pas syntaxiquement correct (d'où mon mail).
Oui, ça arrive. Bonjour le boulot pour corriger cela...
D'autre part, je trouve bizarre l'erreur suivante:
let _ : bool = true;;
Characters 6-7:
Syntax error
D'après la grammaire actuelle d'OCaml, les contraintes de types dans
les patterns doivent être parenthésées, i.e. (pat : typ) est un
pattern, mais pas pat : typ. Je ne me souviens plus de la raison de
cette syntaxe. Mais c'est vrai que c'est légèrement bizarre en
comparaison avec
let id : typ = exp
qui est accepté (via une règle spéciale de parsing).
Original bug ID: 360
Reporter: administrator
Status: closed
Resolution: fixed
Priority: normal
Severity: minor
Category: ~DO NOT USE (was: OCaml general)
Bug description
Bonjour,
Je pense qu'un bug est mis en évidence dans la simple session
suivante (le mesage d'erreur du compilateur me semble injustifié):
/rinderkn/OCaml> ocaml -rectypes
Objective Caml version 3.01
class ['a] c = object end;;
class ['a] c : object end
type 'a t = K of 'a;;
type 'a t = K of 'a
class d = ['a t as 'a] c;;
Characters 11-21:
Already bound type parameter a
type u = 'a t as 'a;;
type u = 'a t as 'a
class d = [u] c;;
class d : [u] c
Le même problème peut apparaître sans l'option -rectypes en utilisant
les variantes polymorphes:
/rinderkn/OCaml> ocaml
Objective Caml version 3.01
class ['a] c = object end;;
class ['a] c : object end
type 'a t = [`K of 'a];;
type 'a t = [ `K of 'a]
class d = ['a t as 'a] c;;
Characters 11-21:
Already bound type parameter a
type u = 'a t as 'a;;
type u = 'a t as 'a
class d = [u] c;;
class d : [u] c
Voilà. Tenez-moi au courant.
À part ça, j'avais posté récemment un autre rapport de possible bug à
caml@inria.fr, mais il me semble maintenant que j'aurais dû en fait
l'adresser à caml-bugs@pauillac.inria.fr, donc, dans le doute, je
copie ci-après mon premier message --- pardon pour l'éventuelle
redite.
Date: Wed, 9 May 2001 17:57:20 +0200
From: Christian RINDERKNECHT rinderkn@hugo.int-evry.fr
To: caml@inria.fr
Subject: Deux bizarreries suspectes
Salut,
Il me semble que le comportement suivant met en évidence une
bizarrerie lexico-syntaxique:
module type S = sig val f : [< `A of <m : unit -> unit; ..>] -> unit end;;
Characters 58-60:
Syntax error: 'end' expected
Characters 16-19:
This 'sig' might be unmatched
Peut-être l'analyseur croit-il analyser un flux... En tout état de
cause, une espace supplémentaire permet de résoudre le problème, mais
néanmoins ce genre de truc s'ajoute à ceux pour ( * ) et consorts:
module type S = sig val f : [< `A of <m : unit -> unit; ..> ] -> unit end;;
module type S = sig val f : [< `A of < m : unit -> unit; .. >] -> unit end
Indépendemment de la convention lexicale nécessaire, le résultat
imprimé du typeur n'est pas syntaxiquement correct (d'où mon mail).
D'autre part, je trouve bizarre l'erreur suivante:
let _ : bool = true;;
Characters 6-7:
Syntax error
Amitiés à tous,
--
Christian
Christian Rinderknecht Phone +33 (0)1 60 76 44 43
Institut National des Télécommunications Fax +33 (0)1 60 76 47 11
Département Logiciels Réseaux (LOR) WWW
9, Rue Charles Fourier, F-91011 Évry Cedex
Return-Path:
Received: from (rinderkn@localhost)
by hugo.int-evry.fr (8.8.8/jtpda-5.3) id RAA08734
; Wed, 9 May 2001 17:57:20 +0200 (MET DST)
Date: Wed, 9 May 2001 17:57:20 +0200
From: Christian RINDERKNECHT rinderkn@hugo.int-evry.fr
To: caml@inria.fr
Cc: Christian RINDERKNECHT rinderkn@hugo.int-evry.fr
Subject: Deux bizarreries suspectes
Message-ID: 20010509175720.G6480@hugo.int-evry.fr
X-Mailer: Mutt 0.95.5i
Mime-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain; charset=iso-8859-1
Salut,
Il me semble que le comportement suivant met en évidence une
bizarrerie lexico-syntaxique:
module type S = sig val f : [< `A of <m : unit -> unit; ..>] -> unit end;;
Characters 58-60:
Syntax error: 'end' expected
Characters 16-19:
This 'sig' might be unmatched
Peut-être l'analyseur croit-il analyser un flux... En tout état de
cause, une espace supplémentaire permet de résoudre le problème, mais
néanmoins ce genre de truc s'ajoute à ceux pour ( * ) et consorts:
module type S = sig val f : [< `A of <m : unit -> unit; ..> ] -> unit end;;
module type S = sig val f : [< `A of < m : unit -> unit; .. >] -> unit end
Indépendemment de la convention lexicale nécessaire, le résultat
imprimé du typeur n'est pas syntaxiquement correct (d'où mon mail).
D'autre part, je trouve bizarre l'erreur suivante:
let _ : bool = true;;
Characters 6-7:
Syntax error
Amitiés,
--
Christian
Christian Rinderknecht Phone +33 (0)1 60 76 44 43
Institut National des Télécommunications Fax +33 (0)1 60 76 47 11
Département Logiciels Réseaux (LOR) WWW
9, Rue Charles Fourier, F-91011 Évry Cedex
The text was updated successfully, but these errors were encountered: