[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.hanch...@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)) > _________________________ Racket Developers list: http://lists.racket-lang.org/dev