guile-devel
[Top][All Lists]
Advanced

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

Re: guile-vm 0.4


From: Keisuke Nishida
Subject: Re: guile-vm 0.4
Date: Wed, 11 Apr 2001 04:21:18 -0400
User-agent: Wanderlust/2.4.0 (Rio) SEMI/1.13.7 (Awazu) FLIM/1.13.2 (Kasanui) Emacs/21.0.102 (i686-pc-linux-gnu) MULE/5.0 (SAKAKI)

At 11 Apr 2001 01:42:47 +0200,
Marius Vollmer wrote:
> 
> > guile> (let loop () (catch #t (lambda () (loop)) (lambda val val)))
> > $1 = (stack-overflow #f "Stack overflow" #f #f)
> 
> No.  The call to `loop' is in a tail position, but the surrounding
> `lambda' is not invoked in such a position.  Calling `loop' from the
> inside of the `catch' does not terminate it.  Even tho you are
> looping, you keep piling the catch activations.  You would need to use
> an explicit continuation to jump out of the catch, like

I see.  I just gave a bad example.  The following is a situation
my VM doesn't work well:

 % guile
  guile> (define (foo thunk) (thunk))
  guile> (use-modules (system repl repl))
  guile> (start-repl 'gscheme)
  Guile Scheme interpreter 0.4 on Guile 1.4.1
  Copyright (C) 2001 Free Software Foundation, Inc.

  Enter `,help' for help.
  address@hidden> (let loop () (foo loop))
  .../language.scm:58:9: Stack overflow
  ABORT: (stack-overflow)



reply via email to

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