GNU bug report logs - #18646
procedure-name fails for inner procedures with primitive-eval

Previous Next

Package: guile;

Reported by: Marko Rauhamaa <marko <at> pacujo.net>

Date: Mon, 6 Oct 2014 19:08:01 UTC

Severity: normal

Done: Andy Wingo <wingo <at> pobox.com>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Marko Rauhamaa <marko <at> pacujo.net>
Subject: bug#18646: closed (Re: bug#18646: procedure-name bug)
Date: Wed, 22 Jun 2016 08:20:01 +0000
[Message part 1 (text/plain, inline)]
Your bug report

#18646: procedure-name fails for inner procedures with primitive-eval

which was filed against the guile package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to 18646 <at> debbugs.gnu.org.

-- 
18646: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=18646
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Andy Wingo <wingo <at> pobox.com>
To: Marko Rauhamaa <marko <at> pacujo.net>
Cc: 18646-done <at> debbugs.gnu.org
Subject: Re: bug#18646: procedure-name bug
Date: Wed, 22 Jun 2016 10:19:47 +0200
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 <marko <at> 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

[Message part 3 (message/rfc822, inline)]
From: Marko Rauhamaa <marko <at> pacujo.net>
To: bug-guile <at> gnu.org
Subject: procedure-name bug
Date: Mon, 06 Oct 2014 22:04:41 +0300
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



This bug report was last modified 9 years and 30 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.