[Re-adding dev] Did you observe similar increases with the previous version of Racket (i.e. before my fix)? Maybe with previous versions of your program (that didn't trigger the SC bug you reported earlier).
The fix I pushed *does* reduce the caching done during contract generation, which could explain a performance regression. But if the fix caused the program to go from "erroring" to "taking a long time to compile", the fix may just have uncovered an existing performance issue that the error was masking. The question at this point is: where is that time being spent? To find out: - Start without any compiled files for your program (i.e. clear out the relevant `compiled` directories) - Run: PLTSTDERR=debug@tr-timing raco make my-program.rkt That should dump some timing info that shows where time is being spent in TR. Depending on the results, there may be different solutions. Vincent On Wed, 09 Sep 2015 04:12:33 -0500, Antonio Leitao wrote: > > Hi Vincent, > > It seems that we now have a different problem. I tried a recent snapshot > (6.2.900.15--2015-09-08(5f2d44c/a)) and although that bug is no longer > present, it now takes forever to typecheck my code. > > I have a type definition that looks like > > (define-type (Foo T) (U (s1 T) (s2 T) (s3 T) ...)) > > where the s1, s2, ... are struct types, and I have a very small number > of polymorphic functions that accept a (Foo T). Now, if I comment all > but one of the (si T) in the Foo type definition, it takes 17 seconds > from pressing the Run button in DrRacket (background expansion disabled) > till the prompt appears in the REPL, which is already a long (but > acceptable) amount of time. > > However, if I incrementally "uncover" additional (si T) in the Foo type > definition, I get the following times (the column on the left is the > number of (si T) visible in the Foo type definition): > > 1 - 17s > 2 - 19s > 3 - 20s > 4 - 21s > 5 - 25s > 6 - 44s > 7 - 113s > 8 - ran out of memory, after 195s > > Note that these rough timings were obtained in a very fast desktop. > > Any ideas? > > Best, > António. -- You received this message because you are subscribed to the Google Groups "Racket Developers" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-dev+unsubscr...@googlegroups.com. To post to this group, send email to racket-dev@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-dev/m24mj3dyct.wl-stamourv%40eecs.northwestern.edu. For more options, visit https://groups.google.com/d/optout.