Sorry for the delay. It has been a very interesting week in the low
level implementation of Racket. A few days ago, Matthew fixed the bug
and enabled the new expander, and then he fixed most of the problems
that appear with the changes. So now looks like a good time to retry
all the tests and see i
At Wed, 15 Jul 2015 22:48:26 -0300, Gustavo Massaccesi wrote:
> But perhaps the problem is in the code that tracks the single_use
> value. After 'dup' is applied, 'rep' is not long a singled used
> function.
Yes, I think that's the problem. I thunk I have a repair to update
single-use tracking app
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 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
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 "(dup
rep)" is the only combination that creates a problem.
I also wan
I reduced it a little, it's a variation of the old
((lambda (x) (x x)) (lambda (x) (x x)))
but there must be a problem in the inlining fuel.
In my example, the ´dup´ definition is not necessary, but it makes it
more clear. It can be copied by hand to the application point.
I wrapped the example
This appears to be a bug in the inliner, which appears in HEAD as well.
This program is sufficient to reproduce:
#lang racket
(define (Y3 outer)
(define ((call f) x)
((f f) x))
((lambda (f) (f f)) call))
I wasn't able to make this any smaller -- in particular, the `outer`
parameter is n
I'm tired and not thinking straight, but we just finished running the schemer
gauntlet and I decided to dip my toes into the 6.2 release. I can't get it to
run my tests and I need external validation that it's not me doing something
stupid.
git clone https://github.com/searbsg/little-schemer
8 matches
Mail list logo