Hello community, here is the log from the commit of package viewprof for openSUSE:Factory checked in at 2017-08-31 21:03:13 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/viewprof (Old) and /work/SRC/openSUSE:Factory/.viewprof.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "viewprof" Thu Aug 31 21:03:13 2017 rev:2 rq:513576 version:0.0.0.6 Changes: -------- --- /work/SRC/openSUSE:Factory/viewprof/viewprof.changes 2017-04-18 13:49:50.759160814 +0200 +++ /work/SRC/openSUSE:Factory/.viewprof.new/viewprof.changes 2017-08-31 21:03:14.438284166 +0200 @@ -1,0 +2,5 @@ +Thu Jul 27 14:08:08 UTC 2017 - psimons@suse.com + +- Update to version 0.0.0.6. + +------------------------------------------------------------------- Old: ---- viewprof-0.0.0.1.tar.gz New: ---- viewprof-0.0.0.6.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ viewprof.spec ++++++ --- /var/tmp/diff_new_pack.tqO6Dg/_old 2017-08-31 21:03:15.562126265 +0200 +++ /var/tmp/diff_new_pack.tqO6Dg/_new 2017-08-31 21:03:15.574124580 +0200 @@ -17,7 +17,7 @@ Name: viewprof -Version: 0.0.0.1 +Version: 0.0.0.6 Release: 0 Summary: Text-based interactive GHC .prof viewer License: BSD-3-Clause @@ -52,7 +52,7 @@ %files %defattr(-,root,root,-) %doc LICENSE -%doc CHANGELOG.md +%doc CHANGELOG.md README.md %{_bindir}/%{name} %changelog ++++++ viewprof-0.0.0.1.tar.gz -> viewprof-0.0.0.6.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/viewprof-0.0.0.1/CHANGELOG.md new/viewprof-0.0.0.6/CHANGELOG.md --- old/viewprof-0.0.0.1/CHANGELOG.md 2017-01-25 00:42:28.000000000 +0100 +++ new/viewprof-0.0.0.6/CHANGELOG.md 2017-07-21 08:22:24.000000000 +0200 @@ -1,5 +1,30 @@ # Revision history for viewprof -## 0.0.0 (2017-01-20) +## 0.0.0.5 - 2017-07-21 + +* Relax upper version bound for vty + +## 0.0.0.5 - 2017-07-10 + +* Relax upper version bound for brick +* Add Docker support on Windows + +## 0.0.0.4 - 2017-06-28 + +* Relax upper version bound for brick + +## 0.0.0.3 - 2017-06-12 + +* Relax upper version bound for brick + +## 0.0.0.2 - 2017-02-14 + +* Update ghc-prof to 1.4.0 + +## 0.0.0.1 - 2017-01-25 + +* Relax upper version bounds for vty and brick + +## 0.0.0 - 2017-01-20 * Initial release diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/viewprof-0.0.0.1/README.md new/viewprof-0.0.0.6/README.md --- old/viewprof-0.0.0.1/README.md 1970-01-01 01:00:00.000000000 +0100 +++ new/viewprof-0.0.0.6/README.md 2017-07-21 08:11:57.000000000 +0200 @@ -0,0 +1,63 @@ +# viewprof +[![Hackage](https://img.shields.io/hackage/v/viewprof.svg)](https://hackage.haskell.org/package/viewprof) +[![Hackage-Deps](https://img.shields.io/hackage-deps/v/viewprof.svg)](http://packdeps.haskellers.com/feed?needle=viewprof) +[![Stackage LTS](http://stackage.org/package/viewprof/badge/lts)](http://stackage.org/lts/package/viewprof) +[![Stackage Nightly](http://stackage.org/package/viewprof/badge/nightly)](http://stackage.org/nightly/package/viewprof) +[![Build Status](https://travis-ci.org/maoe/viewprof.svg?branch=master)](https://travis-ci.org/maoe/viewprof) + +viewprof is a text-based interactive GHC .prof viewer. + +![screenshot](img/screenshot.png) + +It has three display modes: + +* __Aggregate cost centers view__: This is the default view. It groups cost centers by their name and module name, like the middle section of .prof files. +* __Call sites view__: If you press enter on a cost center, viewprof displays call sites of the cost center you selected. This view tells how much the cost center spent for each call site. +* __Modules view__: If you press M, viewprof displays the module level breakdown. This view tells coarse overview of cost attribution. + +## Installation + +``` +stack install viewprof +``` + +### On Windows + +#### Prerequisites + +- [Docker for Windows](https://docs.docker.com/docker-for-windows/install/) or [Docker Toolbox](https://docs.docker.com/toolbox/overview/). + - Currently tried with: [Docker Toolbox v17.04.0ce](https://github.com/docker/toolbox/releases/tag/v17.04.0-ce) on Windows 10 Home. +- [cygpath](https://cygwin.com/cygwin-ug-net/cygpath.html) + - Bundled with [Cygwin](https://www.cygwin.com/), [MSYS2](http://www.msys2.org/) etc. + +#### How to install and launch + +```bat +git clone git@github.com:maoe/viewprof.git +cd viewprof/docker +docker-machine start +docker build -t viewprof . +.\viewprof.bat path/to/file.prof +``` + +## Usage + +| keys | action | +|-------------------|---------------------------------------------| +| `q` or `escape` | quit the current view | +| `j` or `↓` | move focus down | +| `k` or `↑` | move focus up | +| `gg` | move focus to the top | +| `G` | move focus to the bottom | +| `C` | display aggregate cost center view | +| `M` | switch to module breakdown | +| `enter` | select a cost center and display call sites | +| `t` | sort by time | +| `a` | sort by allocation | +| `e` | sort by # of entries | +| `h` or `?` | show key bindings | +| `i` | show profile information | + +## Acknowledgement + +`viewprof` was originally meant to be a Haskell port of [mkotha/viewprof](https://github.com/mkotha/viewprof), which is a text-based .prof viewer written in Common Lisp. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/viewprof-0.0.0.1/bin/viewprof.hs new/viewprof-0.0.0.6/bin/viewprof.hs --- old/viewprof-0.0.0.1/bin/viewprof.hs 2017-01-24 21:17:21.000000000 +0100 +++ new/viewprof-0.0.0.6/bin/viewprof.hs 2017-02-15 00:09:46.000000000 +0100 @@ -41,12 +41,12 @@ data View = AggregatesView - { _costCentres :: !(V.Vector Prof.AggregateCostCentre) + { _costCentres :: !(V.Vector Prof.AggregatedCostCentre) , _focus :: !Int } | CallSitesView - { _callee :: !Prof.AggregateCostCentre - , _callSites :: !(V.Vector (Prof.CallSite Prof.AggregateCostCentre)) + { _callee :: !Prof.AggregatedCostCentre + , _callSites :: !(V.Vector (Prof.CallSite Prof.AggregatedCostCentre)) , _focus :: !Int , _expanded :: !(Set Int) } @@ -85,7 +85,7 @@ Right prof -> return Profile { _report = prof , _views = AggregatesView - { _costCentres = V.fromList (Prof.aggregateCostCentres prof) + { _costCentres = V.fromList (Prof.aggregatedCostCentres prof) , _focus = 0 } :| [] , _modalView = Nothing @@ -151,17 +151,17 @@ EvKey (KChar 't') [] -> do invalidateCache continue $! sortCostCentresBy - (Prof.aggregateCostCentreTime &&& Prof.aggregateCostCentreAlloc) + (Prof.aggregatedCostCentreTime &&& Prof.aggregatedCostCentreAlloc) prof EvKey (KChar 'a') [] -> do invalidateCache continue $! sortCostCentresBy - (Prof.aggregateCostCentreAlloc &&& Prof.aggregateCostCentreTime) + (Prof.aggregatedCostCentreAlloc &&& Prof.aggregatedCostCentreTime) prof EvKey (KChar 'e') [] -> do invalidateCache continue $! sortCostCentresBy - Prof.aggregateCostCentreEntries + Prof.aggregatedCostCentreEntries prof EvKey key [] | key `elem` [KEnter] -> do @@ -204,16 +204,16 @@ sortCallSitesBy key p = p & topView . callSites %~ V.modify (Merge.sortBy (flip compare `on` key)) displayCostCentres p = p & views .~ AggregatesView - { _costCentres = V.fromList $ Prof.aggregateCostCentres $ p ^. report + { _costCentres = V.fromList $ Prof.aggregatedCostCentres $ p ^. report , _focus = 0 } NE.:| [] displayCallers p = fromMaybe p $ do let !model = p ^. topView . costCentres !idx = p ^. currentFocus - Prof.AggregateCostCentre {..} <- model V.!? idx + Prof.AggregatedCostCentre {..} <- model V.!? idx (_callee, callers) <- Prof.aggregateCallSites - aggregateCostCentreName - aggregateCostCentreModule + aggregatedCostCentreName + aggregatedCostCentreModule (p ^. report) return $! p & views %~ NE.cons CallSitesView { _callee @@ -283,13 +283,13 @@ AggregatesView {..} -> viewport AggregatesViewport Vertical $ vBox $ V.toList $ flip V.imap _costCentres $ \i row -> cached (AggregatesCache i) $ - let widget = drawAggregateCostCentre row + let widget = drawAggregatedCostCentre row in if i == _focus then withAttr selectedAttr (visible widget) else widget CallSitesView {..} -> viewport CallSitesViewport Vertical $ vBox - [ drawAggregateCostCentre _callee + [ drawAggregatedCostCentre _callee , vBox $ V.toList $ flip V.imap _callSites $ \i row -> cached (CallSitesCache i) $ let widget = drawCallSite _callee row @@ -305,33 +305,33 @@ then withAttr selectedAttr (visible widget) else widget -drawAggregateCostCentre :: Prof.AggregateCostCentre -> Widget n -drawAggregateCostCentre Prof.AggregateCostCentre {..} = hBox - [ txt aggregateCostCentreModule +drawAggregatedCostCentre :: Prof.AggregatedCostCentre -> Widget n +drawAggregatedCostCentre Prof.AggregatedCostCentre {..} = hBox + [ txt aggregatedCostCentreModule , txt "." - , padRight Max $ txt aggregateCostCentreName - , maybe emptyWidget (padRight (Pad 1) . str . show) aggregateCostCentreEntries - , padRight (Pad 1) $ str (formatPercentage aggregateCostCentreTime) - , str (formatPercentage aggregateCostCentreAlloc) + , padRight Max $ txt aggregatedCostCentreName + , maybe emptyWidget (padRight (Pad 1) . str . show) aggregatedCostCentreEntries + , padRight (Pad 1) $ str (formatPercentage aggregatedCostCentreTime) + , str (formatPercentage aggregatedCostCentreAlloc) ] drawCallSite - :: Prof.AggregateCostCentre - -> Prof.CallSite Prof.AggregateCostCentre + :: Prof.AggregatedCostCentre + -> Prof.CallSite Prof.AggregatedCostCentre -> Widget n -drawCallSite Prof.AggregateCostCentre {..} Prof.CallSite {..} = hBox - [ txt $ Prof.aggregateCostCentreModule callSiteCostCentre +drawCallSite Prof.AggregatedCostCentre {..} Prof.CallSite {..} = hBox + [ txt $ Prof.aggregatedCostCentreModule callSiteCostCentre , txt "." - , padRight Max $ txt $ Prof.aggregateCostCentreName callSiteCostCentre + , padRight Max $ txt $ Prof.aggregatedCostCentreName callSiteCostCentre , padRight (Pad 1) $ str $ show callSiteContribEntries , padRight (Pad 1) $ hBox - [ str $ contribution callSiteContribTime aggregateCostCentreTime + [ str $ contribution callSiteContribTime aggregatedCostCentreTime , txt " (" , str $ formatPercentage callSiteContribTime , txt ")" ] , hBox - [ str $ contribution callSiteContribAlloc aggregateCostCentreAlloc + [ str $ contribution callSiteContribAlloc aggregatedCostCentreAlloc , txt " (" , str $ formatPercentage callSiteContribAlloc , txt ")" Binary files old/viewprof-0.0.0.1/img/screenshot.png and new/viewprof-0.0.0.6/img/screenshot.png differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/viewprof-0.0.0.1/viewprof.cabal new/viewprof-0.0.0.6/viewprof.cabal --- old/viewprof-0.0.0.1/viewprof.cabal 2017-01-25 00:42:28.000000000 +0100 +++ new/viewprof-0.0.0.6/viewprof.cabal 2017-07-21 08:22:24.000000000 +0200 @@ -1,32 +1,40 @@ name: viewprof -version: 0.0.0.1 +version: 0.0.0.6 synopsis: Text-based interactive GHC .prof viewer --- description: +description: Text-based interactive GHC .prof viewer +homepage: https://github.com/maoe/viewprof +bug-reports: https://github.com/maoe/viewprof/issues license: BSD3 license-file: LICENSE author: Mitsutoshi Aoe maintainer: Mitsutoshi Aoe <maoe@foldr.in> -copyright: Copyright (C) 2016 Mitsutoshi Aoe +copyright: Copyright (C) 2016-2017 Mitsutoshi Aoe category: Development build-type: Simple -extra-source-files: CHANGELOG.md +extra-source-files: + CHANGELOG.md + README.md + img/screenshot.png cabal-version: >= 1.10 tested-with: GHC == 8.0.2 executable viewprof main-is: viewprof.hs - -- other-extensions: build-depends: base >= 4.9 && < 4.10 - , brick >= 0.16 && < 0.18 + , brick >= 0.16 && < 0.21 , containers >= 0.5.7 && < 0.6 - , ghc-prof >= 1.3.0 && < 1.4 + , ghc-prof >= 1.4 && < 1.5 , lens >= 4.14 && < 4.16 , scientific >= 0.3.4.4 && < 0.4 , text >= 1.2.2.0 && < 1.3 , vector >= 0.10.12.3 && < 0.13 , vector-algorithms >= 0.6.0.4 && < 0.8 - , vty >= 5.13 && < 5.16 + , vty >= 5.13 && < 5.17 hs-source-dirs: bin default-language: Haskell2010 ghc-options: -Wall -threaded + +source-repository head + type: git + location: https://github.com/maoe/viewprof.git
participants (1)
-
root@hilbert.suse.de