Unfortunately I&#39;m an emacs acolyte + Geiser and as a result was not getting the zos built that DrRacket would have given me for free.  So the slow down I experienced were more than what they would be for most people.  Self induced issue.  Ultimately I pushed down a lot of the &quot;standard&quot; code into several raco linked local planet libs and as they stabilized started raco fileinject&#39;ing them locally.  This helped quite a bit.<div>
<br></div><div>Somehow I missed &#39;raco make&#39; to build the core non-lib code.  Thanks for that one.  <br><div><br></div><div>Ray</div><div><br><div class="gmail_quote">On Tue, May 24, 2011 at 8:12 PM, Robby Findler <span dir="ltr">&lt;<a href="mailto:robby@eecs.northwestern.edu">robby@eecs.northwestern.edu</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">DrRacket does this automatically.<br>
<br>
But the default settings will make .zo files with debugging on --<br>
maybe there is some bad Typed Racket / errortrace interaction that<br>
slows down compilation significantly?<br>
<font color="#888888"><br>
Robby<br>
</font><div><div></div><div class="h5"><br>
On Tue, May 24, 2011 at 6:23 PM, Sam Tobin-Hochstadt &lt;<a href="mailto:samth@ccs.neu.edu">samth@ccs.neu.edu</a>&gt; wrote:<br>
&gt; Ray -<br>
&gt;<br>
&gt; Thanks for the happy story!<br>
&gt;<br>
&gt; As for compile times, what I typically do is use `raco make&#39; on the<br>
&gt; command line to compile things, which means that typechecking doesn&#39;t<br>
&gt; have to happen repeatedly.  For a 10k line project, I would expect<br>
&gt; this to make a substantial difference when changing files at the<br>
&gt; leaves of the hierarchy.  For the root of the hierarchy, there&#39;s not<br>
&gt; much to be done with the current architecture of Racket other than<br>
&gt; making Typed Racket faster (which we&#39;re working on).<br>
&gt;<br>
&gt; On Tue, May 24, 2011 at 4:09 PM, Ray Racine &lt;<a href="mailto:ray.racine@gmail.com">ray.racine@gmail.com</a>&gt; wrote:<br>
&gt;&gt; This weekend I completed a 3 weekend exercise converting just short of 10K<br>
&gt;&gt; wc -l lines of racket code.  All told it took 3 weekends to get there.  I<br>
&gt;&gt; did it because it appears 10K lines is about my conceptual limit given my<br>
&gt;&gt; slovenly documentation habits.<br>
&gt;&gt; The old code worked just fine, however it was no longer readily apparent to<br>
&gt;&gt; my why this should be the case.<br>
&gt;&gt; Some observations:<br>
&gt;&gt;<br>
&gt;&gt; 95% of the time adding signatures was very straight forward.<br>
&gt;&gt; In &lt;2% I had some difficulties, some self inflicted, some hitting some rough<br>
&gt;&gt; areas where things are not yet competed in typed Racket, I was always able<br>
&gt;&gt; to come up with something that worked.<br>
&gt;&gt; Was surprised by the number of sunny day assumptions in my original code<br>
&gt;&gt;  Typing forced me to handle all &quot;cases&quot;.  The code is now more robust then<br>
&gt;&gt; before.<br>
&gt;&gt; The typing syntax overall is really quite good.  It did not come across as<br>
&gt;&gt; an afterthought bolt-on.<br>
&gt;&gt; require/typed works cleanly to &quot;lift&quot; untyped racket code from 3rd party<br>
&gt;&gt; libs into typed land.<br>
&gt;&gt; The time it takes to initially type check a high up in the module hierarchy<br>
&gt;&gt; module does start to impact the development cycle however.<br>
&gt;&gt;<br>
&gt;&gt; Overall the doing and completing of the migration took a pile of code on the<br>
&gt;&gt; verge of anarchy and put it back under control.  I feel confident it could<br>
&gt;&gt; double in size a number of times and remain so.<br>
&gt;&gt; I think typed racket is a huge win.  Controversially, (oh boy) I&#39;d go as far<br>
&gt;&gt; to say Racket should just go 100% typed from bone to guts, top to bottom.<br>
&gt;&gt; Racket - The Programming Language With The (Soon To Be) Most Advanced Type<br>
&gt;&gt; System In The World.  *whew*<br>
&gt;&gt; Who&#39;d a thunk it.<br>
&gt;&gt;<br>
&gt;&gt; _________________________________________________<br>
&gt;&gt;  For list-related administrative tasks:<br>
&gt;&gt;  <a href="http://lists.racket-lang.org/listinfo/users" target="_blank">http://lists.racket-lang.org/listinfo/users</a><br>
&gt;&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; --<br>
&gt; sam th<br>
&gt; <a href="mailto:samth@ccs.neu.edu">samth@ccs.neu.edu</a><br>
&gt;<br>
&gt; _________________________________________________<br>
&gt;  For list-related administrative tasks:<br>
&gt;  <a href="http://lists.racket-lang.org/listinfo/users" target="_blank">http://lists.racket-lang.org/listinfo/users</a><br>
&gt;<br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>The object of life is not to be on the side of the majority, but to escape finding oneself in the ranks of the insane. - Marcus Aurelius <br>
</div></div>