Home
Reading
Searching
Subscribe
Sponsors
Statistics
Posting
Contact
Spam
Lists
Links
About
Hosting
Filtering
Features Download
Marketing
Archives
FAQ
Blog
 
Gmane
From: Peter Hercek <phercek <at> gmail.com>
Subject: ANN: GhciExt 0.6 for GHC 6.10.3
Newsgroups: gmane.comp.lang.haskell.glasgow.user
Date: Thursday 14th May 2009 21:24:40 UTC (over 7 years ago)
Hi,

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
(allow macros 
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
command.
: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  
if 
:watch      -- break at location  when  is True
:count  []     -- count/stop execution at  or query 
bp hits
 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 [email protected]' 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).
Prelude>

Not so much obsolete description of how it works (and how to use it) is 
here:

http://permalink.gmane.org/gmane.comp.lang.haskell.glasgow.user/16270

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.


Enjoy,
  Peter.
 
CD: 3ms