# 2010-11-18 Dr. Alistair Ward ## 0.9.0.0 * First version of the package. ## 0.9.0.1 * Reacted to major-number changes in the packages **ToolShed-0.10.0.0** & **RegExDot-0.10.0.0**. * Created **src/RegExChar/** (& then modified module-names accordingly) & **data/** sub-directories. * Pacified **hlint**. * Added a makefile. * Qualified identifiers used in error-messages. ## 0.9.0.2 * Ported to ghc-7.0.1: Replaced the deprecated module **Test.QuickCheck.Batch**, & labelled properties. * Added the cabal-flag **threaded**, to account for the requirement to link with the threaded runtime when using a threaded version of the library package **RegExDot**. ## 0.9.0.3 * Parallelised processing where **grecce** is requested to read multiple input-data files. * Extracted matching-operation from the **Main** module, into new module **Grecce.Grep**. * Migrated modules required only by the executable **grecce**, from the directory **RegExChar** into the new directory **Grecce**. * Replaced use of @threaded@-flag in source-code, with CABAL CPP-macro. * Added *.spec*-file. ## 0.9.0.4 * Added default values of command-line flags, to usage-message. * Reacted to migration of **RegExDot.Options** to **ToolShed.Options**. * Used new **ToolShed.Package** module. ## 0.9.0.5 * Fixed negated reference to unparenthesised CPP-macro **MIN_VERSION**. * Protected reference in **Grecce/QC/QuickChecks.hs**, to `Test.QuickCheck.verboseCheck`, using CPP-statement. ## 0.9.0.6 * Amended RPM *.spec*-file, to install under **/usr**, rather than **/usr/local**. * Renamed package from **RegExChar** to **regexchar**, for compatibility with Debian's *.deb*-format. * Added directory-structure required to build *.deb*-package. ## 0.9.0.7 * Redefined man-page to be an **extra-source-file** in the *.cabal*-file & the *.spec*-file. * Added manually controlled **llvm** flag to the *.cabal*-file. * Replaced references to the module **ToolShed.Package** with **Distribution.Package**. * Changed identifier for type-parameters, to better reflect its role. * Removed dependency on archaic module **ToolShed.Arithmetic**. * Reacted to the creation of module **ToolShed.Defaultable**. * Uploaded to [Hackage](http://hackage.haskell.org/packages/hackage.html). ## 0.9.0.8 * Amended the *.cabal*-file to more correctly specify dependency on package **toolshed**. * Used new module **ToolShed.Pair** from package toolshed-0.12.0.0. * Relocated modules **Grecce.Assert**, **Grecce.Performance** and **Grecce.QC**, into new layer **Test**, in module-hierarchy. * Guarded **eager-blackholing** flag in the *cabal*-file. ## 0.9.0.9 * Recoded **RegExChar.RegExOptsChar** to the interface `Data.Array.IArray.IArray`, rather than the data-type `Data.Array.Array`. * Replaced `(+ 1)` and `(- 1)` with the faster calls `succ` and `pred`, in **RegExChar.RegExOptsChar**, **Grecce.Test.Performance.ExtendedRegExTestsPositive** and **Grecce.Grep**. * Used `Paths_regexchar.version` in **Main**, rather than hard-coding it. * Reacted to new module-hierarchy and addition of method `ToolShed.SelfValidate.getErrors`, in **toolshed-0.13.0.0**, and used it to improved error-reporting in @instance Read RegExChar.ExtendedRegExChar.ExtendedRegExChar@. * Replaced use of `Control.Monad` in **RegExChar.MetaChar** and **RegExChar.ExtendedRegExChar**, with `Control.Applicative`. * Replaced `System` with `System.Environment` and `System.Exit`. * Removed dependency on **haskell98**. ## 0.9.0.10 * Fully qualified symbols imported from package **regexdot**. * Used new constant `RegExDot.Anchor.unanchored`. * Added details to any failure to parse the command-line arguments. * Used new test-modules from **toolshed-0.14.0.0**. ## 0.9.0.11 * Refactored **Grecce.Test.QC.QuickChecks**. * Replaced calls to `error` from inside the IO-monad, with `Control.Monad.fail`. * Trapped command-line arguments to which garbage has been appended. * Added files to build *.deb* to the *.cabal*-file. * Tested with **haskell-platform-2013.2.0.0**. * Replaced preprocessor-directives with **build-depends** constraints in the *.cabal*-file. ## 0.9.0.12 * Either replaced instances of `(<$>)` with `fmap` to avoid ambiguity between **Control.Applicative** & **Prelude** which (from **base-4.8**) also exports this symbol, or hid the symbol when importing the **Prelude**.. ## 0.9.0.13 * Added the compiler to the output returned for the command-line option **version**. * Changed flag **threaded** in the *.cabal*-file to **manual**. * Added **Default-language**-specification to the *.cabal*-file. * Added file **README.markdown**. * Converted this file to markdown-format. * Replaced `System.Exit.exitWith System.Exit.ExitSuccess` with `System.Exit.exitSuccess`. * Moved the entry-point to the test-suite from **Main.hs** to **Test.hs**, both to integrate with **cabal** & to minimise the dependencies of the executable. * Partitioned the source-files into **src-lib**, **src-exe**, & **src-test** directories, & referenced them individually from the *.cabal*-file to avoid repeated compilation. * Used **CPP** to control the import of symbols from **Control.Applicative**.