Saw this in another thread here, but the proposed solution didnt work, well
at least the way I understood it.  So ..

In file db-lib.rkt  I have a definition:

(provide db-exec)
(define (db-exec a) ...)


Then in racket

> (enter! "db-user.rkt")


Where db-citation.rkt has

(require "db-lib.rkt")

Now at the read-eval-print prompt I try

(enter! "db-citation.rkt")


And when I do (trace db-exec)  I get the cannot mutate error.  (Surely this
must be a racket 101 type problem.)  So I try to include the module at the
current scope..

rac...@db-citation.rkt> (require "db-lib.rkt")
rac...@db-citation.rkt>     (require racket/trace)
rac...@db-citation.rkt>    (trace db-exec)

rac...@db-citation.rkt> stdin::1130: set!: cannot mutate module-required
identifier in: db-exec


ok, so that doesn't work,  so I start over again.  This time after reading
the thread on this list

From: Vincent St-Amour (stamourv at ccs.neu.edu)
Date: Mon Oct 10 13:49:46 EDT 2011

which concludes by saying 'put the trace in your program that should work',
  so I add this to "db-citation.rkt"

    (require racket/trace)
    (trace db-exec)


And then at the prompt I get the following:

Welcome to Racket v5.2.1.
racket@> (enter! "db-citation.rkt")
db-citation.rkt:26:11: set!: cannot mutate module-required identifier in:
db-exec


Alright, so what is the magic incantation here that allows one to
debug/trace calls in included modules?

Thanks!

Thomas
____________________
  Racket Users list:
  http://lists.racket-lang.org/users

Reply via email to