D 2015-05-29T21:22:39.405 L ChangeLog N text/x-markdown U mwm W 2484 # Changes from Eddie 0.5 to 1.0 # ## Text and ByteStrings instead of Strings In order to facilitate modern text processing features and enhance performance, the default input and output type is now `Text`, not `String`. If `--binary` is used, then the type becomes `ByteString`. If you wish to generate `Text` output, then you can use `--text` along with `--binary` to get `Text` output and `ByteString` input. `Text` IO uses encoding, whose default values will depend on your operating system. Those can be set for `Text` input and output with `--input-encoding` and `--output-encoding`, respectively. `--encoding` sets both to the same value. ## ClassyPrelude, instead of Prelude and extras To avoid having to use `Text` or `ByteString` specific versions of the all the Haskell `List` functions, `ClassyPrelude` is used instead of the default `Prelude`. `Data.List` and `Data.Char` are no longer included by default, as most of the useful functions are included in `ClassyPrelude`. This does mean that some common functions have changed names. Any partial functions have been replaced with a version with `Ex` appended to the name. There are also alternatives that take default values or return `Maybe` instances instead of raising exceptions. The `show` function is still around, except that the output type is now `Text` instead of `String` so that filtering works properly. This means that if you need to display a calculated value, you'll need to use `tshow` instead of `show` ## New option parsing library Option parsing is now handled by optparse-applicative. This has simplified the code. It also makes it possible to use shorter forms of the "long" form for options, so long as they aren't ambiguous. So the `--line` and `-file` options have been pluralized. And `--expr` has been expanded to `--expression`. The downside - at least for now - is that you can no longer have multiple short options in a single argument. So `-lL` has to be written out as `-l -L`. For similar reasons, `--modules` and `--Modules` are no longer plural. ## Misfeatures removed The `--list` option now disabled the automatic catenation of an output list. About half the time, the expression doesn't generate a list in any case. And if you're processing files, there's no easy way to get the current behavior using the old behavior, whereas it's easy to add the appropriate catenation function to the current behavior if it's needed. Z 734566159bfaf0dca24d8b622e21c6eb