Subject: bug#15065: guile version 2.0 crashes with a really small number after vm stack overflow error

From: Leonidas Tsampros <[email-masked]>
Date: Sat, 10 Aug 2013 00:09:39 +0300

Transcript from crash session:

$ guile
GNU Guile 2.0.9-deb+1-1
Copyright (C) 1995-2013 Free Software Foundation, Inc.

Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'.
This program is free software, and you are welcome to redistribute it
under certain conditions; type `,show c' for details.

Enter `,help' for help.
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

$ guile -v
guile (GNU Guile) 2.0.9-deb+1-1
Copyright (C) 2013 Free Software Foundation, Inc.

License LGPLv3+: GNU LGPL 3 or later <http://gnu.org/licenses/lgpl.html>.
This is free software: you are free to change and redistribute it.

$ dpkg -l | grep -i guile
ii  guile-2.0                                                   2.0.9+1-1                          amd64        GNU extension language and Scheme interpreter
ii  guile-2.0-doc                                               2.0.9+1-1                          all          Documentation for Guile 2.0
ii  guile-2.0-libs                                              2.0.9+1-1                          amd64        Core Guile libraries

$ ./config.guess
x86_64-unknown-linux-gnu

$ uname -a
Linux kepler 3.9-1-amd64 #1 SMP Debian 3.9.8-1 x86_64 GNU/Linux

Thanks