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: 105 Reporter: administrator Status: closed Resolution: fixed Priority: normal Severity: minor Category: ~DO NOT USE (was: OCaml general)
Bug description
J'obtient une erreur Stack overflow au moment de la compilation du fichier
f3.ml. A vue de nez, le problème semble venir d'une mauvaise gestion des
contextes des expressions << with type t >> dans les fichiers .mli. La
compilation se passe sans problèmes des que je renomme le type F2.t ou que
j'inline le fichier f1.mli dans f2.mli.
J'utilise le compilo ocaml-2.04 sous SunOS 5.6
J'avais déjà rencontré ce problème avec un version antérieur d'ocaml (sans
doute 2.02). Je n'ai pas encore testé la 3.00.
Yann Coscoy
PS: Je tiens à l'homonymie de type. 95% de mes types s'appellent t.
----- Fichier f1.mli
module type A =
sig
type t
val f : t
end
module type B =
sig
type t
val f : t
end
----- Fichier f2.mli
type t
module A : F1.A with type t = t
module B : F1.B with type t = t
J'obtient une erreur Stack overflow au moment de la compilation du fichier
f3.ml. A vue de nez, le probl=E8me semble venir d'une mauvaise gestion des
contextes des expressions << with type t >> dans les fichiers .mli. La
compilation se passe sans probl=E8mes des que je renomme le type F2.t
ou que j'inline le fichier f1.mli dans f2.mli.
En effet, c'est un bug dans une operation de substitution sur les types
de modules, qui conduit dans certain cas a la creation d'abreviations
de types cycliques type t = t, qui font boucler le typage.
Le bug est corrige dans la version de travail d'OCaml.
Original bug ID: 105
Reporter: administrator
Status: closed
Resolution: fixed
Priority: normal
Severity: minor
Category: ~DO NOT USE (was: OCaml general)
Bug description
J'obtient une erreur Stack overflow au moment de la compilation du fichier
f3.ml. A vue de nez, le problème semble venir d'une mauvaise gestion des
contextes des expressions << with type t >> dans les fichiers .mli. La
compilation se passe sans problèmes des que je renomme le type F2.t ou que
j'inline le fichier f1.mli dans f2.mli.
J'utilise le compilo ocaml-2.04 sous SunOS 5.6
J'avais déjà rencontré ce problème avec un version antérieur d'ocaml (sans
doute 2.02). Je n'ai pas encore testé la 3.00.
Yann Coscoy
PS: Je tiens à l'homonymie de type. 95% de mes types s'appellent t.
----- Fichier f1.mli
module type A =
sig
type t
val f : t
end
module type B =
sig
type t
val f : t
end
----- Fichier f2.mli
type t
module A : F1.A with type t = t
module B : F1.B with type t = t
----- Fichier f3.ml
F2.A.f = F2.B.f
----- Fichier Makefile
test:
ocamlc -c f1.mli
ocamlc -c f2.mli
ocamlc -c f3.ml
Yann Coscoy
Informatique CDC - Direction des Techniques Avancées
4, rue Berthollet
94110 Arcueil
Tél. : 01 40 49 15 28
Fax. : 01 40 49 15 78
e-mail : Yann.Coscoy@icdc.caissedesdepots.fr
The text was updated successfully, but these errors were encountered: