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: 4000 Reporter:@alainfrisch Assigned to:@garrigue Status: closed (set by @garrigue on 2006-06-26T09:41:54Z) Resolution: fixed Priority: normal Severity: minor Version: 3.09.1 Fixed in version: 3.10+dev Category: ~DO NOT USE (was: OCaml general) Monitored by:@alainfrisch
Bug description
Soit 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
The text was updated successfully, but these errors were encountered:
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.
Original bug ID: 4000
Reporter: @alainfrisch
Assigned to: @garrigue
Status: closed (set by @garrigue on 2006-06-26T09:41:54Z)
Resolution: fixed
Priority: normal
Severity: minor
Version: 3.09.1
Fixed in version: 3.10+dev
Category: ~DO NOT USE (was: OCaml general)
Monitored by: @alainfrisch
Bug description
Soit 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
The text was updated successfully, but these errors were encountered: