Update: No so good news, my idea of yesterday was slightly wrong. I
think it causes no errors, but it makes the compiler pessimistic and
it avoid some optimizations. I found another fix, but I want to test
it more before submitting the patch.
More details:
In some cases, the optimizer reoptimize
On Jul 14, 2015, at 20:19, Gustavo Massaccesi gust...@oma.org.ar wrote:
Replacing the line 1758 of optimize.c
- if ((info-inline_fuel 0) info-has_nonleaf !noapp)
+ if ((info-inline_fuel = 0) info-has_nonleaf !noapp)
make the problem disappear, but I still don't understand why
No, I don't think that this can be made to work with the current
sub-range-binders. The way DrRacket thinks about this is that those
are two different binders (symb and symb?), and you are renaming
either one of them or the other one. It can't connect them the way you
are seeming to want to
So then, out of curiosity, how does it do this for structs? (I thought it
was using sub-range-binders there.)
For example:
If I have the program:
#lang racket
(struct foo (bar))
(define x (foo 2))
(foo-bar x)
I can use the rename tool to rename bar to baz and get:
#lang racket
(struct foo
Oh, I understand Jens Axel to be doing something more subtle than
that. In particular, in his example check syntax sees two distinct
identifiers (sym and sym?) that have overlapping ranges. When you
rename one, it just renames that one and hopes for the best. (Well, to
see what it actually does,
Oh, okay, that makes complete sense. Thanks.
~Leif Andersen
On Wed, Jul 15, 2015 at 4:24 PM, Robby Findler ro...@eecs.northwestern.edu
wrote:
Oh, I understand Jens Axel to be doing something more subtle than
that. In particular, in his example check syntax sees two distinct
identifiers (sym
6 matches
Mail list logo