Mantis Bug Tracker

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0000105OCamlOCaml generalpublic2000-04-28 16:082000-05-16 10:45
Reporteradministrator 
Assigned To 
PrioritynormalSeverityminorReproducibilityalways
StatusclosedResolutionfixed 
PlatformOSOS Version
Product Version 
Target VersionFixed in Version 
Summary0000105: BUG ocaml 2.04
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

TagsNo tags attached.
Attached Files

- Relationships

-  Notes
(0000381)
administrator (administrator)
2000-05-16 10:44

> 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.

Merci d'avoir signale le probleme.

- Xavier Leroy
(0000382)
administrator (administrator)
2000-05-16 10:45

Fixed on 2000-05-16 by Xavier. Same bug as PR#112.

- Issue History
Date Modified Username Field Change
2005-11-18 10:13 administrator New Issue


Copyright © 2000 - 2011 MantisBT Group
Powered by Mantis Bugtracker