Changelog for multiarg-0.30.0.10
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.