debian/0000755000000000000000000000000012147643201007166 5ustar debian/threadscope.desktop0000644000000000000000000000052412036252174013065 0ustar [Desktop Entry] Version=1.0 Encoding=UTF-8 Name=threadscope Icon=/usr/share/threadscope/threadscope.png Comment=Haskell GHC thread profiler Exec=/usr/bin/threadscope Terminal=false Type=Application Categories=Application;Development; MimeType=application/x-threadscope; Name[es]=threadscope Comment[es]=Perfilador de hilos para Haskell GHC debian/watch0000644000000000000000000000037512036252174010226 0ustar # See uscan(1) for format version=3 opts="downloadurlmangle=s|archive/([\w\d_-]+)/([\d\.]+)/|archive/$1/$2/$1-$2.tar.gz|,\ filenamemangle=s|(.*)/$|threadscope-$1.tar.gz|" \ http://hackage.haskell.org/packages/archive/threadscope \ ([\d\.]*\d)/ debian/threadscope.manpages0000644000000000000000000000002512036252174013203 0ustar debian/threadscope.1 debian/control0000644000000000000000000000245012147621401010570 0ustar Source: threadscope Section: haskell Priority: extra Maintainer: Debian Haskell Group Uploaders: Ernesto Hernández-Novich (USB) Build-Depends: debhelper (>= 9), cdbs, haskell-devscripts (>= 0.8.13), ghc, libghc-mtl-dev, libghc-ghc-events-dev (>= 0.4.2), libghc-cairo-dev, libghc-gtk-dev (>= 0.12), libghc-cairo-dev, libghc-glib-dev, libghc-pango-dev Standards-Version: 3.9.4 Homepage: http://hackage.haskell.org/package/threadscope Vcs-Darcs: http://darcs.debian.org/pkg-haskell/threadscope Vcs-Browser: http://darcs.debian.org/cgi-bin/darcsweb.cgi?r=pkg-haskell/threadscope Package: threadscope Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends} Provides: ${haskell:Provides} Description: graphical thread profiler for Haskell programs Threadscope is a graphical thread profiler for Haskell programs. It parses and displays the content of .eventlog files emitted by the GHC 6.12.1 and later runtimes, showing a timeline of spark creation, spark-to-thread promotions and garbage collections. . This helps debugging the parallel performance of Haskell programs, making easier to check that work is well balanced across the available processors and spot performance issues relating to garbage collection or poor load balancing. debian/README.Debian0000644000000000000000000000352112036252174011232 0ustar Using Threadscope ----------------- In order for threadscope to be useful, you have to compile your Haskell program to use the threaded run-time and also to create runtime profile logs, e.g. $ ghc -threaded -eventlog --make Foo.hs -o foo Once the program is built, execute it using the multithreaded run-time, specifying the number of cores to use in the usual manner, but also requesting the creation of an event log, e.g. for two cores (actually Haskell Execution Contexts, or HEC) and event log creation you'd use $ foo +RTS -N2 -ls -RTS ... Once the program runs to completion, a file named foo.eventlog is produced. You can start threadscope from the command line, using the aforementioned .eventlog file as the sole argument, e.g. $ threadscope foo.eventlog or you can start threadscope from the desktop menus and use its file browsing capabilities to find and open foo.eventlog. Once opened, you'll see that threadscope: * Displays the activity on each Haskell Execution Context (HEC) which roughly corresponds to an operating system thread. For each thread you can see whether it is running a Haskell thread or performing garbage collection. * You can find out information about when Haskell threads are ready to run and information about why a Haskell thread was suspended. * You can observe how threads migrate between HECs and you can observe sparks being picked up for speculative execution. * An activity profile indicates the rough utilization of the HECs and when the number of HECs are greater than the number of processing cores this gives a rough guide to the overall utilization. * You can place bookmarks at various points in the time profile to help with navigation. * You can save the graphical reports to PNG or PDF files. Have fun! -- Ernesto Hernández-Novich (USB) Mon, 28 Jun 2010 19:26:47 -0430 debian/rules0000755000000000000000000000061312036252174010250 0ustar #!/usr/bin/make -f include /usr/share/cdbs/1/rules/debhelper.mk include /usr/share/cdbs/1/class/hlibrary.mk DEB_SETUP_GHC_CONFIGURE_ARGS := --datasubdir=$(CABAL_PACKAGE) build/$(CABAL_PACKAGE) :: build-ghc-stamp install/$(CABAL_PACKAGE) :: build/$(CABAL_PACKAGE) $(DEB_SETUP_BIN_NAME) copy --builddir=dist-ghc --destdir=debian/$(CABAL_PACKAGE) rm -rf debian/$(CABAL_PACKAGE)/usr/share/doc debian/changelog0000644000000000000000000000231512147643201011041 0ustar threadscope (0.2.2-2) unstable; urgency=low * Enable compat level 9 -- Joachim Breitner Fri, 24 May 2013 12:52:49 +0200 threadscope (0.2.2-1) experimental; urgency=low * Depend on haskell-devscripts 0.8.13 to ensure this packages is built against experimental * Bump standards version, no change * New upstream release -- Joachim Breitner Thu, 08 Nov 2012 19:36:10 +0100 threadscope (0.2.1-1) unstable; urgency=low * New upstream release -- Joachim Breitner Tue, 13 Mar 2012 20:14:13 +0100 threadscope (0.1.3-1) unstable; urgency=low * Team upload. [ Marco Silva ] * Use ghc instead of ghc6 [ Giovanni Mascellani ] * New upstream release (closes: #628250). * Standards-Version bumped to 3.9.2 (no changes required). * debian/copyright: missing copyright holder added. * debian/*: updating hardcoded version numbers. * debian/control: short description put in nominal form. -- Giovanni Mascellani Sat, 28 May 2011 17:01:12 +0200 threadscope (0.1.2-1) unstable; urgency=low * Initial release (Closes: 587483). -- Ernesto Hernández-Novich (USB) Mon, 28 Jun 2010 20:40:00 -0430 debian/source/0000755000000000000000000000000012036252174010470 5ustar debian/source/format0000644000000000000000000000001412036252174011676 0ustar 3.0 (quilt) debian/threadscope.menu0000644000000000000000000000042312036252174012356 0ustar ?package(threadscope): needs="X11" section="Applications/Programming" \ title="Threadscope" \ longtitle="Haskell GHC thread profiler" \ description="Haskell GHC thread profiler tool." \ command="/usr/bin/threadscope" \ icon="/usr/share/threadscope/threadscope.xpm" debian/threadscope.install0000644000000000000000000000017612036252174013065 0ustar debian/threadscope.xpm usr/share/threadscope debian/threadscope.desktop usr/share/applications/ debian/compat0000644000000000000000000000000212147616405010372 0ustar 9 debian/copyright0000644000000000000000000000510712036252174011126 0ustar Format-Specification: http://svn.debian.org/wsvn/dep/web/deps/dep5.mdwn?op=file&rev=135 Name: threadscope Maintainer: Satnam Singh Source: http://hackage.haskell.org/packages/archive/threadscope Files: * Copyright: 2009-2010, Simon Marlow , Donnie Jones , Satnam Singh , 2002, The University Court of the University of Glasgow License: Glasgow Haskell Compiler License Files: debian/* Copyright: 2010, Ernesto Hernández-Novich (USB) License: GPL-3+ License: Glasgow Haskell Compiler License The Glasgow Haskell Compiler License . Copyright 2002, The University Court of the University of Glasgow. All rights reserved. . Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: . Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. . Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. . Neither name of the University nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. . THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW AND THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. License: GPL-3+ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. . On Debian GNU/Linux systems, the complete text of the GNU General Public License can be found in `/usr/share/common-licenses/GPL-3' debian/threadscope.xpm0000644000000000000000000000202312036252174012214 0ustar /* XPM */ static char * threadscope_xpm[] = { "31 20 19 1", " c None", ". c #39B54A", "+ c #38B449", "@ c #38B54A", "# c #39B449", "$ c #34B54B", "% c #37B54A", "& c #F7941E", "* c #F6941E", "= c #FA931D", "- c #F6931D", "; c #F7931D", "> c #FB931D", ", c #FC931C", "' c #FD921C", ") c #BE1D2C", "! c #BF1E2D", "~ c #BE1D2D", "{ c #BF1E2C", " .+ .+. ... ++ ", " .... +..++ +..++ +..++ ", "...++. ++..+. +.++. .....+ ", " ++. +. .+. .+ .+ ... ++ +. ", " +.+.+. +.++.. +..++. ..... ", " +.... ++++ .+++ .+.+. ", " @ # $ % ", " &*= -;> &&;, -*;' ", " -&&&- -&--- -&&-- &&&&- ", " -&&&- &- -& -&-&-& -&-&&& ", " &- &-- &- -&- -- -& &-& -&", " -&&&-& --&-- &&&&- --&&&", " &--- -&&- --&& &--& ", " ", " )!)! ~{!) ~~{! ~~!) ", "!)))!) !))!! )!!)! ))!)) ", ")! ))! !) ))) !) )! ))) )! ", " !!) )! )))))) !!)))! !! )! ", " !)!)! !)!)!) )!!!) !)!)! ", " !!) )!!) !!) !)) "}; debian/threadscope.10000644000000000000000000000431712036252174011560 0ustar .TH THREADSCOPE 1 "June 28, 2010" .SH NAME threadscope \- a graphical thread profiler for Haskell GHC programs .SH SYNOPSIS .BR threadscope .RI [ program.eventlog ] .br .SH DESCRIPTION .B Threadscope is a graphical thread profiler for Haskell programs. .br .sp 1 It parses and displays the content of .eventlog files emitted by the GHC 6.12.1 and later runtimes, showing a timeline of spark creation, spark-to-thread promotions and garbage collections. .br .sp 1 This helps debugging the parallel performance of Haskell programs, making easier to check that work is well balanced across the available processors and spot performance issues relating to garbage collection or poor load balancing. .PP .SH ARGUMENTS .BR threadscope takes the name of the GHC RTS event-log file to process as its single argument. If no filename is given, .BR threadscope starts with an empty workspace, where any event-log file can be loaded by means of the GUI file browser facilities. .SH USAGE In order for .BR threadscope to be useful, you have to compile your Haskell program to use GHC's threaded run-time and also to create runtime profile logs. This can be accomplished with the following command line options to .BR ghc (1) .sp 2 .RS 4 $ ghc -threaded -eventlog --make Foo.hs -o foo .RE .sp 2 Once the program is built, execute it using the multithreaded run-time, specifying the number of HECs (Haskell Execution Contexts) to use in the usual manner, but also requesting the creation of an event log. For example, to use two HECs and create an event log you would use .sp 2 .RS 4 $ foo +RTS -N2 -ls -RTS ... .RE .sp 2 Once the program runs to completion, a file named foo.eventlog is produced. You can start .BR threadscope from the shell prompt passing the event-log filename as the single argument, or you can start .BR threadscope from the desktop menus and use its file browsing capabilities to find and open it. .SH SEE ALSO .BR ghc (1) .br .SH AUTHOR .BR threadscope was written by .sp 1 .RS 4 Simon Marlow .br Donnie Jones .br Satnam Singh .RE .PP This manual page was written by .sp 1 .RS 4 Ernesto Hernández-Novich (USB) .RE .PP for the Debian project (and may be used by others).