Re: [racket-users] Typed/Untyped cost reduction and experience

2016-01-06 Thread Matthias Felleisen
On Jan 5, 2016, at 9:51 PM, Emmanuel Oga wrote: > On Tuesday, January 5, 2016 at 11:12:44 AM UTC-8, Matthias Felleisen wrote: >> TR is intended for people who wish to add types retroactively. > > Not sure I understand this stance: > > * Does this mean if I want to use

Re: [racket-users] Typed/Untyped cost reduction and experience

2016-01-06 Thread Matthias Felleisen
On Jan 6, 2016, at 12:34 AM, JCG wrote: > On Tuesday, January 5, 2016 at 2:12:44 PM UTC-5, Matthias Felleisen wrote: >> Late but I want to record principles and experiences in this thread: >> > >> I don't understand this bullet. Bullet 1 says your code is now completely

Re: [racket-users] Typed/Untyped cost reduction and experience

2016-01-06 Thread Matthias Felleisen
On Jan 6, 2016, at 2:01 PM, JCG wrote: > >> I will say this as the first Racketeer and Typed Racketeer: if you just want >> to program in an explicitly-statically typed language (possibly with >> inference), you might wish to broaden your scope of search. There are

Re: [racket-users] Typed/Untyped cost reduction and experience

2016-01-06 Thread JCG
> I will say this as the first Racketeer and Typed Racketeer: if you just want > to program in an explicitly-statically typed language (possibly with > inference), you might wish to broaden your scope of search. There are other > expressively typed languages that come with good libraries. Most

Re: [racket-users] Typed/Untyped cost reduction and experience

2016-01-06 Thread Sam Tobin-Hochstadt
On Wed, Jan 6, 2016 at 2:01 PM, JCG wrote: > > So, two things come to mind, Racket and SBCL because I've used them before, > and the ML family - Haskell, OCaml, and Scala. Having tried Scala, I like > the language but the associated environmental baggage appeared heavy

Re: [racket-users] Typed/Untyped cost reduction and experience

2016-01-06 Thread Emmanuel Oga
On Wednesday, January 6, 2016 at 11:01:56 AM UTC-8, JCG wrote: > > I will say this as the first Racketeer and Typed Racketeer: if you just > > want to program in an explicitly-statically typed language (possibly with > > inference), you might wish to broaden your scope of search. There are other

Re: [racket-users] Typed/Untyped cost reduction and experience

2016-01-05 Thread Matthias Felleisen
Late but I want to record principles and experiences in this thread: On Dec 26, 2015, at 6:52 PM, JCG wrote: > Having just converted a server process of about 1800 lines of untyped Racket > to 1900 lines of typed Racket, I'd like to make some comments > > 1) I highly

Re: [racket-users] Typed/Untyped cost reduction and experience

2016-01-05 Thread Emmanuel Oga
On Tuesday, January 5, 2016 at 11:12:44 AM UTC-8, Matthias Felleisen wrote: > TR is intended for people who wish to add types retroactively. Not sure I understand this stance: * Does this mean if I want to use types proactively, TR is not a recommended PL? * Or maybe it means adding types

Re: [racket-users] Typed/Untyped cost reduction and experience

2016-01-05 Thread JCG
On Tuesday, January 5, 2016 at 2:12:44 PM UTC-5, Matthias Felleisen wrote: > Late but I want to record principles and experiences in this thread: > > I don't understand this bullet. Bullet 1 says your code is now completely > typed. Our experience is that completely typed versions are about as

Re: [racket-users] Typed/Untyped cost reduction and experience

2016-01-05 Thread Hendrik Boom
On Tue, Jan 05, 2016 at 06:51:33PM -0800, Emmanuel Oga wrote: > On Tuesday, January 5, 2016 at 11:12:44 AM UTC-8, Matthias Felleisen wrote: > > TR is intended for people who wish to add types retroactively. > > Not sure I understand this stance: > > * Does this mean if I want to use types

Re: [racket-users] Typed/Untyped cost reduction and experience

2015-12-29 Thread Benjamin Greenman
Is the server code online anywhere? I'd like to see what the boundary contracts are. Let me know if starting typed works for a future project. So far, I've had the best experience starting untyped but keeping type annotations in comments -- basically like no-check, but without annotations on

Re: [racket-users] Typed/Untyped cost reduction and experience

2015-12-29 Thread JCG
Sorry, there's no publicly available code involved with the project. Seeing all the options, I believe that my favorite one is to type only at the border of my code, leaving the implementation in untyped Racket. By dropping the contract cost, code still goes fast, and the borders are

Re: [racket-users] Typed/Untyped cost reduction and experience

2015-12-29 Thread Benjamin Greenman
On Tue, Dec 29, 2015 at 7:05 PM, JCG wrote: > If I understand this correctly, the unsafe version will perform the same > static checks on callers of the functions published by (provide) but not > incur contract cost. Yep, that's right. #lang typed/racket/base (require

Re: [racket-users] Typed/Untyped cost reduction and experience

2015-12-29 Thread Robby Findler
Just as a word of caution here: with a different set of type annotations, that program could go from a runtime error to a segfault. You probably also want to at least disable TR's optimizations when you do this. Robby On Tue, Dec 29, 2015 at 6:13 PM, Benjamin Greenman

[racket-users] Typed/Untyped cost reduction and experience

2015-12-26 Thread JCG
Having just converted a server process of about 1800 lines of untyped Racket to 1900 lines of typed Racket, I'd like to make some comments 1) I highly suggest starting in Typed Racket if you are going to go end up there. I made the mistake of writing it untyped and then retrofitting which

Re: [racket-users] Typed/Untyped cost reduction and experience

2015-12-26 Thread Asumu Takikawa
On 2015-12-26 15:52:38 -0800, JCG wrote: > 3) The end-product appears to be a 50%-performance hybrid due to boundary > contracts, but ameliorated runtime-wise by utilizing the > typed/racket/no-check language after it's all working in type checked mode. If you're using Racket v6.3, another way

Re: [racket-users] Typed/Untyped cost reduction and experience

2015-12-26 Thread JCG
On Saturday, December 26, 2015 at 9:14:10 PM UTC-5, Asumu Takikawa wrote: > > That way at least your types won't bitrot as much. Note that as the name > indicates, this is potentially less safe than untyped Racket if the TR > optimizer is on. > > (you could also write a wrapper macro that