emacs-bug-tracker
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debbugs-tracker] bug#18646: closed (procedure-name fails for inner proc


From: GNU bug Tracking System
Subject: [debbugs-tracker] bug#18646: closed (procedure-name fails for inner procedures with primitive-eval)
Date: Wed, 22 Jun 2016 08:20:01 +0000

Your message dated Wed, 22 Jun 2016 10:19:47 +0200
with message-id <address@hidden>
and subject line Re: bug#18646: procedure-name bug
has caused the debbugs.gnu.org bug report #18646,
regarding procedure-name fails for inner procedures with primitive-eval
to be marked as done.

(If you believe you have received this mail in error, please contact
address@hidden)


-- 
18646: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=18646
GNU Bug Tracking System
Contact address@hidden with problems
--- Begin Message --- 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



--- End Message ---
--- Begin Message --- Subject: Re: bug#18646: procedure-name bug Date: Wed, 22 Jun 2016 10:19:47 +0200 User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux)
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 <address@hidden> 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


--- End Message ---

reply via email to

[Prev in Thread] Current Thread [Next in Thread]