[Haskell-cafe] Re: regex package for yhc?

ChrisK haskell at list.mightyreason.com
Thu Dec 6 16:41:47 EST 2007


Thomas Hartman wrote:
> 
> Is there some way to use any of the various regex packages on hackage
> via yhc? Has anyone installed one them successfully?
> 
> I'd like regex-tdfa, but would settle for regex-posix, or really,
> anything that brings the convenience of regex to yhc.
> 
> In general, is there a straightforward way to install "extralibs" type
> packages for universal "import" availability in yhc?
> 
> Is there a cabal equivalent for yhc? Documentation pointer would be
> appreciated; I searched but couldn't find anything. Maybe not using the
> right keywords...
> 
> t.
> 
> 

I put the regex-* packages on hackage.  I have had no reports of use with yhc.

Some of the convenience comes from the regex-base font end.

The high level (=~) and 'match' regex API depends on the MPTC's of regex-base,
and these currently use functional dependencies.  This works on GHC and Hugs.

I cannot quickly find on http://www.haskell.org/haskellwiki/Yhc what YHC supports.

The regex-posix package is a backend, the oldest.  It exposes the platform's
POSIX regex.h library through the FFI calls in Text/Regex/Posix/Wrap.hsc.  This
C api is further layered in the data type specific modules:

Text/Regex/Posix/String.hs
Text/Regex/Posix/Sequence.hs
Text/Regex/Posix/ByteString.hs
Text/Regex/Posix/ByteString/Lazy.hs

And all of that is re-exported in

Text/Regex/Posix.hs

A similar design is followed by the regex-pcre backend (and the deprecated
regex-tre backend).

One _could_ refactor regex-posix into two packages.  One would give standalone
accesses to the backend and simply be Haskell98 + FFI.  The other would declare
the instances to make this available though regex-base.

The regex-tdfa backend is my own creation, and is not a wrapper for another
library.   It uses some non-Haskell98 syntax, such as the "mdo" syntactic sugar
for MonadFix (aka recursive do).

Cheers,
  Chris



More information about the Haskell-Cafe mailing list