Browse thread
[Caml-list] Parametric and recursive classes and exponential typing
-
Frederic Tronel
-
Jacques Garrigue
- Frederic Tronel
- John Max Skaller
-
Jacques Garrigue
[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: | 2002-06-06 (14:13) |
From: | Frederic Tronel <Frederic.Tronel@i...> |
Subject: | Re: [Caml-list] Parametric and recursive classes and exponentialtyping |
Jacques Garrigue wrote: > > From: Frederic Tronel <Frederic.Tronel@inrialpes.fr> > > > I'm facing the following problem: > > I'm trying to compile a program with a lot of recursive and > > parametric classes. Compilation time is getting longer and longer, > > and the behavior seems rather chaotic. I mean that very small changes in > > the code > > can lead to huge extra compilation time. Is there any solution, am I > > guarantee > > that compilation will end up (more than 23 minutes for a single file > > that is > > not yet compiled !! at the moment). > > Track down single coercions (_ :> t2) and replace them with full ones > (_ : t1 :> t2) as much possible. This improves predictability and > performance. > Ok I'll try it. > > I'm using ocaml 3.04 plus a patch for parametric classes. > > What is your patch? Classes are already parametric, no? A patch posted by Jerome Vouillon on this list to fix bug ID 841 --- typing/ctype.ml~ Thu Jan 31 13:57:23 2002 +++ typing/ctype.ml Thu Jan 31 13:57:25 2002 @@ -1129,6 +1129,7 @@ let create_recursion = (t2 != t2') && (deep_occur t1' t2) in occur env t1' t2; + occur env t1' t2; update_level env t1'.level t2; t1'.desc <- Tlink t2; > > > Should I try the CVS ? > > Probably. As I explained some time ago, a few exponentials have been > tamed recently to linear or quadratic. > Note that now single coercion shouldn't bother you for performance > anymore, but they may be slightly weaker than before in some cases. > I will give it a try. In the mean time, I have suppressed a mutual dependance between two classes, and recover a reasonnable behavior. Best regards, Frederic. ------------------- To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/ Beginner's list: http://groups.yahoo.com/group/ocaml_beginners