home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #30 / NN_1992_30.iso / spool / comp / lang / scheme / 2726 < prev    next >
Encoding:
Text File  |  1992-12-12  |  2.4 KB  |  82 lines

  1. Newsgroups: comp.lang.scheme
  2. Path: sparky!uunet!uunet.ca!wildcan!sq!dak
  3. From: dak@sq.sq.com (David A Keldsen)
  4. Subject: Re: How to keep track of procedures?
  5. Message-ID: <1992Dec12.083320.16247@sq.sq.com>
  6. Organization: SoftQuad Inc., Toronto, Canada
  7. References: <1992Dec11.100624.1@fencer.cis.dsto.gov.au> <JBS.92Dec11122857@sun1.Congruent.COM>
  8. Date: Sat, 12 Dec 92 08:33:20 GMT
  9. Lines: 71
  10.  
  11. jbs@Congruent.COM (Jeffrey Siegal) writes:
  12.  
  13. >If you want to keep track of the top level procedures, that is an
  14. >development environment issue.  I haven't seen any Scheme environments
  15. >that do a particularly good job of this (I would define what the best
  16. >C environments do as reasonably good).
  17.  
  18. Hmm.  I'd certainly agree that this isn't part of the language.  It
  19. does bring up the question, though:  What would you like to see in a
  20. Scheme development environment?
  21.  
  22. We're in the process of merging our version of PSI (a Portable Scheme
  23. Interpreter) with Ozan Yigit's version; the result should be released
  24. to the net...eventually.  (You Know How These Things Are.)
  25.  
  26. PSI supports things like procedure tracing, source tracing, call
  27. tracing, apropos...well, here's a small sample:
  28.  
  29. ----------------------------------------------------------------------
  30. Script started on Sat Dec 12 03:05:13 1992
  31. dak@sqarc :sqpsi
  32. > (include-source-code #t)
  33. #t
  34. > (define (a) (+ #f 1 2 3))
  35. #<procedure a>
  36. > (procedure->src a)
  37. (lambda () (+ #f 1 2 3))
  38. > (a)
  39. Error -- +: invalid argument: #f
  40. in expression: 
  41. (+ #f 1 2 3)
  42. in procedure: a
  43. > (define (cur b) (car b))
  44. #<procedure cur>
  45. > (apropos "c.r")
  46. car 1-ARGS
  47. cdr 1-ARGS
  48. call-with-current-continuation 1-ARGS
  49. cur 1-ARGS
  50. set-car! 2-ARGS
  51. set-cdr! 2-ARGS
  52. #t
  53. > (trace cur)
  54. #<procedure cur>
  55. > (cur '(1 2))
  56. (#<procedure cur> (1 2)) => 1
  57. 1
  58. > (untrace cur)
  59. #<procedure cur>
  60. > (global-trace 'calls)
  61. 0
  62. > (cur '(1 2))
  63. [(cur (1 2))
  64.  [(car (1 2))
  65.  ] car => 1
  66. 1
  67. >
  68. ----------------------------------------------------------------------
  69.  
  70. Disclaimer:  I work for SoftQuad, Inc.  SQPSI is a part of some of
  71. our products.  PSI should be available on the net, Real Soon Now.
  72. No lawyer-serviceable opinions inside.  Do not open cover.  Shock
  73. hazard.  This side down.  Do not fold, spellcheck, or punctuate.
  74.  
  75. Regards,
  76. Dak
  77. -- 
  78. David A. 'Dak' Keldsen of SoftQuad, Inc. email: dak@sq.com  phone: 416-239-4801
  79. "Therefore, get up; defeat your breathlessness with spirit that can win 
  80. all battles if the body's heaviness does not deter it."
  81. Dante, _Inferno_ from canto 24, (trans. by Allen Mandelbaum)
  82.