Version française
Home     About     Download     Resources     Contact us    
Browse thread
[Caml-list] Parametric and recursive classes and exponential typing
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
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