Leonidas Tsampros <[email protected]> writes:

> scheme@(guile-user)> (define (cube x)
>   (* x x x))
> scheme@(guile-user)> (define (sum term a next b)
>   (if (> a b)
>       0
>       (+ (term a)
>        (sum term (next a) next b))))
> scheme@(guile-user)> (define (integral f a b dx)
>   (define (add-dx x) (+ x dx))
>   (* (sum f (+ a (/ dx 2.0)) add-dx b)
>      dx))
> scheme@(guile-user)> (integral cube 0.0 1.0 0.01)
> $1 = 0.24998750000000042
> scheme@(guile-user)> (integral cube 0.0 1.0 0.001)
> $2 = 0.249999875000001
> scheme@(guile-user)> (integral cube 0.0 1.0 0.0001)
> <unnamed port>:1:0: In procedure cube:
> <unnamed port>:1:0: Throw to key `vm-error' with args `(vm-run "VM: Stack 
> overflow" ())'.
>
> Entering a new prompt.  Type `,bt' for a backtrace or `,q' to continue.
> scheme@(guile-user) [1]> ,q
> scheme@(guile-user)> (integral cube 0.0 1.0 0.000001)
> Aborted

This is now fixed in the git repository, and will be in Guile 2.0.10.

http://git.savannah.gnu.org/gitweb/?p=guile.git;a=commitdiff;h=70057f3408f8bb469941fa3ab497076ec8f2a117

I'm closing this bug.

     Thanks!
       Mark



Reply via email to