bug#42574: Probable (system vm trace) bug

Prafulla Giri <[email protected]>
Newsgroups gmane.lisp.guile.bugs
Message-ID <CAFw+=j0kzmAQpHLKSm9vuShvK9TMmSaGtZsTqK+Ui-FGUFj8=Q@mail.gmail.com>
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).
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.