Hi, Thanks for the report.
For what it's worth this is fixed in Guile master (2.1.x, will be 2.2, Real Soon Now). It's a little hard to fix in 2.0 though. We would have to rewrite some pieces of the evaluator and the "memoizer", a part of Guile's interpreter. (Guile 2.2 already has these rewrites but it can't be ported back.) I don't think I will have time to do this, sadly. I am closing this one based on the guess that I don't think we will get to this in 2.0, though I would be happy to accept a fix if someone found a way to do it :) Please re-open or file a new bug if you or someone you know will be able to work on a fix for 2.0. Andy On Mon 06 Oct 2014 21:04, Marko Rauhamaa <ma...@pacujo.net> writes: > Consider this program (guile-2.0.11 under Fedora 20): > > ===begin test.scm======================================================= > (define (hello) #f) > (format #t "~S\n" (procedure-name hello)) > > (define (xyz) > (define (hello) #f) > (format #t "~S\n" (procedure-name hello))) > > (xyz) > ===end test.scm========================================================= > > If I run: > > $ guile --no-auto-compile test.scm > hello > #f > $ guile --no-auto-compile test.scm > hello > #f > $ guile test.scm > ;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0 > ;;; or pass the --no-auto-compile argument to disable. > [...] > hello > hello > $ guile test.scm > hello > hello > $ guile --no-auto-compile test.scm > hello > hello > > > Marko