Mantis Bug Tracker

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0004000OCamlOCaml generalpublic2006-04-11 16:532006-06-26 11:41
Reporterfrisch 
Assigned Togarrigue 
PrioritynormalSeverityminorReproducibilityalways
StatusclosedResolutionfixed 
PlatformOSOS Version
Product Version3.09.1 
Target VersionFixed in Version3.10+dev 
Summary0004000: Typage sans -rectypes quand une interface a été compilée avec -rectypes: problème et suggestion
DescriptionSoit un module A compilé avec -rectypes et qui définit uniquement:

  type t = t -> t

Alors, si on compile sans -rectypes

 let f x = ((x : A.t), x = [x])

ça marche, mais avec:

 let f x = (x = [x], (x : A.t))

ça échoue.

Le Dogme a été transgressé.

Plus généralement, il faudrait définir ce qu'il se passe lorsqu'une interface compilée -rectypes est utilisée par un module compilé sans -rectypes. Suite à une discussion avec Didier, deux propositions:

- lorsque l'on déroule une abbreviation, vérifier que l'on n'est pas en train d'ouvrir un cycle;

- interdire de compiler un module sans -rectypes s'il utilise une interface compilée avec -rectypes.

-- Alain
TagsNo tags attached.
Attached Files

- Relationships

-  Notes
(0003617)
frisch (developer)
2006-04-16 09:16

Euh, évidemment, c'est "type t = t list"...
(0003618)
garrigue (manager)
2006-04-16 10:14

Je ne vois pas immediatement comment implementer la premiere suggestion (verification de la presence d'un cycle lorsqu'on deroule un abbreviation pre-existente.)
La deuxieme option est evidemment plus simple, et relativement naturelle.
Mais ca peut compliquer les Makefiles.
(0003696)
garrigue (manager)
2006-06-26 11:41

Solved following the second option: -rectypes is now required for compiling
any dependency of an interface compiled with -rectypes.

- Issue History
Date Modified Username Field Change
2006-04-11 16:53 frisch New Issue
2006-04-16 09:16 frisch Note Added: 0003617
2006-04-16 10:14 garrigue Note Added: 0003618
2006-06-23 02:55 garrigue Status new => assigned
2006-06-23 02:55 garrigue Assigned To => garrigue
2006-06-26 11:41 garrigue Status assigned => closed
2006-06-26 11:41 garrigue Note Added: 0003696
2006-06-26 11:41 garrigue Resolution open => fixed
2006-06-26 11:41 garrigue Fixed in Version => 3.10+dev


Copyright © 2000 - 2011 MantisBT Group
Powered by Mantis Bugtracker