[racket-dev] [racket-bug] all/14404: "profile" would be more useful if it returned the result(s) of evaluating its body
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)>]
>