[racket-dev] [racket-bug] all/14404: "profile" would be more useful if it returned the result(s) of evaluating its body
I looked through the package descriptions, and it doesn't look like any
of them would use the profiler.
I'll do the change.
Vincent
At Thu, 27 Mar 2014 15:33:48 -0400,
Vincent St-Amour wrote:
>
> Will do.
>
> Is there a convenient way to grep through packages without installing them?
>
> Vincent
>
>
> At Thu, 27 Mar 2014 14:20:01 -0500,
> Robby Findler wrote:
> >
> > [1 <text/plain; UTF-8 (7bit)>]
> > It seems unlikely that anyone does, but could you look at the code on the
> > pkg server to check?
> >
> > Robby
> >
> >
> > On Thu, Mar 27, 2014 at 1:42 PM, Vincent St-Amour <stamourv at ccs.neu.edu>wrote:
> >
> > > [ccing dev]
> > >
> > > I agree. That would also make adding profiling less intrusive than it is
> > > now. Consistency with `time' would also be nice. FWIW, `contract-profile'
> > > behaves like `time'.
> > >
> > > Currently `profile' and `profile-thunk' return whatever the profile
> > > renderer returns. Most renderers print their report and return void.
> > > But, as the documentation mentions, `values' can be used as a renderer
> > > in which case `profile' returns the pre-rendering analyzed profile
> > > data. Returning the result of the profiled expression would break that
> > > behavior.
> > >
> > > On the other hand, it's already possible to get the analyzed data by
> > > invoking the sampler and the analyzer directly. Changing the behavior of
> > > `profile' wouldn't remove that functionality, just make it less
> > > convenient.
> > >
> > > Does anyone rely on that behavior from `profile' and `profile-thunk'?
> > > If not, I think we should change it.
> > >
> > > Vincent
> > >
> > >
> > >
> > > At Sat, 15 Mar 2014 23:12:11 -0400,
> > > eric.hanchrow at gmail.com wrote:
> > > >
> > > > A new problem report is waiting at
> > > > http://bugs.racket-lang.org/query/?cmd=view&pr=14404
> > > >
> > > > Reported by Eric Hanchrow for release: 6.0.0.1--2013-12-13(1f1550a/a)
> > > >
> > > > *** Description:
> > > > I recently tried to use profile, and didn't closely read its
> > > documentation. I naively assumed that it would work similarly to "time" --
> > > namely that I could simply wrap (profile ...) around my code, and my code
> > > would continue to run, but would also emit profiling information. But of
> > > course profile returns void, so I had to tediously capture my thunk's value
> > > myself, and then arrange to have that value passed "outside" of the profile
> > > call. Anyway ... I'd like the below snippet to print 9 not just once (from
> > > the call to "time"), but twice.
> > > >
> > > > *** How to repeat:
> > > > #lang racket
> > > >
> > > > (require profile)
> > > >
> > > > (displayln (profile (+ 2 3 4)))
> > > > (displayln (time (+ 2 3 4)))
> > > >
> > > > *** Environment:
> > > > macosx "Darwin Eric-Hanchrows-MacBook-Pro.local 13.1.0 Darwin Kernel
> > > Version 13.1.0: Thu Jan 16 19:40:37 PST 2014;
> > > root:xnu-2422.90.20~2/RELEASE_X86_64 x86_64" (x86_64-macosx/3m)
> > > (get-display-depth) = 32
> > > > Human Language: english
> > > > (current-memory-use) 287758760
> > > > Links: (links) = (); (links #:user? #f) = ("contract-profile" "syntax"
> > > "mysterx" "sgl" "datalog" "shell-completion" "algol60" "icons" "ds-store"
> > > "slatex" "realm" "games" "make" "trace" "plai" "eopl" "lazy" "preprocessor"
> > > "profile" "racklog" "mzcom" "schemeunit" "unstable" "frtime" "mrlib"
> > > "swindle"); (links #:root? #t) =
> > > (#<path:/Users/erichanchrow/Library/Racket/snapshot/pkgs/throw>
> > > #<path:/Users/erichanchrow/Library/Racket/snapshot/pkgs/zeromq>
> > > #<path:/Users/erichanchrow/Library/Racket/snapshot/pkgs/zmq>); (links
> > > #:user? #f #:root? #t) = (#<path:/Applications/Racket
> > > v6.0.0.1/share/pkgs/racket-lib> #<path:/Applications/Racket
> > > v6.0.0.1/share/pkgs/main-distribution> #<path:/Applications/Racket
> > > v6.0.0.1/share/pkgs/at-exp-lib> #<path:/Applications/Racket
> > > v6.0.0.1/share/pkgs/compatibility> #<path:/Applications/Racket
> > > v6.0.0.1/share/pkgs/compiler> #<path:/Applications/Racket
> > > v6.0.0.1/share/pkgs/data> #<path:/Applications/Racket
> > > v6.0.0.1/share/pkgs/db> #<path:/Applications/Racket
> > > !
> > > > v6.0.0.1/share/pkgs/deinprogramm> #<path:/Applications/Racket
> > > v6.0.0.1/share/pkgs/draw> #<path:/Applications/Racket
> > > v6.0.0.1/share/pkgs/draw-doc> #<path:/Applications/Racket
> > > v6.0.0.1/share/pkgs/draw-lib> #<path:/Applications/Racket
> > > v6.0.0.1/share/pkgs/drracket> #<path:/Applications/Racket
> > > v6.0.0.1/share/pkgs/errortrace> #<path:/Applications/Racket
> > > v6.0.0.1/share/pkgs/future-visualizer> #<path:/Applications/Racket
> > > v6.0.0.1/share/pkgs/future-visualizer-typed> #<path:/Applications/Racket
> > > v6.0.0.1/share/pkgs/gui> #<path:/Applications/Racket
> > > v6.0.0.1/share/pkgs/htdp> #<path:/Applications/Racket
> > > v6.0.0.1/share/pkgs/html> #<path:/Applications/Racket
> > > v6.0.0.1/share/pkgs/images> #<path:/Applications/Racket
> > > v6.0.0.1/share/pkgs/macro-debugger> #<path:/Applications/Racket
> > > v6.0.0.1/share/pkgs/macro-debugger-text-lib> #<path:/Applications/Racket
> > > v6.0.0.1/share/pkgs/math> #<path:/Applications/Racket
> > > v6.0.0.1/share/pkgs/mzscheme> #<path:/Applications/Racket
> > > v6.0.0.1/share/pkgs/net> #<path
> > > :!
> > > > /Applications/Racket v6.0.0.1/share/pkgs/parser-tools> #<path:!
> > > > /Applications/Racket v6.0.0.1/share/pkgs/pconvert-lib>
> > > #<path:/Applications/Racket v6.0.0.1/share/pkgs/pict>
> > > #<path:/Applications/Racket v6.0.0.1/share/pkgs/picturing-programs>
> > > #<path:/Applications/Racket v6.0.0.1/share/pkgs/planet>
> > > #<path:/Applications/Racket v6.0.0.1/share/pkgs/plot>
> > > #<path:/Applications/Racket v6.0.0.1/share/pkgs/profile>
> > > #<path:/Applications/Racket v6.0.0.1/share/pkgs/r5rs>
> > > #<path:/Applications/Racket v6.0.0.1/share/pkgs/r6rs>
> > > #<path:/Applications/Racket v6.0.0.1/share/pkgs/racket-doc>
> > > #<path:/Applications/Racket v6.0.0.1/share/pkgs/distributed-places>
> > > #<path:/Applications/Racket v6.0.0.1/share/pkgs/racket-index>
> > > #<path:/Applications/Racket v6.0.0.1/share/pkgs/rackunit>
> > > #<path:/Applications/Racket v6.0.0.1/share/pkgs/readline>
> > > #<path:/Applications/Racket v6.0.0.1/share/pkgs/redex>
> > > #<path:/Applications/Racket v6.0.0.1/share/pkgs/sandbox-lib>
> > > #<path:/Applications/Racket v6.0.0.1/share/pkgs/scribble>
> > > #<path:/Applications/Racket v6.0.0.1/share/pkgs/seriali
> > > z!
> > > > e-cstruct-lib> #<path:/Applications/Racket
> > > v6.0.0.1/share/pkgs/slideshow> #<path:/Applications/Racket
> > > v6.0.0.1/share/pkgs/snip> #<path:/Applications/Racket
> > > v6.0.0.1/share/pkgs/srfi> #<path:/Applications/Racket
> > > v6.0.0.1/share/pkgs/string-constants> #<path:/Applications/Racket
> > > v6.0.0.1/share/pkgs/syntax-color> #<path:/Applications/Racket
> > > v6.0.0.1/share/pkgs/typed-racket> #<path:/Applications/Racket
> > > v6.0.0.1/share/pkgs/typed-racket-more> #<path:/Applications/Racket
> > > v6.0.0.1/share/pkgs/unstable> #<path:/Applications/Racket
> > > v6.0.0.1/share/pkgs/unstable-contract-lib> #<path:/Applications/Racket
> > > v6.0.0.1/share/pkgs/unstable-latent-contract-lib>
> > > #<path:/Applications/Racket v6.0.0.1/share/pkgs/unstable-list-lib>
> > > #<path:/Applications/Racket v6.0.0.1/share/pkgs/unstable-options-lib>
> > > #<path:/Applications/Racket
> > > v6.0.0.1/share/pkgs/unstable-parameter-group-lib>
> > > #<path:/Applications/Racket v6.0.0.1/share/pkgs/unstable-2d>
> > > #<path:/Applications/Racket v6.0.0.1/share/pkgs/web-server> #<pat
> > > h!
> > > > :/Applications/Racket v6.0.0.1/share/pkgs/wxme> #<path:/Applications/Ra!
> > > > cket v6.0.0.1/share/pkgs/xrepl> #<path:/Applications/Racket
> > > v6.0.0.1/share/pkgs/base> #<path:/Applications/Racket
> > > v6.0.0.1/share/pkgs/compatibility-lib> #<path:/Applications/Racket
> > > v6.0.0.1/share/pkgs/drracket-plugin-lib> #<path:/Applications/Racket
> > > v6.0.0.1/share/pkgs/errortrace-lib> #<path:/Applications/Racket
> > > v6.0.0.1/share/pkgs/gui-lib> #<path:/Applications/Racket
> > > v6.0.0.1/share/pkgs/parser-tools-lib> #<path:/Applications/Racket
> > > v6.0.0.1/share/pkgs/string-constants-lib> #<path:/Applications/Racket
> > > v6.0.0.1/share/pkgs/rackunit-lib> #<path:/Applications/Racket
> > > v6.0.0.1/share/pkgs/scribble-doc> #<path:/Applications/Racket
> > > v6.0.0.1/share/pkgs/scribble-lib> #<path:/Applications/Racket
> > > v6.0.0.1/share/pkgs/compatibility-doc> #<path:/Applications/Racket
> > > v6.0.0.1/share/pkgs/math-lib> #<path:/Applications/Racket
> > > v6.0.0.1/share/pkgs/compiler-lib> #<path:/Applications/Racket
> > > v6.0.0.1/share/pkgs/data-lib> #<path:/Applications/Racket
> > > v6.0.0.1/share/pkgs/data-doc> #<path:/Application
> > > s!
> > > > /Racket v6.0.0.1/share/pkgs/db-lib> #<path:/Applications/Racket
> > > v6.0.0.1/share/pkgs/db-doc> #<path:/Applications/Racket
> > > v6.0.0.1/share/pkgs/scheme-lib> #<path:/Applications/Racket
> > > v6.0.0.1/share/pkgs/srfi-lib> #<path:/Applications/Racket
> > > v6.0.0.1/share/pkgs/wxme-lib> #<path:/Applications/Racket
> > > v6.0.0.1/share/pkgs/gui-doc> #<path:/Applications/Racket
> > > v6.0.0.1/share/pkgs/pict-doc> #<path:/Applications/Racket
> > > v6.0.0.1/share/pkgs/pict-lib> #<path:/Applications/Racket
> > > v6.0.0.1/share/pkgs/draw-x86_64-macosx> #<path:/Applications/Racket
> > > v6.0.0.1/share/pkgs/planet-lib> #<path:/Applications/Racket
> > > v6.0.0.1/share/pkgs/snip-lib> #<path:/Applications/Racket
> > > v6.0.0.1/share/pkgs/typed-racket-lib> #<path:/Applications/Racket
> > > v6.0.0.1/share/pkgs/html-lib> #<path:/Applications/Racket
> > > v6.0.0.1/share/pkgs/images-lib> #<path:/Applications/Racket
> > > v6.0.0.1/share/pkgs/net-lib> #<path:/Applications/Racket
> > > v6.0.0.1/share/pkgs/srfi-doc> #<path:/Applications/Racket
> > > v6.0.0.1/share/pkgs/gui-pkg-manag
> > > e!
> > > > r-lib> #<path:/Applications/Racket v6.0.0.1/share/pkgs/mzscheme-doc> #<!
> > > > path:/Applications/Racket v6.0.0.1/share/pkgs/net-doc>
> > > #<path:/Applications/Racket v6.0.0.1/share/pkgs/planet-doc>
> > > #<path:/Applications/Racket v6.0.0.1/share/pkgs/string-constants-doc>
> > > #<path:/Applications/Racket v6.0.0.1/share/pkgs/errortrace-doc>
> > > #<path:/Applications/Racket v6.0.0.1/share/pkgs/profile-doc>
> > > #<path:/Applications/Racket v6.0.0.1/share/pkgs/r5rs-doc>
> > > #<path:/Applications/Racket v6.0.0.1/share/pkgs/srfi-lite-lib>
> > > #<path:/Applications/Racket v6.0.0.1/share/pkgs/htdp-lib>
> > > #<path:/Applications/Racket v6.0.0.1/share/pkgs/htdp-doc>
> > > #<path:/Applications/Racket v6.0.0.1/share/pkgs/html-doc>
> > > #<path:/Applications/Racket v6.0.0.1/share/pkgs/images-gui-lib>
> > > #<path:/Applications/Racket v6.0.0.1/share/pkgs/images-doc>
> > > #<path:/Applications/Racket v6.0.0.1/share/pkgs/eli-tester>
> > > #<path:/Applications/Racket v6.0.0.1/share/pkgs/cext-lib>
> > > #<path:/Applications/Racket v6.0.0.1/share/pkgs/math-doc>
> > > #<path:/Applications/Racket v6.0.0.1/share/pkgs/mzscheme-lib>
> > > #<path:/Applications
> > > /!
> > > > Racket v6.0.0.1/share/pkgs/parser-tools-doc>
> > > #<path:/Applications/Racket v6.0.0.1/share/pkgs/web-server-lib>
> > > #<path:/Applications/Racket v6.0.0.1/share/pkgs/web-server-doc>
> > > #<path:/Applications/Racket v6.0.0.1/share/pkgs/plot-lib>
> > > #<path:/Applications/Racket v6.0.0.1/share/pkgs/plot-gui-lib>
> > > #<path:/Applications/Racket v6.0.0.1/share/pkgs/plot-doc>
> > > #<path:/Applications/Racket v6.0.0.1/share/pkgs/r5rs-lib>
> > > #<path:/Applications/Racket v6.0.0.1/share/pkgs/r6rs-lib>
> > > #<path:/Applications/Racket v6.0.0.1/share/pkgs/r6rs-doc>
> > > #<path:/Applications/Racket v6.0.0.1/share/pkgs/rackunit-doc>
> > > #<path:/Applications/Racket v6.0.0.1/share/pkgs/typed-racket-doc>
> > > #<path:/Applications/Racket v6.0.0.1/share/pkgs/slideshow-doc>
> > > #<path:/Applications/Racket v6.0.0.1/share/pkgs/distributed-places-lib>
> > > #<path:/Applications/Racket v6.0.0.1/share/pkgs/distributed-places-doc>
> > > #<path:/Applications/Racket v6.0.0.1/share/pkgs/rackunit-gui>
> > > #<path:/Applications/Racket v6.0.0.1/share/pkgs/rackunit-plugin-l
> > > i!
> > > > b> #<path:/Applications/Racket v6.0.0.1/share/pkgs/readline-lib> #<path!
> > > > :/Applications/Racket v6.0.0.1/share/pkgs/readline-doc>
> > > #<path:/Applications/Racket v6.0.0.1/share/pkgs/redex-doc>
> > > #<path:/Applications/Racket v6.0.0.1/share/pkgs/redex-examples>
> > > #<path:/Applications/Racket v6.0.0.1/share/pkgs/redex-lib>
> > > #<path:/Applications/Racket v6.0.0.1/share/pkgs/redex-gui-lib>
> > > #<path:/Applications/Racket v6.0.0.1/share/pkgs/slideshow-lib>
> > > #<path:/Applications/Racket v6.0.0.1/share/pkgs/slideshow-exe>
> > > #<path:/Applications/Racket v6.0.0.1/share/pkgs/slideshow-plugin>
> > > #<path:/Applications/Racket v6.0.0.1/share/pkgs/syntax-color-lib>
> > > #<path:/Applications/Racket v6.0.0.1/share/pkgs/syntax-color-doc>
> > > #<path:/Applications/Racket v6.0.0.1/share/pkgs/unstable-flonum-lib>
> > > #<path:/Applications/Racket v6.0.0.1/share/pkgs/xrepl-lib>
> > > #<path:/Applications/Racket v6.0.0.1/share/pkgs/xrepl-doc>
> > > #<path:/Applications/Racket v6.0.0.1/share/pkgs/gui-x86_64-macosx>
> > > #<path:/Applications/Racket v6.0.0.1/share/pkgs/scribble-text-lib>
> > > #<path:/Applications/Racket v6.0.0.1/shar
> > > e!
> > > > /pkgs/math-x86_64-macosx> #<path:/Applications/Racket
> > > v6.0.0.1/share/pkgs/unstable-macro-testing-lib> #<path:/Applications/Racket
> > > v6.0.0.1/share/pkgs/unstable-debug-lib> #<path:/Applications/Racket
> > > v6.0.0.1/share/pkgs/unstable-pretty-lib> #<path:/Applications/Racket
> > > v6.0.0.1/share/pkgs/plot-compat> #<path:/Applications/Racket
> > > v6.0.0.1/share/pkgs/redex-pict-lib>)
> > > > raco pkg (show):
> > > > Installation-wide:
> > > > Package Checksum Source
> > > > main-distribution 009c289657b86ab25f320828841fa61a5425a257
> > > (catalog main-distribution)
> > > > racket-lib 15de3807106727eeb46c7df35153b8ab29bd6f1f
> > > (catalog racket-lib)
> > > > [175 auto-installed packages not shown]
> > > > User-specific for installation "snapshot":
> > > > Package Checksum Source
> > > > zeromq e603d945685aa2bde34243ead5044bfc15dc563f (catalog zeromq)
> > > > zmq 10b634599296a142711138dab6b620db80f67738 (catalog zmq)
> > > > [1 auto-installed package not shown]
> > > >
> > > >
> > > >
> > > > Collections:
> > > > ("/Users/erichanchrow/Library/Racket/snapshot/collects"
> > > > (non-existent-path))
> > > > ("/Applications/Racket v6.0.0.1/collects"
> > > > (".gitignore" "acks" "compiler" "data" "db" "dynext" "ffi" "file"
> > > "info" "info-domain" "json" "launcher" "net" "openssl" "pkg" "planet"
> > > "racket" "rackunit" "raco" "reader" "realm" "s-exp" "scheme" "setup" "srfi"
> > > "syntax" "unstable" "version" "xml"))
> > > >
> > > > Recent Internal Errors:
> > > > Computer Language: (("Determine language from source") (#(#t print
> > > mixed-fraction-e #f #t debug) (default) #() "#lang racket\n" #t #t ((main)
> > > (test)) #t))
> > > >
> > >
> > [2 <text/html; UTF-8 (quoted-printable)>]
> >