[Haskell-cafe] ANN: vty- released

Corey O'Connor coreyoconnor at gmail.com
Thu Sep 3 21:51:06 EDT 2009

Vty is a terminal UI library. Release brings a number of
important fixes,
features, and performance enhancements.

- Completely rewritten output backend.
- Efficient, "scanline rasterization" style output span generator. Has not been
  fully optimized, but should be fast enough.
- Terminfo based display terminal implementation. With specialized derivitives
  for xterm, Terminal.app, and iTerm.app.
    - Attempts to robustly handle even terminals that don't support all display
    - I've tested the following terminals with success: iTerm.app,
      Terminal.app, xterm, rxvt, mlterm, Eterm, gnome-terminal, konsole,
      screen, linux vty. Hopefully you will be as successfull.
    - Improved unicode support. Double wide characters will display as
- 256 color support. See Graphics.Vty.Attributes.Color240. The actual output
  color is adjusted according to the number of colors the terminal supports.
- The Graphics.Vty.Image combinators no longer require matching dimensions to
  arguments!  Unspecified areas are filled in with a user-customizable
  background pattern. See Graphics.Vty.Picture.
- output picture will be cropped to display size as expected.
- GHC 6.8 support is broken :-(
- Unknown Windows platform support.

- API changes:
    - "getSize" has been removed. Use "terminal vty >>= display_bounds" where
      "vty" is an instance of the Vty data structure.
    - added a "terminal" field to the Vty data structure. Accesses the
      TerminalHandle associated with the Vty instance. See
      Graphics.Vty.Terminal for details on the API usable with a
    - Graphics.Vty.Types has undergone a number of changes. Summary:
      - Partitioned into Graphics.Vty.Attributes for display attributes.
        Graphics.Vty.Image for image combinators. Graphics.Vty.Picture for
        final picture construction.
    - Graphics.Vty.Attributes:
      - "setFG" and "setBG" are now "with_fore_color" and "with_back_color"
      - All other "set.." equations similarly replaced.
      - "attr" is now "def_attr", short for "default display attributes" Also
        added a "current_attr" for "currently applied display attributes"
    - Graphics.Vty.Image:
      - "horzcat" is now "horiz_cat"
      - "vertcat" is now "vert_cat"
      - "renderBS" is now "utf8_bytestring"
      - "renderChar" is now "char"
      - "renderFill" is now "char_fill"
      - added a "utf8_string" and "string" (AKA "iso_10464_string") for UTF-8
        encoded Strings and ISO-10464 encoded Strings. String literals in GHC
        have an ISO-10464 runtime representation.
    - Graphics.Vty.Picture:
      - exports Graphics.Vty.Image
      - "pic" is now "pic_for_image"
      - added API for setting background fill pattern.

issues resolved:
    - "gnome terminal displays non-basic attributes as strikethrough"
        - http://trac.haskell.org/vty/ticket/14
    - "Multi-byte characters are not displayed correctly on update"
        - http://trac.haskell.org/vty/ticket/10
    - "Redraw does not handle rendering a line that extends beyond
screen width characters"
        - http://trac.haskell.org/vty/ticket/13
    - "The <|> and <-> combinators should be more forgiving of
mismatched dimensions"
        - http://trac.haskell.org/vty/ticket/9
    - "256-color support"
        - http://trac.haskell.org/vty/ticket/19

More information about the Haskell-Cafe mailing list