GOOF----LE-8-2.0Øq]×4h_] gguile¤ ¤ gdefine-module*¤ ¤ ¤ gstatprof¤ ¤ gfilenameS¤ f statprof.scm¤ gimportsS¤ gsrfi¤ gsrfi-1¤   ¤  ¤ gsystem¤ gvm¤ ¤ ¤ gframe¤ ¤ ¤ gprogram¤ ¤ ¤ ¤ gexportsS¤ gstatprof-active?¤ gstatprof-start¤ g statprof-stop¤ gstatprof-reset¤ gstatprof-accumulated-time¤ gstatprof-sample-count¤ !gstatprof-fold-call-data¤ "gstatprof-proc-call-data¤ #gstatprof-call-data-name¤ $gstatprof-call-data-calls¤ %gstatprof-call-data-cum-samples¤ &gstatprof-call-data-self-samples¤ 'gstatprof-call-data->stats¤ (gstatprof-stats-proc-name¤ )gstatprof-stats-%-time-in-proc¤ *gstatprof-stats-cum-secs-in-proc¤ +g statprof-stats-self-secs-in-proc¤ ,gstatprof-stats-calls¤ -g!statprof-stats-self-secs-per-call¤ .g statprof-stats-cum-secs-per-call¤ /gstatprof-display¤ 0gstatprof-display-anomolies¤ 1gstatprof-fetch-stacks¤ 2gstatprof-fetch-call-tree¤ 3g with-statprof¤ 4ggcprof¤ 5 !"#$%&'()*+,-./01234¤ 6g autoloadsS¤ 7gice-9¤ 8gformat¤ 978¤ :8¤ ;9:¤ <¤ ?gaccumulated-time¤ @glast-start-time¤ Ag sample-count¤ Bgsampling-frequency¤ Cgremaining-prof-time¤ Dg profile-level¤ Eg %count-calls?¤ Fg gc-time-taken¤ Ggrecord-full-stacks?¤ Hgstacks¤ Igprocedure-data¤ Jgmake-call-data¤ Kgcall-data-proc¤ Lgprocedure-name¤ Mgcall-data-name¤ Ngwith-output-to-string¤ Ogwrite¤ Pgcall-data-printable¤ Qgcall-data-call-count¤ Rgcall-data-cum-sample-count¤ Sgcall-data-self-sample-count¤ Tginc-call-data-call-count!¤ Uginc-call-data-cum-sample-count!¤ Vg inc-call-data-self-sample-count!¤ Wgmake-syntax-transformer¤ XW¤ YW¤ Zgaccumulate-time¤ [gmacro¤ \g $sc-dispatch¤ ]\¤ ^\¤ _g_¤ `gany¤ a_`Œ¤ bg syntax->datum¤ cb¤ db¤ eg datum->syntax¤ fe¤ ge¤ hgset!¤ ig+¤ je0.0¤ kg-¤ l@¤ mgsyntax-violation¤ nm¤ om¤ pf-source expression failed to match any pattern¤ qgprogram?¤ rgprogram-num-free-variables¤ sgprogram-objcode¤ tg hashq-ref¤ ug hashq-set!¤ vg get-call-data¤ wg stack-length¤ xgframe-procedure¤ yg count-call¤ zgframe-previous¤ {gmake-hash-table¤ |g hash-fold¤ }gand=>¤ ~g stack-ref¤ gsample-stack-procs¤ €ginside-profiler?¤ gget-internal-run-time¤ ‚g make-stack¤ ƒgprofile-signal-handler¤ „gpk¤ …gwhat!¤ †gset-vm-trace-level!¤ ‡gthe-vm¤ ˆgvm-trace-level¤ ‰g setitimer¤ Šg ITIMER_PROF¤ ‹gassq¤ Œggc-stats¤ g add-hook!¤ Žg vm-apply-hook¤ g remove-hook!¤ gerror¤ ‘f/Can't reset profiler while profiler is running.¤ ’g sigaction¤ “gSIGPROF¤ ”f:Can't call statprof-fold-called while profiler is running.¤ •e100.0¤ –e1.0¤ —gmax¤ ˜g stats-sorter¤ ™gcurrent-output-port¤ šfNo samples recorded. ¤ ›gsort¤ œf!~5a ~10a ~7a ~8a ~8a ~8a ~8@a ¤ f% ¤ žf cumulative¤ Ÿfself¤  f¤ ¡ftotal¤ ¢f ~5a ~9a ~8a ~8a ~8a ~8a ~8@a ¤ £ftime¤ ¤fseconds¤ ¥fcalls¤ ¦fms/call¤ §fname¤ ¨f~5a ~10a ~7a ~8@a ¤ ©f%¤ ªf~5a ~10a ~7a ~8@a ¤ «gfor-each¤ ¬f#~6,2f ~9,2f ~9,2f ~7d ~8,2f ~8,2f ¤ ­f~6,2f ~9,2f ~9,2f ¤ ®gdisplay¤ ¯gnewline¤ °f--- ¤ ±g simple-format¤ ²fSample count: ~A ¤ ³f*Total time: ~A seconds (~A seconds in GC) ¤ ´ginternal-time-units-per-second¤ µf ==[~A ~A ~A] ¤ ¶fTotal time: ~A ¤ ·f5Can't get accumulated time while profiler is running.¤ ¸g procedure=?¤ ¹gmap¤ ºg lists->trees¤ »gcadr¤ ¼gfind¤ ½g assq-set!¤ ¾gfilter¤ ¿gidentity¤ Àg unfold-right¤ Ágstack->procedures¤ ÂgloopS¤ àŒ¤ ÄghzS¤ ÅÄ Œ¤ Æg count-calls?S¤ ÇÆ Œ¤ Èg full-stacks?S¤ ÉÈ Œ¤ ÊÃÅÇɤ Ëginexact->exact¤ Ìgfloor¤ Íe 1000000.0¤ ÎfInvalid macro body¤ Ïgkeyword?¤ Ðgeq?¤ Ñg@¤ ÒѤ Óglambda¤ ÔÈ Œ¤ ÕÃÔ¤ Ög after-gc-hook¤C5h0]F]4  56;5 4>>"G?R@RARBRCR DRER FRGRHRIRhË]CÃgproc  g call-count  gcum-sample-count   gself-sample-count   gfilenamef statprof.scmŒ à ŒŒ Ä ŒŒ   gnamegmake-call-dataŒCJRht] £Clgcd  gfilenamef statprof.scmŒ Å ŒŒ  Å ŒŒ   gnamegcall-data-procŒCKRLKh}]456ugcd  gfilenamef statprof.scmŒ Æ ŒŒ  Æ ,ŒŒ Æ ŒŒ  gnamegcall-data-nameŒCMRMNOKhR]4L56Jgfilenamef statprof.scmŒ É ŒŒ  É /ŒŒ É (ŒŒ  Ch ™] 45$CO6‘gcd  gt gfilenamef statprof.scmŒ Ç ŒŒ  È ŒŒ È ŒŒ  É ŒŒ   gnamegcall-data-printableŒCPRhz] £Crgcd  gfilenamef statprof.scmŒ Ê ŒŒ  Ê "ŒŒ   gnamegcall-data-call-countŒCQRh€] £Cxgcd  gfilenamef statprof.scmŒ Ë ŒŒ  Ë (ŒŒ   gnamegcall-data-cum-sample-countŒCRRh] £Cygcd  gfilenamef statprof.scmŒ Ì ŒŒ  Ì )ŒŒ   gnamegcall-data-self-sample-countŒCSRh‘]  £—¤C‰gcd  gfilenamef statprof.scmŒ Î ŒŒ Ï ŒŒ Ï ŒŒ Ï ŒŒ  gnameginc-call-data-call-count!ŒCTRh—]  £—¤Cgcd  gfilenamef statprof.scmŒ Ð ŒŒ Ñ ŒŒ Ñ ŒŒ Ñ ŒŒ   gnameginc-call-data-cum-sample-count!ŒCURh˜]  £—¤Cgcd  gfilenamef statprof.scmŒ Ò ŒŒ Ó ŒŒ Ó ŒŒ Ó ŒŒ   gnameg inc-call-data-self-sample-count!ŒCVR4YZ[^adgh?ijklh `]ŒŒCXg stop-time  gfilenamef statprof.scmŒ Õ ŒŒ  Ö ŒŒ   Cha] 45L4?6Ygargs  gv gfilenamef statprof.scmŒ  Õ ŒŒ   Coph(_] 45$ O@6Wgy  'gtmp 'gfilenamef statprof.scmŒ Õ ŒŒ  ' C5ZRqrstIJuhp#]45€$" 45 ‘$"4545$C4 54>"GCgproc  ogt #gk 4 ogt  ? og call-data  T ogfilenamef statprof.scmŒ Ù ŒŒ  Ú ŒŒ Ú ŒŒ Ú ŒŒ  Û ŒŒ  Û ŒŒ ' Ú ŒŒ . Ý ŒŒ 4 Ú ŒŒ 7 Þ ŒŒ ? Þ ŒŒ K ß ŒŒ T ß ŒŒ W à ŒŒ  o gnameg get-call-dataŒCvRwGHAxyz{u|Uvh‰]456gproc  gval  gaccum   gfilenamef statprof.scmŒ õ ŒŒ  ÷ ŒŒ ö ŒŒ  C}vV~hü])H4>"G$ Œ "— "»$45$Z&K454 5"ÿÿÇ4 >"G45$""ÿÿ‘45"ÿÿ|4  >"G4 4  5>"!G"4 54 5"ÿÿ+JCôgstack   ghit-count-call?   gframe  1 ìg procs-seen  1 ìgself  1 ìgt  > ¸gfilenamef statprof.scmŒ æ ŒŒ  ç ŒŒ  ç ŒŒ  ê ŒŒ " ë ŒŒ $ ë ŒŒ + í ŒŒ - í ŒŒ 1 ï ŒŒ 7 ò ŒŒ 8 ü ŒŒ > ò ŒŒ N þ ŒŒ Q  ŒŒ R  ŒŒ Y  ,ŒŒ j  ŒŒ k  ŒŒ €  ŒŒ Ž  ŒŒ    ŒŒ ¡  ŒŒ µ  ŒŒ ¹ ô ŒŒ Î ú ŒŒ Ñ ú ŒŒ à ú ŒŒ ì ï ŒŒ í ï ŒŒ õ 𠌌  ï ŒŒ   gnamegsample-stack-procsŒCR€R€D‚ƒ„…E†‡ˆ?j@‰ŠBhðS]  ”$Û4545$" 445545$"7 $$4 4 54 4 55™>"G" –˜– 4 Ž>"G$"145  $$4 4 54 4 55—>"G"" CKgsig  íg stop-time  ägt   :gstack  : áginside-apply-trap?  C Þgfilenamef statprof.scmŒ  ŒŒ   ŒŒ   ŒŒ  ŒŒ   ŒŒ   ŒŒ   ŒŒ   ŒŒ +  ŒŒ /  ŒŒ 0  #ŒŒ 7  ŒŒ :  ŒŒ =  !ŒŒ C  ŒŒ K ! ŒŒ U ) ŒŒ V * ŒŒ Y * 'ŒŒ ^ + +ŒŒ a + ;ŒŒ g + +ŒŒ h + 'ŒŒ m * ŒŒ } × ŒŒ † , ŒŒ ‡ . ŒŒ 0 ŒŒ “ 1 ŒŒ ˜ . ŒŒ ¦ 3 ŒŒ « 5 $ŒŒ ± 5 ŒŒ · 6 ŒŒ ¸ 7 ŒŒ » 7 'ŒŒ À 8 +ŒŒ à 8 ;ŒŒ É 8 +ŒŒ Ê 8 'ŒŒ Ï 7 ŒŒ ë : ŒŒ+  í gnamegprofile-signal-handlerŒCƒR€?j@}xTvhe]456]gproc  gfilenamef statprof.scmŒ E ŒŒ  G ŒŒ F ŒŒ  C h@»]$C–45˜– 445>"G45 C³gframe  <gfilenamef statprof.scmŒ ? ŒŒ  @ ŒŒ  × ŒŒ  B ŒŒ  B ŒŒ  D ŒŒ  D ŒŒ + D ŒŒ 4 I ŒŒ : I ŒŒ  < gnameg count-callŒCyRDhð] ”Cègfilenamef statprof.scmŒ M ŒŒ  P ŒŒ   gnamegstatprof-active?Œg documentationfuReturns @code{#t} if @code{statprof-start} has been called more times than @code{statprof-stop}, @code{#f} otherwise.ŒCRDC@‹FŒF‰ŠBEŽ‡y†ˆhàU]—  ‘$Ë$ ”$"Ž ”" 45 4455Ž $4  Ž>"G"4    Ž>"G $ 4 4455>"G"4454455—>"GCCMgrpt  Úgt  4guse-rpt? 9 Úgfilenamef statprof.scmŒ S ŒŒ  W ŒŒ  W ŒŒ X ŒŒ  X ŒŒ  Y ŒŒ  Z ŒŒ  [ +ŒŒ  [ ŒŒ  [ ŒŒ / \ +ŒŒ 0 \ ŒŒ 9 Y ŒŒ > ] ŒŒ ? ^ ŒŒ E ^ ŒŒ F ` ŒŒ J ` ŒŒ K ` (ŒŒ Q ` ŒŒ R ` ŒŒ T _ ŒŒ Z a ŒŒ [ b ŒŒ d b 'ŒŒ g b 1ŒŒ l b ŒŒ y c ŒŒ ‚ e ŒŒ … f ŒŒ Š c ŒŒ ˜ g ŒŒ ™ h ŒŒ œ h ŒŒ Ÿ h &ŒŒ ¥ h ŒŒ ¬ h ŒŒ ¹ i ŒŒ ¼ i ŒŒ Á i *ŒŒ Ä i :ŒŒ Ê i *ŒŒ Ë i &ŒŒ Ð i ŒŒ-  Ü gnamegstatprof-startŒg documentationfStart the profiler.@code{}ŒCRD‹FŒF†‡ˆEŽy‰ŠC?j@h™]™  ‘$z4455Ž˜ 4454455™>"G $ 4 4 455 >"G"4  5 –45˜–  CC‘gfilenamef statprof.scmŒ m ŒŒ  q ŒŒ  q ŒŒ r ŒŒ  r ŒŒ  u ŒŒ  u ŒŒ  u +ŒŒ  u ŒŒ  u ŒŒ  u ŒŒ ! t ŒŒ " v ŒŒ % v ŒŒ * v *ŒŒ - v :ŒŒ 3 v *ŒŒ 4 v &ŒŒ 9 v ŒŒ G w ŒŒ H x ŒŒ K x ŒŒ N x )ŒŒ T x ŒŒ [ x ŒŒ h { "ŒŒ t { ŒŒ x × ŒŒ z | ŒŒ „ | ŒŒ ‡ } ŒŒ  ‹ gnameg statprof-stopŒg documentationfStop the profiler.@code{}ŒCRD‘E?@ABC{IGH’“ƒhxÛ-.,3# ”$4>"G"    Œ  4 ƒ5   4>"GCÓgsample-seconds qgsample-microseconds qg count-calls?  qg full-stacks?  qgfilenamef statprof.scmŒ  ŒŒ  ˆ ŒŒ  ˆ ŒŒ  ‰ ŒŒ " ‰ ŒŒ ' ‰ ŒŒ 7 Š ŒŒ : ‹ ŒŒ = Œ ŒŒ @  ŒŒ E Ž ŒŒ G Ž ŒŒ J  ŒŒ K  ŒŒ T  ŒŒ X ‘ ŒŒ Y ’ ŒŒ [ ’ ŒŒ \ “ ŒŒ q  gnamegstatprof-resetŒg documentationfVReset the statprof sampler interval to @var{sample-seconds} and @var{sample-microseconds}. If @var{count-calls?} is true, arrange to instrument procedure calls as well as collecting statistical profiling data. If @var{full-stacks?} is true, collect all sampled stacks into a list for later analysis. Enables traps and debugging as necessary.ŒCRD”|hˆ]L6€gkey  gvalue  g prior-result   gfilenamef statprof.scmŒ ¡ ŒŒ ¢ ŒŒ  CIh0 ] ”$4>"G"O6gproc  /ginit  /gfilenamef statprof.scmŒ – ŒŒ   ŒŒ  ŒŒ ž ŒŒ  ž ŒŒ  ž ŒŒ /   ŒŒ  / gnamegstatprof-fold-call-dataŒg documentationf7Fold @var{proc} over the call-data accumulated by statprof. Cannot be called while statprof is active. @var{proc} should take two arguments, @code{(@var{call-data} @var{prior-result})}. Note that a given proc-name may appear multiple times, but if it does, it represents different functions with the same name.ŒC!RD”tIh(] ”$4>"G"6gproc  (gfilenamef statprof.scmŒ ¦ ŒŒ  © ŒŒ © ŒŒ ª ŒŒ  ª ŒŒ  ª ŒŒ ( ¬ ŒŒ  ( gnamegstatprof-proc-call-dataŒg documentationfTReturns the call-data associated with @var{proc}, or @code{#f} if none is available.ŒC"RPSR E$•–j— h¨¾]1454545454545›$ 45"›šš šš š$ ‘$ " š ››"$š ›4  5›"C¶g call-data  ¥g proc-name ¥g self-samples   ¥g cum-samples   ¥g all-samples  " ¥gsecs-per-sample  / ¥g num-calls  C ¥gfilenamef statprof.scmŒ ± ŒŒ  » ŒŒ » ŒŒ ¼ ŒŒ  » ŒŒ  ½ ŒŒ  » ŒŒ  ¾ ŒŒ " » ŒŒ % ¿ ŒŒ * À ŒŒ / ¿ ŒŒ / » ŒŒ 7 Á ŒŒ 8 Á 'ŒŒ C » ŒŒ L Ä ŒŒ N Ä ,ŒŒ O Ä ŒŒ T Å ŒŒ V Å +ŒŒ W Å ŒŒ \ Æ ŒŒ ^ Æ ,ŒŒ _ Æ ŒŒ g È ŒŒ j É ŒŒ o É ŒŒ q É *ŒŒ z Ê ŒŒ | Ê 9ŒŒ } Ê ŒŒ ‹ Ë ŒŒ Ì ŒŒ ’ Í ŒŒ “ Ì ŒŒ ” Ð ŒŒ œ Ì ŒŒ ¤ à ŒŒ(  ¥ gnamegstatprof-call-data->statsŒg documentationf0Returns an object of type @code{statprof-stats}.ŒC'Rh] £Cygstats  gfilenamef statprof.scmŒ Ò ŒŒ  Ò )ŒŒ   gnamegstatprof-stats-proc-nameŒC(Rh†] £C~gstats  gfilenamef statprof.scmŒ Ó ŒŒ  Ó .ŒŒ   gnamegstatprof-stats-%-time-in-procŒC)Rhˆ] £C€gstats  gfilenamef statprof.scmŒ Ô ŒŒ  Ô 0ŒŒ   gnamegstatprof-stats-cum-secs-in-procŒC*Rh‰] £Cgstats  gfilenamef statprof.scmŒ Õ ŒŒ  Õ 1ŒŒ   gnameg statprof-stats-self-secs-in-procŒC+Rh}] £Cugstats  gfilenamef statprof.scmŒ Ö ŒŒ  Ö %ŒŒ   gnamegstatprof-stats-callsŒC,RhŠ] £C‚gstats  gfilenamef statprof.scmŒ × ŒŒ  × 2ŒŒ   gnameg!statprof-stats-self-secs-per-callŒC-Rh‰] £Cgstats  gfilenamef statprof.scmŒ Ø ŒŒ  Ø 1ŒŒ   gnameg statprof-stats-cum-secs-per-callŒC.R+*h8ã] 4545˜ ‘$4545˜" ”CÛgx  3gy  3gdiff   3gfilenamef statprof.scmŒ Ü ŒŒ  Ý ŒŒ Þ ŒŒ  Ý ŒŒ  Ý ŒŒ  à ŒŒ  à ŒŒ  á ŒŒ # â ŒŒ * á ŒŒ 1 ß ŒŒ  3 gnameg stats-sorterŒC˜R™ 8š!'h~]45ŒCvgdata  g prior-value  gfilenamef statprof.scmŒ ï ŒŒ  𠌌 𠌌  C›˜EœžŸ ¡¢£¤¥¦§¨©ª«E8¬)*+,-.­®(¯h =]$J4M45454545 è45š è4 5š>"G")4M 454545>"G4 4 5M>"G M65gstats  šgfilenamef statprof.scmŒ õ ŒŒ  ö ŒŒ ÷ ŒŒ  ÷ ŒŒ  ø ŒŒ  ù ŒŒ  ú ŒŒ % û ŒŒ / ü ŒŒ 6 ü ŒŒ : ý ŒŒ A ý ŒŒ F ÷ ŒŒ S þ ŒŒ Y þ ŒŒ Z ÿ ŒŒ a  ŒŒ h  ŒŒ s þ ŒŒ |  ŒŒ   ŒŒ Œ  ŒŒ š  ŒŒ  š gnamegdisplay-stats-lineŒC®°±²³F–´$h(’-13HJ( 45K"45 ‘$J64545 $H4J     > "G4J> "G"84J  >"G4J>"G4O>"G4J>"G445>"G4 5!"›#›6Šgport %g stats-list 9 %g sorted-stats  D %gfilenamef statprof.scmŒ å ŒŒ  è ŒŒ  è ŒŒ  è ŒŒ  ë ŒŒ $ ë ŒŒ ) ê ŒŒ / ì ŒŒ 1 ì ŒŒ 2 î ŒŒ 7 ò ŒŒ 9 î ŒŒ 9 î ŒŒ < ó ŒŒ D î ŒŒ L  ŒŒ M  ŒŒ S  ŒŒ U  ŒŒ W  ŒŒ Y  (ŒŒ [  /ŒŒ ]  2ŒŒ _  9ŒŒ a  AŒŒ f  ŒŒ o  ŒŒ u  ŒŒ w  ŒŒ y  ŒŒ {  &ŒŒ }  0ŒŒ   8ŒŒ  BŒŒ ƒ  LŒŒ ˆ  ŒŒ •  ŒŒ ›  ŒŒ  ŒŒ Ÿ  ŒŒ ¡  &ŒŒ £  -ŒŒ ¨  ŒŒ ±  ŒŒ ·  ŒŒ ¹  ŒŒ »  ŒŒ ½  &ŒŒ ¿  0ŒŒ Ä  ŒŒ Í  ŒŒ æ  ŒŒ ê  ŒŒ ñ  ŒŒ ú  ŒŒ ÿ  ŒŒ   -ŒŒ   ŒŒ   ŒŒ   ŒŒ   &ŒŒ   ŒŒ %  ŒŒ@ % gnamegstatprof-displayŒg documentationfŠDisplays a gprof-like summary of the statistics collected. Unless an optional @var{port} argument is passed, uses the current output port.ŒC/R!EQR±µMhHØ]$:45 ‘$+45 ”$4545456CCCÐgdata  Dg prior-value  Dgfilenamef statprof.scmŒ  ŒŒ   ŒŒ  ŒŒ   ŒŒ   ŒŒ   ŒŒ   ŒŒ "  ŒŒ ' " ŒŒ ( # ŒŒ / $ ŒŒ 6 % ŒŒ > ! ŒŒ  D C±¶² h@]4>"G445>"G456 gfilenamef statprof.scmŒ  ŒŒ   ŒŒ  ' ŒŒ  ' ŒŒ  ' 'ŒŒ % ' ŒŒ 2 ( ŒŒ 3 ( )ŒŒ 9 ( ŒŒ  9 gnamegstatprof-display-anomoliesŒg documentationfQA sanity check that attempts to detect anomolies in statprof's statistics.@code{}ŒC0RD·?´h(ò] ”$4>"G"›Cêgfilenamef statprof.scmŒ * ŒŒ  , ŒŒ , ŒŒ - ŒŒ  - ŒŒ  - ŒŒ % . ŒŒ  & gnamegstatprof-accumulated-timeŒg documentationfAReturns the time accumulated during the last statprof run.@code{}ŒCRD·Ah(ì] ”$4>"G"Cägfilenamef statprof.scmŒ 0 ŒŒ  2 ŒŒ 2 ŒŒ 3 ŒŒ  3 ŒŒ  3 ŒŒ  # gnamegstatprof-sample-countŒg documentationfHReturns the number of samples taken during the last statprof run.@code{}ŒC RMi#RQi$RRi%RSi&RHh>]C6gfilenamef statprof.scmŒ ; ŒŒ   gnamegstatprof-fetch-stacksŒg documentationfÇReturns a list of stacks, as they were captured since the last call to @code{statprof-reset}. Note that stacks are only collected if the @var{full-stacks?} argument to @code{statprof-reset} is true.ŒC1Rqsh8È]&C45$45$4545‚CCCÀga  6gb  6gfilenamef statprof.scmŒ D ŒŒ E ŒŒ F ŒŒ G ŒŒ  E ŒŒ  G ŒŒ " G ŒŒ # H ŒŒ * H ŒŒ 1 H ŒŒ  6 gnameg procedure=?ŒC¸R¹ºh€]4ŽL5ŒCxgtail  gfilenamef statprof.scmŒ R ŒŒ  S ŒŒ  T ŒŒ T .ŒŒ  T ŒŒ  S ŒŒ   Ci»›hz]ŽŽ”Crga  gb  gfilenamef statprof.scmŒ X ŒŒ  X %ŒŒ X .ŒŒ X "ŒŒ  C¼hk]LL6cgx  gfilenamef statprof.scmŒ [ ŒŒ  [ ŒŒ [ (ŒŒ [ ŒŒ  C½ h¸]"" (+4O5445?45ŒC(Ž—"ÿÿ¶4O5$!Ž4 ŽŽŒ5"ÿÿ}ŽŽŒ"ÿÿ` "ÿÿRglists  ´gequal?  ´gin   ¦g n-terminal   ¦gtails   ¦gtrees   7gt  ` ¦gfilenamef statprof.scmŒ N ŒŒ  O ŒŒ P ŒŒ R ŒŒ  R ŒŒ  V ŒŒ " V "ŒŒ , V ŒŒ - W ŒŒ 6 V ŒŒ : Y ŒŒ > P ŒŒ A Z ŒŒ D Z ŒŒ P Z ŒŒ Q [ ŒŒ ` P ŒŒ k ^ ŒŒ n ` ŒŒ u a ŒŒ x b ŒŒ | b *ŒŒ } b ŒŒ  ` ŒŒ ‰ ^ ŒŒ Œ d ŒŒ ‘ f ŒŒ • f !ŒŒ ™ f ŒŒ œ f ŒŒ ¦ d ŒŒ ¦ O ŒŒ ª O ,ŒŒ ´ O ŒŒ#  ´ gnameg lists->treesŒCºR¾¿ÀhY]€CQgx  gfilenamef statprof.scmŒ j ŒŒ  j $ŒŒ   Cxz~h •]44 556gstack  gfilenamef statprof.scmŒ h ŒŒ  j ŒŒ  m ŒŒ  j ŒŒ  i ŒŒ   gnamegstack->proceduresŒCÁRº¹ÁH¸hT]4455ŒCLgfilenamef statprof.scmŒ o ŒŒ  v ŒŒ  v ŒŒ  v ŒŒ  v ŒŒ   gnamegstatprof-fetch-call-treeŒg documentationf¶Return a call tree for the previous statprof run. The return value is a list of nodes, each of which is of the type: @code node ::= (@var{proc} @var{count} . @var{nodes}) @end codeŒC2RÊh0½]  ‘$E4L> G™"ÿÿÙµgi  )gresult  )gresult   )gfilenamef statprof.scmŒ Ž ŒŒ   ŒŒ  ŒŒ  ‘ ŒŒ  ’ ŒŒ  ” ŒŒ ) ” ŒŒ  ) gnameglpŒCh l]OLQL6dglp gfilenamef statprof.scmŒ  ŒŒ Ž ŒŒ   ŒŒ  Ž ŒŒ   CËÌÍh@Ù]444 L›554 L›4 L›5˜š5LL>"G6Ñgfilenamef statprof.scmŒ † ŒŒ  ‡ ŒŒ  ‡ ŒŒ ‡ &ŒŒ  ‡ -ŒŒ  ‡ &ŒŒ  ‡ ŒŒ  ˆ ŒŒ  ˆ )ŒŒ  ˆ 0ŒŒ  ‰ 0ŒŒ # ‰ 7ŒŒ % ‰ 0ŒŒ & ˆ -ŒŒ ' ˆ &ŒŒ ) ˆ ŒŒ 2 ‡ ŒŒ > Œ ŒŒ  > C/Ih([]4>"G4>"G CSgfilenamef statprof.scmŒ • ŒŒ  – ŒŒ  — ŒŒ % ˜ ŒŒ  ' CËÌÍh@Ù]444 L›554 L›4 L›5˜š5LL>"G6Ñgfilenamef statprof.scmŒ † ŒŒ  ‡ ŒŒ  ‡ ŒŒ ‡ &ŒŒ  ‡ -ŒŒ  ‡ &ŒŒ  ‡ ŒŒ  ˆ ŒŒ  ˆ )ŒŒ  ˆ 0ŒŒ  ‰ 0ŒŒ # ‰ 7ŒŒ % ‰ 0ŒŒ & ˆ -ŒŒ ' ˆ &ŒŒ ) ˆ ŒŒ 2 ‡ ŒŒ > Œ ŒŒ  > C/Ih([]4>"G4>"G CSgfilenamef statprof.scmŒ • ŒŒ  – ŒŒ  — ŒŒ % ˜ ŒŒ  ' C/Ih([]4>"G4>"G CSgfilenamef statprof.scmŒ • ŒŒ  – ŒŒ  — ŒŒ % ˜ ŒŒ  ' Ch .-/03# # d##OQO4O>"GV4>X4>"GCX4>"GF&gthunk  ›gloop  ›ghz   ›g count-calls?   ›g full-stacks?   ›gthunk  A ›gfilenamef statprof.scmŒ x ŒŒ A … ŒŒ  › gloopS ŒghzS Œg count-calls?S Œg full-stacks?S ŒgnamegstatprofŒg documentationfõProfile the execution of @var{thunk}, and return its return values. The stack will be sampled @var{hz} times per second, and the thunk itself will be called @var{loop} times. If @var{count-calls?} is true, all procedure calls will be recorded. This operation is somewhat expensive. If @var{full-stacks?} is true, at each sample, statprof will store away the whole call tree, for later analysis. Use @code{statprof-fetch-stacks} or @code{statprof-fetch-call-tree} to retrieve the last-stored stacks.ŒCR4Y3[^adgÎÏÐhP ](645$ &ŽCŽŽ"ÿÿÈ45$CCgkw  Ngargs  Ngdef   Ngfilenamef statprof.scmŒ ± ŒŒ  ² ŒŒ ³ ŒŒ  ³ ŒŒ  ´ ŒŒ  ´ ŒŒ  ´ ŒŒ  ² ŒŒ  µ ŒŒ # µ ŒŒ & ¶ ŒŒ - · ŒŒ : · ŒŒ ; ¸ ŒŒ H ² ŒŒ  N gnameg kw-arg-refŒCÒÓÂÄÆÈh`Î-13OQ45ŒŒ4 54 d54545 CÆgargs [g kw-arg-ref  [gfilenamef statprof.scmŒ š ŒŒ  » ŒŒ  ¼ ŒŒ % » ŒŒ ) ½ ŒŒ 4 » ŒŒ 5 ¾ ŒŒ A » ŒŒ B ¿ ŒŒ M » ŒŒ N À ŒŒ Z » ŒŒ [ Cha] 45L4?6Ygargs  gv gfilenamef statprof.scmŒ  š ŒŒ   Coph(w] 45$ O@6ogy  'gtmp 'gfilenamef statprof.scmŒ š ŒŒ  ' g documentationfËProfile the expressions in the body, and return the body's return values. Keyword arguments: @table @code @item #:loop Execute the body @var{loop} number of times, or @code{#f} for no looping default: @code{#f} @item #:hz Sampling rate default: @code{20} @item #:count-calls? Whether to instrument each function call (expensive) default: @code{#f} @item #:full-stacks? Whether to collect away all sampled stacks into a list default: @code{#f} @end tableŒg macro-typegdefmacroŒg defmacro-argsgargsC53RÕ€‚„…?j@ hx.]$C 454L 5$" 44554>"G– ˜– 45  C&gt  tgt ! ?g stop-time ? ogstack ? ogfilenamef statprof.scmŒ Û ŒŒ  Ü ŒŒ  ß ŒŒ  â ŒŒ  æ ŒŒ ! æ ŒŒ 0 ç ŒŒ 4 ç ŒŒ 5 ç "ŒŒ < ç ŒŒ ? â ŒŒ D è ŒŒ Y × ŒŒ b é ŒŒ c ê ŒŒ i ê ŒŒ r ì ŒŒ  t gnameg gc-callbackŒCD‘?@AE{IGHC‹FŒFÖ†‡ˆh ] ”$4>"G"    4 ƒ5 L  —  ‘$O 4 5 4455Ž 4L>"G4454455—>"GCCygfilenamef statprof.scmŒ  ŒŒ  Ñ ŒŒ Ñ ŒŒ Ò ŒŒ  Ò ŒŒ  Ò ŒŒ # Ó ŒŒ & Ô ŒŒ ) Õ ŒŒ , Ö ŒŒ - × ŒŒ 6 × ŒŒ : Ø ŒŒ ; Ù ŒŒ = Ù ŒŒ @ ï ŒŒ B ï ŒŒ F 𠌌 J 𠌌 M ò ŒŒ N ó ŒŒ T ó ŒŒ U ô #ŒŒ Y ô )ŒŒ Z ô 8ŒŒ ` ô #ŒŒ a ô ŒŒ c ô ŒŒ d õ ŒŒ x ö ŒŒ { ö ŒŒ € ö ,ŒŒ ƒ ö <ŒŒ ‰ ö ,ŒŒ Š ö (ŒŒ ö ŒŒ%  › Ch8]"# ‘$C4L>"G™"ÿÿÝL"ÿÿÕ‡gi  )gfilenamef statprof.scmŒ  ŒŒ   ŒŒ  ŒŒ   ŒŒ   ŒŒ #  ŒŒ )  ŒŒ )  ŒŒ  1 CD‹FŒFÖ?j@/Ihhâ]™  ‘$=4455Ž˜ 4L>"G –4 5 ˜–  "4 >"G CÚgfilenamef statprof.scmŒ  ŒŒ  ú ŒŒ  ú ŒŒ û ŒŒ  û ŒŒ  þ ŒŒ  þ ŒŒ  þ -ŒŒ  þ ŒŒ  þ ŒŒ  þ ŒŒ ! ý ŒŒ " ÿ ŒŒ 9 × ŒŒ ;  ŒŒ E  ŒŒ H  ŒŒ M  ŒŒ _  ŒŒ  a Ch W-/03# #OQOOOQQQ4>"GV4>X4>"GCX4>"GFOgthunk   gloop   g full-stacks?    g gc-callback  -  gpre  L  gthunk  L  gpost  L  gfilenamef statprof.scmŒ  ŒŒ ;  ŒŒ    gloopS Œg full-stacks?S ŒgnameggcprofŒg documentationf+Do an allocation profile of the execution of @var{thunk}. The stack will be sampled soon after every garbage collection, yielding an approximate idea of what is causing allocation in your program. Since GC does not occur very frequently, you may need to use the @var{loop} parameter, to cause @var{thunk} to be called @var{loop} times. If @var{full-stacks?} is true, at each sample, statprof will store away the whole call tree, for later analysis. Use @code{statprof-fetch-stacks} or @code{statprof-fetch-call-tree} to retrieve the last-stored stacks.ŒC4RC>gm  0gfilenamef statprof.scmŒ  } ŒŒ 4 ¯ ŒŒ 8 ° ŒŒ < ± ŒŒ @ ² ŒŒ D ³ ŒŒ H ´ ŒŒ L µ ŒŒ P ¶ ŒŒ T ¸ ŒŒ U º ŒŒ X º ŒŒ \ ¿ ŒŒ F à ŒŒ Ï Å ŒŒ p Æ ŒŒ ´ Ç ŒŒ E Ê ŒŒ Û Ë ŒŒ t Ì ŒŒ $ Î ŒŒ Ú Ð ŒŒ “ Ò ŒŒ  Ù ŒŒ  æ ŒŒ   ŒŒ †  ŒŒ . ? ŒŒ ; M ŒŒ ¨ S ŒŒ  m ŒŒ –  ŒŒ !– – ŒŒ "ñ ¦ ŒŒ & ± ŒŒ ' Ò ŒŒ '¹ Ó ŒŒ ([ Ô ŒŒ (ü Õ ŒŒ ) Ö ŒŒ *5 × ŒŒ *Ô Ø ŒŒ , Ü ŒŒ 3½ å ŒŒ 6p  ŒŒ 7¥ * ŒŒ 8× 0 ŒŒ 8Þ 6 ŒŒ 8å 7 ŒŒ 8ì 8 ŒŒ 8ó 9 ŒŒ :Q ; ŒŒ ;k C ŒŒ @" N ŒŒ Ah h ŒŒ Bï o ŒŒ L¡ x ŒŒ ]*  ŒŒ;  ], C6