bug-guile
[Top][All Lists]
Advanced

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

bug#42574: Probable (system vm trace) bug


From: Prafulla Giri
Subject: bug#42574: Probable (system vm trace) bug
Date: Sat, 1 Aug 2020 18:50:38 +0545

Attached is a patch to fix this issue. I would like to acknowledge RhodiumToad, who actually figured out what was causing this issue.

On Tue, Jul 28, 2020 at 3:23 PM Prafulla Giri <pratheblackdiamond@gmail.com> wrote:
Esteemed Maintainers,

I am quite positive that what I am experiencing is not quite a bug but just some mis-step on my part. But I have been encouraged to report this as a possible bug. Thus, here it is.

Context:
Guile version: 3.0.2 (installed using guix)
Loaded Files: simply.scm (https://github.com/hosoe-masaki/SimplyScheme/blob/master/simply.scm)
Reverse function (referred to in the report, assumes 'simply.scm' has been loaded):
(define (reverse wd) (if (equal? wd "") "" (word (reverse (bf wd)) (first wd))))
;; (reverse 'asdf) -> 'fdsa

This started with my first wanting to run a (trace) of a recursive procedure as seen in Chapter 13 of the book 'Simply Scheme' (https://people.eecs.berkeley.edu/~bh/ssch13/convince-recur.html). I looked for a waay to (trace) in guile, but couldn't find anything except ,trace, which was giving a trace of everything that the function (reverse) called from inside of it, thus making the trace 'polluted'.

I then looked around and found that a (trace) function, much like the one being demonstrated in the book used to exist once in guile: https://www.gnu.org/software/guile/docs/docs-1.8/guile-ref/Tracing.html and then found that for guile3 there was something that looked similarly promising: the (trace-calls-to-procedure) function (https://www.gnu.org/software/guile/docs/master/guile.html/Tracing-Traps.html). However,
> (trace-calls-to-procedure reverse)
> (reverse 'asdf)
fdsa
produced no trace. This led me to ask around IRC for some guidance regarding it. Someone from #emacs suggested I try doing this: http://ix.io/2suZ
When I attempted to do the same thing, however, I encountered the following error, at the sight of which, it was recommended that I file a (possible) bug report: https://termbin.com/6nm5

The following `script` typescript might also be of interest to the maintainers (to be replayed using `scriptreplay`):
typescript - https://termbin.com/sx5o
timing file - https://termbin.com/73ei
(This one records the (call-with-trace) call with both #:call? #f and without the specification).

I must confess, I don't understand a whole lot of this. All I would like to say is that I have a feeling (trace-calls-to-procedure procedure) should have worked like (trace) as shown in chapter 13 section 'trace' in the book (https://people.eecs.berkeley.edu/~bh/ssch13/convince-recur.html); it just seems 'right' by the name of it. I was expecting the trace from (trace-call-to-procedure reverse) (reverse 'asdf) to be basically like ,trace (reverse 'asdf) but without the traces of all other procedures.

Please do let me know if I have left out any important details. And please do let me know if I am doing something wrong here. I am almost quite certain this is just a minor error on my part, rather than a bug (and I'd really like to be able to trace those procedures).

Attachment: 0001-Fix-return-handler-of-trace-calls-to-procedure.patch
Description: Text Data


reply via email to

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