home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1993 #3 / NN_1993_3.iso / spool / comp / lang / tcl / 2486 < prev    next >
Encoding:
Text File  |  1993-01-28  |  959 b   |  39 lines

  1. Newsgroups: comp.lang.tcl
  2. Path: sparky!uunet!ukma!gatech!usenet.ins.cwru.edu!agate!stanford.edu!Csli!gandalf
  3. From: gandalf@Csli.Stanford.EDU (Juergen Wagner)
  4. Subject: uplevel return?
  5. Message-ID: <1993Jan28.135557.20809@Csli.Stanford.EDU>
  6. Organization: Stanford University CSLI
  7. Date: Thu, 28 Jan 1993 13:55:57 GMT
  8. Lines: 29
  9.  
  10. It seems to me that "uplevel return" does not work deterministically.
  11. In a short program like
  12.  
  13. proc foo {x} {
  14.   puts stdout "start foo"
  15.   bar $x
  16.   puts stdout "end foo"
  17. }
  18.  
  19. proc bar {x} {
  20.   puts stdout "start bar"
  21.   baz $x
  22.   puts stdout "end bar"
  23. }
  24.  
  25. proc baz {x} {
  26.   puts stdout "start baz"
  27.   uplevel return
  28.   puts stdout "end baz"
  29. }
  30.  
  31. everything works fine. However, when I tried similar things in a more complex
  32. example, the "return" didn't have any effect at all.
  33.  
  34. Is there a clear definition of the semantics of "uplevel return"? Does Tcl
  35. support non-local exits at all?
  36.  
  37. Thanks for your help,
  38. --Juergen Wagner (J_Wagner@iao.fhg.de)
  39.