Unfortunately I'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 "standard" code into several raco linked local planet libs and as they stabilized started raco fileinject'ing them locally. This helped quite a bit.<div>
<br></div><div>Somehow I missed 'raco make' 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"><<a href="mailto:robby@eecs.northwestern.edu">robby@eecs.northwestern.edu</a>></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 <<a href="mailto:samth@ccs.neu.edu">samth@ccs.neu.edu</a>> wrote:<br>
> Ray -<br>
><br>
> Thanks for the happy story!<br>
><br>
> As for compile times, what I typically do is use `raco make' on the<br>
> command line to compile things, which means that typechecking doesn't<br>
> have to happen repeatedly. For a 10k line project, I would expect<br>
> this to make a substantial difference when changing files at the<br>
> leaves of the hierarchy. For the root of the hierarchy, there's not<br>
> much to be done with the current architecture of Racket other than<br>
> making Typed Racket faster (which we're working on).<br>
><br>
> On Tue, May 24, 2011 at 4:09 PM, Ray Racine <<a href="mailto:ray.racine@gmail.com">ray.racine@gmail.com</a>> wrote:<br>
>> This weekend I completed a 3 weekend exercise converting just short of 10K<br>
>> wc -l lines of racket code. All told it took 3 weekends to get there. I<br>
>> did it because it appears 10K lines is about my conceptual limit given my<br>
>> slovenly documentation habits.<br>
>> The old code worked just fine, however it was no longer readily apparent to<br>
>> my why this should be the case.<br>
>> Some observations:<br>
>><br>
>> 95% of the time adding signatures was very straight forward.<br>
>> In <2% I had some difficulties, some self inflicted, some hitting some rough<br>
>> areas where things are not yet competed in typed Racket, I was always able<br>
>> to come up with something that worked.<br>
>> Was surprised by the number of sunny day assumptions in my original code<br>
>> Typing forced me to handle all "cases". The code is now more robust then<br>
>> before.<br>
>> The typing syntax overall is really quite good. It did not come across as<br>
>> an afterthought bolt-on.<br>
>> require/typed works cleanly to "lift" untyped racket code from 3rd party<br>
>> libs into typed land.<br>
>> The time it takes to initially type check a high up in the module hierarchy<br>
>> module does start to impact the development cycle however.<br>
>><br>
>> Overall the doing and completing of the migration took a pile of code on the<br>
>> verge of anarchy and put it back under control. I feel confident it could<br>
>> double in size a number of times and remain so.<br>
>> I think typed racket is a huge win. Controversially, (oh boy) I'd go as far<br>
>> to say Racket should just go 100% typed from bone to guts, top to bottom.<br>
>> Racket - The Programming Language With The (Soon To Be) Most Advanced Type<br>
>> System In The World. *whew*<br>
>> Who'd a thunk it.<br>
>><br>
>> _________________________________________________<br>
>> For list-related administrative tasks:<br>
>> <a href="http://lists.racket-lang.org/listinfo/users" target="_blank">http://lists.racket-lang.org/listinfo/users</a><br>
>><br>
><br>
><br>
><br>
> --<br>
> sam th<br>
> <a href="mailto:samth@ccs.neu.edu">samth@ccs.neu.edu</a><br>
><br>
> _________________________________________________<br>
> For list-related administrative tasks:<br>
> <a href="http://lists.racket-lang.org/listinfo/users" target="_blank">http://lists.racket-lang.org/listinfo/users</a><br>
><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>