[racket] Typed Racket - Successful Conversion

From: Ray Racine (ray.racine at gmail.com)
Date: Tue May 24 22:00:34 EDT 2011

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.

Somehow I missed 'raco make' to build the core non-lib code.  Thanks for
that one.

Ray

On Tue, May 24, 2011 at 8:12 PM, Robby Findler
<robby at eecs.northwestern.edu>wrote:

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



-- 
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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/users/archive/attachments/20110524/cdf310e8/attachment.html>

Posted on the users mailing list.