This surprises me, since not and make-struct-type are in '#%kernel, they should have this kind of information baked in, without a purity analysis. -Ian ----- Original Message ----- From: "Sam Tobin-Hochstadt" <[email protected]> To: "Neil Toronto" <[email protected]> Cc: "<[email protected]>" <[email protected]> Sent: Tuesday, October 2, 2012 9:44:13 AM GMT -05:00 US/Canada Eastern Subject: Re: [racket-dev] Math library initial commit almost ready; comments on issues welcome
On Mon, Oct 1, 2012 at 9:44 PM, Neil Toronto <[email protected]> wrote: > The only bit that bothers me is the (begin (not (flonum-wrapper? x)) ...) > stuff left lying around after TR's optimizer eliminates the branches in the > expansions of `fw+'. IIRC, they cause futures to sync, but I'm going to > believe that they won't always - or will be optimized away - just so I can > have a decent solution to the typed macro problem. This code is left around because TR can't prove that `not` and `flonum-wrapper?` are pure functions. Eventually, TR should include a purity analysis that can fix this, but it can't do that now. The fact that basically all structure operations are future-unsafe is a bigger issue. I talked to James about it at ICFP, but I don't know what would be required to improve the situation. -- sam th [email protected] _________________________ Racket Developers list: http://lists.racket-lang.org/dev _________________________ Racket Developers list: http://lists.racket-lang.org/dev

