Changelog for multiarg-0.30.0.8

Release 0.30.0.4 * Version bump for QuickCheck Release 0.30.0.0 * Completely changed the API. This version is much better tested than previous versions. Instead of using parser combinators as a model, this version is built on a Mealy finite state machine. * The tests are particularly exhaustive; there is a module that produces all possible command-line words that can parse to a particular option (for instance, the user might enter "-a -b foo" or "-abfoo" if -b is an option that takes a single option argument.) Different combinations are tested randomly. Release 0.28.0.0 * Renamed everything from System.Console.MultiArg to Multiarg (shorter; note also case change from MultiArg to Multiarg) * Removed existentials from Multiarg.CommandLine Release 0.24.0.4, February 24, 2014 * Changed lower bound on base down to 4.5.0.0 Release 0.24.0.2, February 18, 2014 Changes since release 0.24.0.0: * Removed upper bounds from build dependencies, and changed the lower bounds. Release 0.24.0.0, September 12, 2013 Changes since release 0.20.0.0: * Remove OneArgE, TwoArgE, etc. from Combinator module. These data constructors were renamed OneArg, TwoArg, etc. Having both OneArg and OneArgE was redundant. * Improved error messages when the user enters an unrecognized option. Previously unrecognized options were passed through to client code as a positional argument; now they will be recognized as bad options. Release 0.20.0.0, August 30, 2013 Changes since release 0.18.0.0: * Remove explicit-exception; use Either instead. Release 0.18.0.0, August 14, 2013 Changes since release 0.16.0.0: * Rename SimpleParser module to CommandLine * Made a number of changes to CommandLine to reorganize the data types and functions responsible for parsing simple and multi-mode command lines * Remove GetArgs, as this was for an old library bug which has been fixed for some time now Release 0.16.0.0, May 21, 2013 Changes since release 0.14.0.0: * Rename OptArgError to InputError * Change functions in SimpleParser to allow for positional arguments that might fail to be parsed Release 0.14.0.0, April 8, 2013 Changes since release 0.12.0.2: * Change long options to remove restrictions on what characters can make up a long option name. Now the only restriction is that long options cannot be zero length and they may not contain an equal sign. Release 0.12.0.2, March 31, 2013 Changes since release 0.12.0.0: * Reorder NEWS so recent versions are on top * Fix bug in Prim.stopper that prevented most stoppers from being recognized Release 0.12.0.0, March 27, 2013 Changes since release 0.10.0.0: * Added value constructors to the Combinator module to allow for easier parsing of option arguments that can fail to parse * Added automatic "Enter -h for help" to simpleWithHelp and modesWithHelp functions in SimpleParser Release 0.10.0.0, March 7, 2013 Changes since release 0.8.0.0: * Added the simpleWithHelp and modesWithHelp pre-built parsers to the SimpleParser module * Added the mHelp field to the Mode record to allow for the modesWithHelp pre-built parser * Changed the modes function in the SimpleParser module. The new function has a simpler type. It will however break old code. Release 0.8.0.0, January 8, 2013 Changes since release 0.6.0.0: * Added a multi-mode parser to SimpleParser * All modules (except SampleParser) are now re-exported from System.Console.MultiArg. Therefore one import will bring in all of MultiArg. However, this introduced a naming conflict, because SimpleParser and Prim both had functions named "parse". Therefore I renamed SimpleParser.parse to "simple". * Removed the <??> combinator from Prim and replaced it with <?>. Removed <?> from Combinator. The new <?> behaves as one would expect from Parsec. * Simplified errors. There is now just one type of error message, and that is a string. Reversed error messages when Prim.parse returns (this way they are in the order the user would expect.) * Client code written for 0.6.0.0 will probably break with this release, mostly because of changes to the export lists. Combinator no longer re-exports from other modules, because now the expectation is that if you want to import everything you just import System.Console.MultiArg. So fixing that is just a matter of changing imports in client code. Other breakage will be limited to error handling code. Release 0.6.0.0, September 28, 2012 Changes since release 0.4.0.0: * Add Functor instances for OptSpec, ArgSpec * Add ThreeArg and ChoiceArg ArgSpecs Release 0.4.0.0, June 30, 2012 Changes since release 0.2.0.0: * Code written for version 0.2.* will not work at all with this version. * Removed dependency on text library. multiarg now only deals with plain Strings. The memory usage concerns that originally led me to use Texts were unfounded. * Dramatically simplified code for primitive parsers. No more custom error types, monad transformers, or user states. This sort of functionality is easily implemented in the parsers that you can build; baking it into the primitive parsers makes things needlessly complicated. * Reworked included combinators in Combinator module. Release 0.2.0.0, April 2, 2012 Changes since release 0.1.0.0: * Henceforth all public releases will have only even numbers in their release numbers (e.g. 0.2.0.0, 0.2.0.2, etc.) If a release has any odd numbers in its version, it is a development release. * QuickCheck tests are removed. Eventually I will reimplement these in a separate library package. * Added Feed function to System.Console.MultiArg.Prim; this allows you to carry out stateful parses without using a user state. Sometimes this aids in composability--for instance, I use it when combining parsers from different parts of the same program.