[gambit-list] What variables are not optimized away by (declare (not optimize-dead-local-variables))?

Mikael mikael.rcv at gmail.com
Fri Aug 12 13:23:17 EDT 2011


Dear Marc,

If I got the manual right, the object file below is compiled in such a way
that the (not optimize-dead-local-variables) is completely effective. Even
so, the c variable is not reproduced by ,be .

Regarding this I wonder, in this example is this option enabled as it should
(I suppose so), and if so, approx what variables are not optimized away when
this declare is enabled? (I mean, now that c was optimized away, approx
which can be expected not to be optimized away.)

If there is some way to get /virtually/ all dead variables not optimized
away also in compiled mode it would be very valuable.

Thanks,
Mikael

$ cat a.scm
(declare (not optimize-dead-local-variables))
(define (b)
(let ((c 5))
c
(/ 0 0)
7))
$ gsc
Gambit v4.5.3

> (compile-file "a.scm" options: '(debug))
"/tmp/a.o1"
> (load "a.o1")
"/tmp/a.o1"
> (b)
*** ERROR IN b, "a.scm"@5.1 -- Divide by zero
(/ 0 0)
1> ,be
0  b                                       "a.scm"@5:1
      (/ 0 0)
1  (interaction)                           (console)@3:1
      (b)
1>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.iro.umontreal.ca/pipermail/gambit-list/attachments/20110812/fdec7fca/attachment.htm>


More information about the Gambit-list mailing list