I know there were 4 unique IP addresses which checked it out. Since I do
not know who they are I just spam this list again :)
You can get it here: http://www.hck.sk/users/peter/pub/
If you decide to give it a try then read the README file before installing.
It should work with the stock GHC 6.10.2 and higher, but I only tried
briefly with GHC 6.10.3 (as it was released) and I use it without any
problem with my customized GHC 6.10.3 (dirty support for ansi escape
sequences in ':set prompt' for color highlighting of the prompt, patch
for ticket http://hackage.haskell.org/trac/ghc/ticket/3084
to redefine builtin GHCi commands), and few more details).
Here is what it does:
Prelude> :defs long
:. -- source commands from
:* ... -- run times
:x ... -- run with stdout suppressed
:out -- redirect ghci stdout back to console
:redir ... -- execute redirecting stdout to
:grep < ... -- run grep on output
Runs grep from your OS on the output of . This means all the options
of your OS grep are available. '<' separates grep options from the
:find [-] -- step with until is found
Prepend variable name with '-' to disable printing of its value.
:locate -- step with until location is hit
:bp -- put breakpoint at (adds hit count)
:inject -- at location run if and stop if
There are two special identifiers which can be used in the breakpoint
code () and the breakpoint stop condition (); but which are not
usable in the breakpoint code condition (). These are:
- ghciExt_BpId - macro name; translates to breakpoint id
- ghciExt_HitCnt - macro name; translates to breakpoint hit count
:strobe [""] -- at location show hit count if
:monitor [""] -- show comma-sep. variables at location
:watch -- break at location when is True
:count  -- count/stop execution at or query
There are three ways how to use this command:
- :count 0 - never stops; counts hits and extends trace history
- :count N - stops when location is hit N-th time
- :count N - shows hit count of a ghciExt breakpoint with number N.
:hl ... -- highlight the output of
:defs [long] -- list user commands (possibly with long help)
General information for all GhciExt commands:
- Most arguments may be in quotation marks (to allow spaces in them).
- Instead of a regular quotation mark, @x can be used to start a string
argument too. In such a case the argument is finished when character
x appears again after `@x' string. Use any character in place of x.
This was added so that one does not need to escape quotation marks
and back-slashes in arguments (especially those representing code).
Not so much obsolete description of how it works (and how to use it) is
Notable changes are:
* much better :grep command (you can even get color highlighted output)
* you do not need to prefix commands :main, :continute, :step, and :trace
with :x any more
* :findex replaced with much better :locate
It works on linux. The only reason I recall it would not work on windows is
the use of '/dev/null'. But I never tried on windows.