home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / mitsch75.zip / scheme-7_5_17-src.zip / scheme-7.5.17 / src / pcsample / pcs.pkg < prev    next >
Text File  |  1999-01-02  |  16KB  |  430 lines

  1. #| -*-Scheme-*-
  2.  
  3. $Id: pcs.pkg,v 1.3 1999/01/02 06:11:34 cph Exp $
  4.  
  5. Copyright (c) 1995, 1999 Massachusetts Institute of Technology
  6.  
  7. This program is free software; you can redistribute it and/or modify
  8. it under the terms of the GNU General Public License as published by
  9. the Free Software Foundation; either version 2 of the License, or (at
  10. your option) any later version.
  11.  
  12. This program is distributed in the hope that it will be useful, but
  13. WITHOUT ANY WARRANTY; without even the implied warranty of
  14. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  15. General Public License for more details.
  16.  
  17. You should have received a copy of the GNU General Public License
  18. along with this program; if not, write to the Free Software
  19. Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  20. |#
  21.  
  22. ;;;; PC Sampler System Packaging
  23.  
  24. (global-definitions "../runtime/runtime")
  25.  
  26.  
  27. (define-package (pribinut)
  28.   (files "pribinut")
  29.   (parent ())
  30.   (export (pc-sample)
  31.       get-primitive-name
  32.       get-builtin-name
  33.       get-utility-name
  34.       get-primitive-count
  35.       get-builtin-count
  36.       get-utility-count)
  37.   (initialization (initialize-package!)))
  38.  
  39.  
  40. (define-package (pc-sample interrupt-handler)
  41.   (files "pcsboot" "pcsintrp")
  42.   (parent ())
  43.   (import (runtime interrupt-handler)
  44.       index:interrupt-vector
  45.       index:interrupt-mask-vector)
  46.   (export ()                ; export only because boot.scm does too
  47.       interrupt-bit/IPPB-flush
  48.       interrupt-bit/IPPB-extend
  49.       interrupt-bit/PCBPB-flush
  50.       interrupt-bit/PCBPB-extend
  51.       interrupt-bit/HCBPB-flush
  52.       interrupt-bit/HCBPB-extend)
  53.   (initialization (initialize-package!)))
  54.  
  55. (define-package (pc-sample)
  56.   (files "pcsample")
  57.   (parent ())
  58.   (export ()
  59.      *pc-sample/sample-sampler?*
  60.      *pc-sample/noisy?*
  61.       pc-sample/init
  62.       pc-sample/start
  63.       pc-sample/stop
  64.       pc-sample/state
  65.         pc-sample/uninitialized?
  66.         pc-sample/initialized?
  67.         pc-sample/running?
  68.         pc-sample/started?
  69.         pc-sample/stopped?
  70.       pc-sample/sample-interval
  71.         pc-sample/set-sample-interval
  72.         pc-sample/default-sample-interval
  73.       pc-sample/fixed-objects
  74.         pc-sample/builtin-table
  75.         pc-sample/utility-table
  76.         pc-sample/primitive-table
  77.         pc-sample/prob-comp-table
  78.         pc-sample/UFO-table
  79.         pc-sample/purified-code-block-block-buffer
  80.         pc-sample/purified-code-block-offset-buffer
  81.         pc-sample/heathen-code-block-block-buffer
  82.         pc-sample/heathen-code-block-offset-buffer
  83.         pc-sample/interp-proc-buffer
  84.       pc-sample/status
  85.         pc-sample/status/previous
  86.         pc-sample/builtin/status
  87.         pc-sample/utility/status
  88.         pc-sample/primitive/status
  89.         pc-sample/code-block/status
  90.         pc-sample/code-block-buffer/status
  91.         pc-sample/interp-proc/status
  92.         pc-sample/interp-proc-buffer/status
  93.         pc-sample/prob-comp/status
  94.         pc-sample/UFO/status
  95.       pc-sample/reset
  96.         pc-sample/builtin/reset
  97.         pc-sample/utility/reset
  98.         pc-sample/primitive/reset
  99.         pc-sample/code-block/reset
  100.         pc-sample/purified-code-block/reset
  101.         pc-sample/heathen-code-block/reset
  102.         pc-sample/interp-proc/reset
  103.         pc-sample/prob-comp/reset
  104.         pc-sample/UFO/reset
  105.       pc-sample/enable
  106.         pc-sample/builtin/enable
  107.         pc-sample/utility/enable
  108.         pc-sample/primitive/enable
  109.         pc-sample/code-block/enable
  110.         pc-sample/purified-code-block/enable
  111.         pc-sample/heathen-code-block/enable
  112.         pc-sample/interp-proc/enable
  113.         pc-sample/prob-comp/enable
  114.         pc-sample/UFO/enable
  115.       pc-sample/disable
  116.         pc-sample/builtin/disable
  117.         pc-sample/utility/disable
  118.         pc-sample/primitive/disable
  119.         pc-sample/code-block/disable
  120.         pc-sample/purified-code-block/disable
  121.         pc-sample/heathen-code-block/disable
  122.         pc-sample/interp-proc/disable
  123.         pc-sample/prob-comp/disable
  124.         pc-sample/UFO/disable
  125.       call-with-pc-sampling
  126.             call-with-builtin-pc-sampling
  127.             call-with-utility-pc-sampling
  128.             call-with-primitive-pc-sampling
  129.             call-with-code-block-pc-sampling
  130.             call-with-interp-proc-pc-sampling
  131.             call-with-prob-comp-pc-sampling
  132.             call-with-UFO-pc-sampling
  133.       with-pc-sampling
  134.         with-builtin-pc-sampling
  135.         with-utility-pc-sampling
  136.         with-primitive-pc-sampling
  137.         with-code-block-pc-sampling
  138.         with-interp-proc-pc-sampling
  139.         with-prob-comp-pc-sampling
  140.         with-UFO-pc-sampling
  141.       call-without-pc-sampling
  142.             call-without-builtin-pc-sampling
  143.             call-without-utility-pc-sampling
  144.             call-without-primitive-pc-sampling
  145.             call-without-code-block-pc-sampling
  146.             call-without-interp-proc-pc-sampling
  147.             call-without-prob-comp-pc-sampling
  148.             call-without-UFO-pc-sampling
  149.       without-pc-sampling
  150.         without-builtin-pc-sampling
  151.         without-utility-pc-sampling
  152.         without-primitive-pc-sampling
  153.         without-code-block-pc-sampling
  154.         without-interp-proc-pc-sampling
  155.         without-prob-comp-pc-sampling
  156.         without-UFO-pc-sampling
  157.       call-with-absolutely-no-pc-sampling
  158.             call-with-absolutely-no-builtin-pc-sampling
  159.             call-with-absolutely-no-utility-pc-sampling
  160.             call-with-absolutely-no-primitive-pc-sampling
  161.             call-with-absolutely-no-code-block-pc-sampling
  162.             call-with-absolutely-no-interp-proc-pc-sampling
  163.             call-with-absolutely-no-prob-comp-pc-sampling
  164.             call-with-absolutely-no-UFO-pc-sampling
  165.       with-absolutely-no-pc-sampling
  166.         with-absolutely-no-builtin-pc-sampling
  167.         with-absolutely-no-utility-pc-sampling
  168.         with-absolutely-no-primitive-pc-sampling
  169.         with-absolutely-no-code-block-pc-sampling
  170.         with-absolutely-no-interp-proc-pc-sampling
  171.         with-absolutely-no-prob-comp-pc-sampling
  172.         with-absolutely-no-UFO-pc-sampling
  173.       )
  174.   (export (pc-sample interp-procs)
  175.       pc-sample/set-state!
  176.       make-profile-hash-table
  177.            profile-hash-table-car
  178.            profile-hash-table-cdr
  179.       pc-sample/interp-proc-buffer/make
  180.       fixed-interp-proc-profile-buffer/disable
  181.       fixed-interp-proc-profile-buffer/install
  182.       )
  183.   (export (pc-sample code-blocks)
  184.       pc-sample/set-state!
  185.       make-profile-hash-table
  186.            profile-hash-table-car
  187.            profile-hash-table-cdr
  188.       pc-sample/code-block-buffer/make/purified-blocks
  189.       pc-sample/code-block-buffer/make/purified-offsets
  190.       pc-sample/code-block-buffer/make/heathen-blocks
  191.       pc-sample/code-block-buffer/make/heathen-offsets
  192.       fixed-purified-code-block-profile-buffers/install
  193.        fixed-heathen-code-block-profile-buffers/install
  194.       fixed-purified-code-block-profile-buffers/disable
  195.        fixed-heathen-code-block-profile-buffers/disable
  196.       )
  197.  
  198.   (export (pc-sample display)
  199.       get-builtin-name
  200.       get-utility-name
  201.       pc-sample/interp-proc-table
  202.        pc-sample/code-block-table
  203.       profile-hash-table-car
  204.        profile-hash-table-cdr
  205.       pc-sample/status/builtin-table
  206.        pc-sample/status/interp-proc-buffer/status
  207.        pc-sample/status/interp-proc-table
  208.        pc-sample/status/code-block-buffer/status
  209.        pc-sample/status/code-block-table
  210.        pc-sample/status/primitive-table
  211.        pc-sample/status/prob-comp-table
  212.        pc-sample/status/UFO-table
  213.        pc-sample/status/utility-table
  214.       )
  215.   (initialization (initialize-package!)))
  216.  
  217.  
  218.  
  219.  
  220. (define-package (pc-sample interp-procs)
  221.   (files "pcsiproc")
  222.   (parent (pc-sample))
  223.   (export ()                ; monitor buffer evolution... for now
  224.       interp-proc-profiling-disabled?
  225.       interp-proc-profile-buffer/status
  226.       interp-proc-profile-buffer/status/previous
  227.       interp-proc-profile-buffer/length
  228.       interp-proc-profile-buffer/slack
  229.       interp-proc-profile-buffer/slack-increment
  230.       interp-proc-profile-buffer/set-slack
  231.       interp-proc-profile-buffer/set-slack-increment
  232.       interp-proc-profile-buffer/extend-noisy?
  233.       interp-proc-profile-buffer/flush-noisy?
  234.       interp-proc-profile-buffer/overflow-noisy?
  235.       interp-proc-profile-buffer/extend-noisy?/toggle!
  236.       interp-proc-profile-buffer/flush-noisy?/toggle!
  237.       interp-proc-profile-buffer/overflow-noisy?/toggle!
  238.       interp-proc-profile-buffer/with-extend-notification!
  239.       interp-proc-profile-buffer/with-flush-notification!
  240.       interp-proc-profile-buffer/with-overflow-notification!
  241.       interp-proc-profile-buffer/extend-count?
  242.       interp-proc-profile-buffer/flush-count?
  243.       interp-proc-profile-buffer/overflow-count?
  244.       interp-proc-profile-buffer/extend-count?/toggle!
  245.       interp-proc-profile-buffer/flush-count?/toggle!
  246.       interp-proc-profile-buffer/overflow-count?/toggle!
  247.       interp-proc-profile-buffer/with-extend-count!
  248.       interp-proc-profile-buffer/with-flush-count!
  249.       interp-proc-profile-buffer/with-overflow-count!
  250.       interp-proc-profile-buffer/extend-count
  251.       interp-proc-profile-buffer/flush-count
  252.       interp-proc-profile-buffer/overflow-count
  253.       interp-proc-profile-buffer/extend-count/reset
  254.       interp-proc-profile-buffer/flush-count/reset
  255.       interp-proc-profile-buffer/overflow-count/reset
  256.       )
  257.   (export (pc-sample interrupt-handler)
  258.       interp-proc-profile-buffer/flush
  259.       interp-proc-profile-buffer/extend
  260.       )
  261.   (export (pc-sample)
  262.       interp-proc-profile-table        ; probably a kludge
  263.         interp-proc-profile-table/old
  264.         interp-proc-profile-table/reset
  265.         interp-proc-profile-table/enable
  266.         interp-proc-profile-table/disable
  267.        interp-proc-profile-buffer/status
  268.         interp-proc-profile-buffer/status/previous
  269.       )
  270.   (export (pc-sample display)
  271.       interp-proc-profile-datum/count
  272.       )
  273.   (initialization (initialize-package!)))
  274.  
  275. (define-package (pc-sample code-blocks)
  276.   (files "pcscobl")
  277.   (parent (pc-sample))
  278.   (import (runtime compiler-info)
  279.       compiled-code-block/dbg-info
  280.           dbg-info?
  281.       dbg-info/procedures
  282.       dbg-procedure/label-offset)
  283.   (export ()                ; monitor buffer evolution... for now
  284.       compiled-code-block/trampoline?
  285.       trampoline/return-to-interpreter?
  286.       code-block-profiling-disabled?
  287.       code-block-profile-buffer/status
  288.       code-block-profile-buffer/status/previous
  289.       purified-trampoline-profile-table
  290.        heathen-trampoline-profile-table
  291.       purified-code-block-profile-buffer/length
  292.        heathen-code-block-profile-buffer/length
  293.       purified-code-block-profile-buffer/slack
  294.        heathen-code-block-profile-buffer/slack
  295.       purified-code-block-profile-buffer/slack-increment
  296.        heathen-code-block-profile-buffer/slack-increment
  297.       purified-code-block-profile-buffer/set-slack
  298.        heathen-code-block-profile-buffer/set-slack
  299.       purified-code-block-profile-buffer/set-slack-increment
  300.        heathen-code-block-profile-buffer/set-slack-increment
  301.       purified-code-block-profile-buffer/extend-noisy?
  302.        heathen-code-block-profile-buffer/extend-noisy?
  303.       purified-code-block-profile-buffer/flush-noisy?
  304.        heathen-code-block-profile-buffer/flush-noisy?
  305.       purified-code-block-profile-buffer/overflow-noisy?
  306.        heathen-code-block-profile-buffer/overflow-noisy?
  307.       purified-code-block-profile-buffer/extend-noisy?/toggle!
  308.        heathen-code-block-profile-buffer/extend-noisy?/toggle!
  309.       purified-code-block-profile-buffer/flush-noisy?/toggle!
  310.        heathen-code-block-profile-buffer/flush-noisy?/toggle!
  311.       purified-code-block-profile-buffer/overflow-noisy?/toggle!
  312.        heathen-code-block-profile-buffer/overflow-noisy?/toggle!
  313.       purified-code-block-profile-buffer/with-extend-notification!
  314.        heathen-code-block-profile-buffer/with-extend-notification!
  315.       purified-code-block-profile-buffer/with-flush-notification!
  316.        heathen-code-block-profile-buffer/with-flush-notification!
  317.       purified-code-block-profile-buffer/with-overflow-notification!
  318.        heathen-code-block-profile-buffer/with-overflow-notification!
  319.       purified-code-block-profile-buffer/extend-count?
  320.        heathen-code-block-profile-buffer/extend-count?
  321.       purified-code-block-profile-buffer/flush-count?
  322.        heathen-code-block-profile-buffer/flush-count?
  323.       purified-code-block-profile-buffer/overflow-count?
  324.        heathen-code-block-profile-buffer/overflow-count?
  325.       purified-code-block-profile-buffer/extend-count?/toggle!
  326.        heathen-code-block-profile-buffer/extend-count?/toggle!
  327.       purified-code-block-profile-buffer/flush-count?/toggle!
  328.        heathen-code-block-profile-buffer/flush-count?/toggle!
  329.       purified-code-block-profile-buffer/overflow-count?/toggle!
  330.        heathen-code-block-profile-buffer/overflow-count?/toggle!
  331.       purified-code-block-profile-buffer/with-extend-count!
  332.        heathen-code-block-profile-buffer/with-extend-count!
  333.       purified-code-block-profile-buffer/with-flush-count!
  334.        heathen-code-block-profile-buffer/with-flush-count!
  335.       purified-code-block-profile-buffer/with-overflow-count!
  336.        heathen-code-block-profile-buffer/with-overflow-count!
  337.       purified-code-block-profile-buffer/extend-count
  338.        heathen-code-block-profile-buffer/extend-count
  339.       purified-code-block-profile-buffer/flush-count
  340.        heathen-code-block-profile-buffer/flush-count
  341.       purified-code-block-profile-buffer/overflow-count
  342.        heathen-code-block-profile-buffer/overflow-count
  343.       purified-code-block-profile-buffer/extend-count/reset
  344.        heathen-code-block-profile-buffer/extend-count/reset
  345.       purified-code-block-profile-buffer/flush-count/reset
  346.        heathen-code-block-profile-buffer/flush-count/reset
  347.       purified-code-block-profile-buffer/overflow-count/reset
  348.        heathen-code-block-profile-buffer/overflow-count/reset)
  349.   (export (pc-sample interrupt-handler)
  350.       purified-code-block-profile-buffer/flush
  351.       purified-code-block-profile-buffer/extend
  352.        heathen-code-block-profile-buffer/flush
  353.        heathen-code-block-profile-buffer/extend)
  354.   (export (pc-sample)
  355.       code-block-profile-table        ; probably a kludge
  356.         code-block-profile-table/old
  357.         code-block-profile-tables/reset
  358.         code-block-profile-tables/enable
  359.         code-block-profile-tables/disable
  360.         purified-code-block-profile-tables/reset
  361.         purified-code-block-profile-tables/enable
  362.         purified-code-block-profile-tables/disable
  363.          heathen-code-block-profile-tables/reset
  364.          heathen-code-block-profile-tables/enable
  365.          heathen-code-block-profile-tables/disable
  366.       code-block-profile-buffer/status
  367.         code-block-profile-buffer/status/previous
  368.       )
  369.   (export (pc-sample display)
  370.       code-block-profile-datum/count
  371.       )
  372.   (initialization (initialize-package!)))
  373.  
  374.  
  375.  
  376.  
  377.  
  378. (define-package (pc-sample display)
  379.   (files "pcsdisp")
  380.   (parent (pc-sample))
  381.   (import (runtime compiler-info)
  382.       special-form-procedure-name?
  383.           dbg-info?
  384.       dbg-procedure?
  385.       compiled-code-block/filename-and-index
  386.       compiled-entry/filename-and-index
  387.       )
  388.   (export ()
  389.       pc-sample/status/display
  390.       pc-sample/builtin/status/display
  391.         pc-sample/utility/status/display
  392.         pc-sample/primitive/status/display
  393.         pc-sample/code-block/status/display
  394.         pc-sample/interp-proc/status/display
  395.         pc-sample/prob-comp/status/display
  396.         pc-sample/UFO/status/display
  397.       pc-sample/builtin/display-acate
  398.         pc-sample/utility/display-acate
  399.         pc-sample/primitive/display-acate
  400.         pc-sample/code-block/display-acate
  401.         pc-sample/interp-proc/display-acate
  402.         pc-sample/prob-comp/display-acate
  403.         pc-sample/UFO/display-acate
  404.         pc-sample/purified-trampoline/display-acate
  405.         pc-sample/heathen-trampoline/display-acate
  406.       pc-sample/status/table
  407.       pc-sample/builtin/status/table
  408.         pc-sample/utility/status/table
  409.         pc-sample/primitive/status/table
  410.         pc-sample/code-block/status/table
  411.         pc-sample/interp-proc/status/table
  412.         pc-sample/prob-comp/status/table
  413.         pc-sample/UFO/status/table
  414.         pc-sample/purified-trampoline/status/table
  415.         pc-sample/heathen-trampoline/status/table
  416.       with-pc-sample-displayacation-status
  417.       *nonmeaningful-procedure-names*
  418.       *pc-sample/default-status-displayer*
  419.       with-pc-sample-default-status-displayer
  420.       )
  421.   (initialization (initialize-package!)))
  422.  
  423. (define-package (pc-sample zones)
  424.   (files "zones")
  425.   (parent ())
  426.   (export ()
  427.       make-pc-sample-zone
  428.       wrap-with-zone
  429.       reset-zone-counts!
  430.       display-zone-report))